Trong bài viết này, chúng tôi sẽ xem xét cách định cấu hình mạng trên Linux CentOS / RHEL 7/8 và thiết lập giao diện mạng bằng cách sử dụng tệp cấu hình, khám phá các công cụ cấu hình mạng cơ bản, v.v. Đây là một chủ đề có liên quan, vì cấu hình của bất kỳ máy chủ nào đều bắt đầu từ cấu hình mạng trên đó.
Bài viết này đề cập đến các khía cạnh của cấu hình mạng trên RHEL / CentOS 7 sử dụng mạng tiêu chuẩn dịch vụ. Chúng tôi cũng sẽ nghiên cứu cách sử dụng NetworkManager (NM) mặc định trong CentOS / RHEL 8 để định cấu hình mạng.
Đặt tên thiết bị giao diện mạng trên RHEL / CentOS
Lược đồ đặt tên giao diện mạng truyền thống trong Linux chỉ định các tên như eth0 , eth1, vv Tuy nhiên, những tên này không bị ràng buộc chặt chẽ với các giao diện và sau khi khởi động lại, nhiều giao diện có thể nhận được các tên khác nhau. Nó có thể gây ra một số vấn đề, chẳng hạn như khi bạn định cấu hình tường lửa thông qua firewalld hoặc iptables. Do đó, bắt đầu từ RedHat 7 và CentOS 7, người ta đã quyết định gán các tên giao diện mạng dựa trên phân cấp của các sơ đồ đặt tên khác nhau. Theo mặc định, systemd sẽ áp dụng các sơ đồ đặt tên lần lượt chọn phương án đầu tiên đã có và có thể áp dụng. Tên thiết bị mạng được gán tự động và không thay đổi ngay cả khi phần cứng được thêm vào hoặc thay đổi. Mặt khác, tên giao diện như vậy khó đọc hơn, e. g., enp5s0 hoặc ens3 so với eth0 truyền thống hoặc eth1 .
Bạn có thể quay lại tên giao diện Linux mặc định bằng cách thực hiện các tác vụ sau.
Chỉnh sửa / etc / default / grub :
# nano / etc / default / grub
Thêm phần sau vào GRUB_CMDLINE_LINUX dòng:
net.ifnames =0 biosdevname =0
Đây là một ví dụ về dòng GRUB đầy đủ:
GRUB_CMDLINE_LINUX ="consoleblank =0 fsck.repair =yes crashkernel =auto nompath selinux =0 rhgb silence net.ifnames =0 biosdevname =0"
Làm mới cấu hình grub của bạn:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Đổi tên tệp cấu hình của giao diện mạng:
# mv / etc / sysconfig / network-scripts / ifcfg-ens3 / etc / sysconfig / network-scripts / ifcfg-eth0
Và thay đổi THIẾT BỊ giá trị:
Lưu tệp, khởi động lại máy chủ của bạn và đảm bảo nếu các thay đổi đã được áp dụng:
# ip a
Giao diện được gọi là eth0 bây giờ.
Cấu hình mạng ban đầu trong khi cài đặt CentOS / RHEL
Ban đầu, trong quá trình cài đặt CentOS Linux, bạn có thể định cấu hình giao diện mạng của mình ở chế độ đồ họa bằng cách nhấp vào “ Mạng &Tên máy chủ ”Trong menu. Tại đây bạn chỉ định tên máy chủ của mình, thêm địa chỉ IP và cổng vào, DNS,… Xem hướng dẫn chi tiết về cấu hình mạng ở bước này theo liên kết trên.
Cách chỉnh sửa tệp cấu hình giao diện mạng trên CentOS / RHEL?
Hãy hiển thị danh sách các giao diện mạng có sẵn trên máy chủ lưu trữ LInux
# ip a
Các tệp cấu hình mạng của máy chủ Linux của bạn được lưu trữ trong / etc / sysconfig / network-scripts . Daemon NetworkManager tạo các tệp này cho mỗi giao diện mạng. Trong trường hợp của chúng tôi, tệp cấu hình được gọi là ifcfg-eth0 (bạn có thể có một tên khác tùy thuộc vào cách đặt tên giao diện mạng của bạn).
Chúng ta hãy nghiên cứu các thông số chính:
-
THIẾT BỊ
- tên của bộ điều hợp mạng khớp với tên của nó trong hệ thống (trong ví dụ của chúng tôi là eth0) -
BOOTPROTO
là cách địa chỉ IP được chỉ định ( tĩnh là giá trị được nhập theo cách thủ công, dhcp nghĩa là địa chỉ IP được chỉ định tự động) -
IPADDR
- địa chỉ IP -
NETMASK
- mặt nạ mạng -
GATEWAY
- một cổng mặc định -
DNS1
là máy chủ DNS chính -
DNS2
là một máy chủ DNS thay thế -
ONBOOT
là phương pháp để bắt đầu giao diện mạng của bạn ( có - tự động, không - hướng dẫn sử dụng) -
UUID
là mã định danh duy nhất của giao diện mạng của bạn. Bạn có thể tự tạo nó bằng cách sử dụng uuidgen lệnh -
IPV4_FAILURE_FATAL
vô hiệu hóa giao diện mạng IPv4 nếu nó có cấu hình sai ( có - tắt, không - bật lá) -
IPV6_FAILURE_FATAL
vô hiệu hóa giao diện mạng IPv6 nếu nó có cấu hình sai ( có - tắt, không - bật lá) -
IPV6_AUTOCONF
cho phép hoặc từ chối tự động định cấu hình IPv6 -
IPV6_INIT
cho phép sử dụng địa chỉ IPv6 ( có - Địa chỉ IPv6 được sử dụng, không - địa chỉ không được sử dụng) -
PEERROUTES
đặt mức độ ưu tiên của cấu hình cổng mặc định khi sử dụng DHCP -
IPV6_PEERROUTES
đặt mức độ ưu tiên của cấu hình cổng mặc định khi sử dụng DHCP cho IPv6
Hãy định cấu hình giao diện mạng dựa trên thông tin này.
Cách định cấu hình địa chỉ IP tĩnh trong CentOS / RHEL?
Mở tệp cấu hình mạng để chỉnh sửa:
# mcedit / etc / sysconfig / network-scripts / ifcfg-eth0
Trong ví dụ này, tôi đã chỉ định địa chỉ IP tĩnh, mặt nạ mạng con, cổng vào và một số máy chủ DNS. Bật khởi động giao diện tự động:
ONBOOT =”vâng”
Sau khi bạn đã thực hiện các thay đổi, hãy khởi động lại mạng của bạn dịch vụ. Nếu đồng ý, bạn sẽ thấy danh sách sau:
# dịch vụ khởi động lại mạng
Khởi động lại mạng (qua systemctl):[OK]
Ngoài ra, bạn có thể chỉ cần tải lại tất cả các cấu hình kết nối:
# nmcli kết nối tải lại
Làm cách nào để lấy địa chỉ IP động từ DHCP?
Nếu máy chủ của bạn phải lấy địa chỉ IP động từ máy chủ DHCP trên mạng của bạn, hãy mở tệp cấu hình giao diện và thay đổi cài đặt:
Chúng tôi đã xóa tất cả các thông số liên quan đến địa chỉ IP và mặt nạ, đồng thời thay đổi cách gán địa chỉ IP cho dhcp (BOOTPROTO =”dhcp”). Sau khi thực hiện tất cả các thay đổi, đừng quên tải lại dịch vụ mạng.
Cách tắt IPv6 trên RHEL / CentOS?
Vào thời điểm bài viết được viết, ipv6 không tích cực và thường quản trị viên thích sử dụng ipv4 , nếu có thể. Vì vậy, nếu bạn không sử dụng giao thức IPv6, hãy tắt nó trên máy chủ của bạn. Nếu bạn chắc chắn rằng không có dịch vụ nào của bạn được định cấu hình để hoạt động với ipv6, bạn có thể tiến hành cấu hình giao diện mạng. Nếu không, tốt hơn là nên bắt đầu bằng séc. Bạn cần kiểm tra dịch vụ nào đang sử dụng IPv6 và tắt giao thức trong cấu hình dịch vụ. Chạy lệnh này:
# netstat -tulnp
Tôi có một máy chủ thử nghiệm, vì vậy ipv6 chỉ được sử dụng cho sshd và chronyd. Nó có thể được phát hiện bởi “:::”.
Để tránh sự cố sau khi tắt ipv6 trong cấu hình mạng, hãy tắt giao thức cho các dịch vụ sử dụng chúng trên máy chủ của bạn. Ví dụ:mở tệp cấu hình sshd:
# mcedit / etc / ssh / sshd_config
Và bỏ ghi chú những dòng này:
#AddressFamily bất kỳ # ListenAddress 0.0.0.0
Sau đó khởi động lại dịch vụ:
# service sshd restart
Như bạn có thể thấy, ipv6 hiện không có sẵn cho sshd. Làm tương tự đối với các dịch vụ khác.
Hãy tắt giao thức ipv6 trong cài đặt mạng. Mở /etc/sysctl.conf :
# nano /etc/sysctl.conf
Và thêm các dòng sau vào đó:
net.ipv6.conf.all.disable_ipv6 =1net.ipv6.conf.default.disable_ipv6 =1
Lưu tệp và áp dụng các thay đổi bằng cách sử dụng:
# sysctl -p
net.ipv6.conf.all.disable_ipv6 =1net.ipv6.conf.default.disable_ipv6 =1
Sau đó, mở / etc / sysconfig / network . Thêm cấu hình này vào nó:
NETWORKING_IPV6 =noIPV6INIT =không
Xóa dòng sau khỏi tệp giao diện cấu hình mạng / etc / sysconfig / network-scripts / ifcfg-eth0:
IPV6INIT ="có"
Và cuối cùng, không cho phép sử dụng ipv6 trong grub:
# nano / etc / default / grub
Thêm phần sau vào cuối dòng GRUB_CMDLINE_LINUX:
ipv6.disable =1
Sau khi thực hiện tất cả các thay đổi, hãy lưu tệp và cập nhật grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Khởi động lại máy chủ của bạn và kiểm tra cấu hình mạng của bạn:
# ifconfig
ipv6 giao thức bị tắt trên máy chủ của bạn.
Đặt Máy chủ DNS trên CentOS / RHEL
Bạn có thể định cấu hình máy chủ định danh DNS cho máy chủ của mình bằng cách sử dụng /etc/resolv.conf hoặc chỉ định chúng trong cài đặt giao diện mạng của bạn. Khi thiết lập cấu hình tĩnh cho giao diện mạng Linux, chúng tôi đã chỉ định máy chủ DNS bằng các tham số sau:
DNS1 =DNS2 =DNS3 =
Đặt máy chủ DNS bạn cần và khởi động lại mạng dịch vụ.
Máy chủ định danh DNS được đăng ký tự động trong /etc/resolv.conf lấy chúng từ tệp cấu hình mạng. Nếu bạn không chỉ định máy chủ DNS trong quá trình định cấu hình mạng, hãy thực hiện theo cách thủ công trong /etc/resolv.conf :
máy chủ định danh 1.1.1.1 máy chủ tên 8.8.8.8 máy chủ tên 8.8.4.4
Tạo nhiều địa chỉ IP cho giao diện mạng đơn trên RHEL / CentOS
Nếu bạn muốn sử dụng nhiều địa chỉ IP trong giao diện mạng của mình, bạn có thể định cấu hình nó thông qua bí danh giao diện hoặc thêm một địa chỉ IP bổ sung vào tệp cấu hình chính.
# nano / etc / sysconfig / network-scripts / ifcfg-eth0
Thay đổi nó như thế này:
# Generated by parse-kickstartUUID ="b8bccd4c-fb1b-4d36-9d45-044c7c0194eb" IPADDR1 ="*. *. *. *" IPADDR2 ="*. *. *. *" GATEWAY ="*. *. *" GATEWAY ="*. *. *. * "NETMASK =" 255.255.255.0 "BOOTPROTO =" static "DEVICE =" eth0 "ONBOOT =" yes "DNS1 =1.1.1.1DNS2 =8.8.8.8DNS3 =8.8.4.4
Trong đó:
IPADDR1
- địa chỉ IP đầu tiên
IPADDR2
- địa chỉ IP thứ hai
GATEWAY
- cổng chính
Hoặc tạo một bí danh vào tệp cấu hình chính của bạn:
# nano / etc / sysconfig / network-scripts / ifcfg-eth0:1
Và thêm một số dòng ở đây, nhưng không chỉ định cổng:
Sau khi cấu hình tất cả các cài đặt, hãy khởi động lại dịch vụ mạng của bạn:
# dịch vụ khởi động lại mạng
Trên Windows, bạn cũng có thể cấu hình nhiều địa chỉ IP (bí danh) trên một giao diện mạng duy nhất.
Định cấu hình gắn thẻ VLAN (802.1Q) trên RHEL / CentOS
Chúng tôi đã giới thiệu thêm về cấu hình của nhiều VLAN cho giao diện mạng trong CentOS / RHEL / Fedora trong bài viết:Cách định cấu hình gắn thẻ VLAN 802.1Q trên RHEL / CentOS Linux.
Định cấu hình Nhiều Giao diện Mạng trên RHEL / CentOS
Nếu bạn có một số giao diện mạng trên máy chủ của mình, bạn có thể chỉ định các địa chỉ IP khác nhau cho chúng. Hãy cùng tìm hiểu cách thực hiện. Nếu bạn có nhiều giao diện mạng trên máy chủ của mình, thì “ ip a Lệnh ”sẽ hiển thị thông tin này:
# ip a
1:lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link / loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0 .0.1 / 8 máy chủ phạm vi lovalid_lft mãi mãi ưa thích_lft mãi mãi2:eth0: mtu 1500 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000link / ether 52:52:42:54:2c:36 brd ff:ff:ff:ff:ff:ffinet 15. *. *. * / 16 brd 15. *. *. 255 phạm vi toàn cầu eth0valid_lft mãi mãi ưa thích 52:52:42:54:2c:b8 brd ff:ff:ff:ff:ff:f
Để định cấu hình giao diện thứ hai, hãy tạo tệp cho nó:
# nano / etc / sysconfig / network-scripts / ifcfg-eth1
Và thêm cấu hình sau vào nó:
IPADDR ="*. *. *. *" GATEWAY ="*. *. *. *" NETMASK ="255.255.255.0" BOOTPROTO ="static" DEVICE ="eth1" ONBOOT ="yes"
Sau đó, bạn phải đặt một cổng mặc định trên máy chủ của mình. Kiểm tra cổng nào được đặt ngay bây giờ và thay đổi nếu cần:
# netstat -nr
Bảng định tuyến Kernel IPDestination Gateway Genmask Flags MSS Window irtt Iface0.0.0.0 15. *. *. 1 0.0.0.0 UG 0 0 0 eth1169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0169.254.0 .0 0.0.0.0 255.255.0.0 U 0 0 0 eth115. *. 0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth015. *. *. 0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Giao diện eth1 là cổng chính. Tôi muốn sử dụng eth0. Hãy thay đổi nó:
# route thêm gw mặc định *. *. *. *
- thay thế cổng bằng cổng được chỉ định trong eth0
# route delete gw mặc định *. *. *. *
- loại bỏ cổng eth1
Nếu bạn muốn giữ cài đặt này sau khi máy chủ khởi động lại, hãy thêm các lệnh này vào rc.local (xem bài viết Cách khởi động dịch vụ tự động khi khởi động trên RHEL / CentOS?).
Các lệnh hữu ích về mạng trên RHEL / CentOS
-
ifdown eth1
- tắt giao diện mạng được chỉ định -
ifup eth1
- bật giao diện mạng được chỉ định -
ifconfig
- hiển thị thông tin về tất cả các giao diện mạng -
ifconfig -a | grep ether | gawk '{print $ 2}'
- là lệnh hiển thị địa chỉ MAC của giao diện -
ip a | grep ether | gawk '{print $ 2}'
- tương tự như trên bằng cách sử dụng ip a -
khởi động lại mạng dịch vụ
hoặcsystemctl khởi động lại mạng
- khởi động lại dịch vụ mạng bằng systemctl -
systemctl khởi động lại NetworkManager.service
- khởi động lại NM -
ip route
hoặcip hiển thị tuyến đường
- hiển thị bảng định tuyến trên Linux -
máy chủ ping
- ping máy chủ được chỉ định -
whois domain
- hiển thị thông tin whois về một miền -
đào tên miền
- hiển thị thông tin DNS về một miền
Công cụ quản trị mạng trên RHEL / CentOS
Nếu một máy chủ đã hoạt động được một thời gian hoặc nó chưa được bạn định cấu hình, điều đầu tiên bạn nên làm là tìm hiểu xem trên máy chủ có những giao diện nào. Để thuận tiện hơn, hãy cài đặt các công cụ cần thiết từ kho lưu trữ cơ bản:
# yum install net-tools -y
Sau khi cài đặt, bạn có thể sử dụng ifconfig :
# ifconfig
eth0:flags =4163mtu 1500inet 15. *. *. * netmask 255.255.255.0 broadcast 185. *. *. 255
Như bạn có thể thấy, tên giao diện mạng của chúng tôi là eth0 .
Nếu bạn chưa cài đặt net-tools , bạn có thể xem các giao diện của mình bằng lệnh sau:
# ip a
Đầu ra sẽ gần như giống nhau.
Quản lý mạng bằng NetworkManager trong CentOS / RHEL 8
Trên RHEL / CentOS 8, bạn chỉ nên sử dụng NetworkManager để cấu hình mạng. Dịch vụ này quản lý các kết nối mạng, kiểm soát cài đặt và áp dụng các thay đổi cho bộ điều hợp mạng.
Để kiểm tra NM trạng thái, sử dụng lệnh này:
# systemctl status NetworkManager.service
CentOS đề nghị sử dụng bảng điều khiển lệnh nmcli hoặc một công cụ đồ họa nmtui để định cấu hình mạng.
Để chuyển đến chế độ cấu hình mạng, hãy nhập lệnh sau:
# nmtui
Sau khi chọn mục đầu tiên, bạn sẽ thấy cửa sổ chọn giao diện mạng để chỉnh sửa:
Chọn một giao diện và chỉnh sửa nó:
Bạn có thể chỉnh sửa tên thiết bị, địa chỉ IP, cổng vào và máy chủ DNS. Ngoài ra, bạn có thể thay đổi cách gán địa chỉ IP cho DHCP trong menu tương tác NM:
Thay đổi “ thủ công ”Thành“ tự động ”:
Sau đó, lưu các thay đổi. Sử dụng nmtui, bạn có thể thực hiện các tác vụ cấu hình tương tự trong chế độ đồ họa giống như bạn làm trong các tệp cấu hình. Nếu bạn thích sử dụng dấu nhắc lệnh để định cấu hình giao diện, bạn có thể sử dụng nmcli. Ví dụ:các lệnh sau sẽ thay đổi địa chỉ IP, cổng vào và máy chủ DNS cho eth1.
# nmcli con mod eth1 ipv4.addresses 192.168.11.24/24
# nmcli con mod eth1 ipv4.gateway 192.168.11.1
# nmcli con mod eth1 ipv4.dns "8.8.4.4"
Để áp dụng các thay đổi, hãy khởi động lại giao diện:
# nmcli con up eth1
Nếu bạn làm việc với các tệp cấu hình thuận tiện hơn, hãy cài đặt gói đặc biệt tập lệnh mạng (theo mặc định, CentOS 8 không có nó) bằng cách sử dụng yum.
# yum install network-scripts -y
Đã nâng cấp:initscripts-10.00.1-1.el8_0.1.x86_64 Đã cài đặt:network-scripts-10.00.1-1.el8_0.1.x86_64 network-scripts-team-1.27-10.el8.x86_64Complete!Sau khi cài đặt, bạn có thể chỉnh sửa cài đặt mạng trong tệp cấu hình như được mô tả trước đó.