Trong các phiên bản từ CentOS 7 trở đi, gói NetworkManager
đã cung cấp lệnh nmcli
để thao tác việc đặt IP tĩnh hoặc IP động cho các interface. Trong hướng dẫn này Onet sẽ hướng dẫn bạn đặt IP cho các interface bằng lệnh nmcli
và giới thiệu một số lệnh đi kèm để bạn có thể thao tác khi cần thiết.
Khi sử dụng lệnh nmcli
(network manager command line interface) thì bản chất là cách dùng dòng lệnh để tạo ra file config cho các interface giống như các phiên bản CentOS trước kia. Điều này khá tiện lợi cho bạn khi thao tác thông qua CLI hoặc đưa và các bash shell sau này nếu có nhu cầu.
Trong hướng dẫn này, giải sử ta có 02 NIC trên server cài CentOS 8. Ta sẽ dùng lệnh nmcli
để thực hiện việc này.
Giả sử tôi chỉ có 01 NIC ens3
từ đầu, tôi sẽ lựa chọn đặt IP tĩnh cho Interface này bởi vì thường lúc đầu sau khi cài đặt xong hệ điều hành, ta thường có IP động.
Đặt IP cho interface ens3
Truy cập qua ssh vào trong hệ điều hành và thực hiện đặt IP cho ens3 với IP bạn mong muốn. Lưu ý IP này không nên trùng trong range của DHCP cấp. Lưu ý, tên interface của bạn có thể khác với ens3
, hay thay cho phù hợp với thực tế của bạn.
Sau khi kiểm tra xong, ta nên kiểm tra file config của NIC ens3
trước bằng lệnh cat
ở dưới.
[root@centos8srv01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens3 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens3 UUID=b0c55627-8651-4b20-8b1e-d05857ef00d1 DEVICE=ens3 ONBOOT=yes IPV6_PRIVACY=no
Kết quả ở trên ta thấy ens3
đang nhận IP động, ta tiến hành đặt lại IP tĩnh. Trong hướng dẫn này tôi sẽ đặt
- IP addres:
192.168.80.145
- Gateway:
192.168.80.1
- Subnetmask:
255.255.255.255
(/24) - Dns-nameserver là
8.8.8.8
Cụ thể ta dùng tập lệnh như sau.
nmcli con modify ens3 ipv4.addresses 192.168.80.145/24 nmcli con modify ens3 ipv4.gateway 192.168.80.1 nmcli con modify ens3 ipv4.dns 8.8.8.8 nmcli con modify ens3 ipv4.method manual nmcli con modify ens3 connection.autoconnect yes
Sau khi đặt xong ta sẽ kiểm tra lại nội dụng file /etc/sysconfig/network-scripts/ifcfg-ens3
[root@centos8srv01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens3 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens3 UUID=b0c55627-8651-4b20-8b1e-d05857ef00d1 DEVICE=ens3 ONBOOT=yes IPV6_PRIVACY=no IPADDR=192.168.80.145 PREFIX=24 GATEWAY=192.168.80.1 DNS1=8.8.8.8
Kết quả là ta đã có địa chỉ IP tĩnh cho NIC ens3
để có thể nhận IP mới. Lưu ý lúc này sẽ mất kết nối và cần đăng nhập lại với IP tĩnh vừa đặt ở trên.
Đặt IP cho interface tiếp theo
Lưu ý, lúc đầu trong mô hình lab tôi chỉ add một NIC là ens3
, tiếp theo tôi sẽ add thêm một NIC nữa, điều này giống như tôi gắn thêm một card mạng vào máy. Lúc này cần kiểm tra xem tên của NIC mới gắn vào là gì. Thực hiện bằng lệnh nmcli dev show
. Kết quả ta sẽ nhìn thấy ở dưới.
[root@centos8srv01 ~]# nmcli dev status DEVICE TYPE STATE CONNECTION ens3 ethernet connected ens3 ens7 ethernet connecting (getting IP configuration) Wired connection 1 lo loopback unmanaged --
Lưu ý dòng Wired connection 1
là khác thường, do vậy ta cần đổi lại thêm cho ngắn gọn và dễ nhớ để nmcli
làm việc thuận lợi hơn. Để đổi tên Wired connection 1
thành ens7
ta dùng lệnh sau
nmcli c modify "Wired connection 1" connection.id ens7
Kiểm tra lại kết quả sau khi đổi tên bằng lệnh mncli dev show
, ta thấy kết quả là.
[root@centos8srv01 ~]# nmcli dev status DEVICE TYPE STATE CONNECTION ens3 ethernet connected ens3 ens7 ethernet connecting (getting IP configuration) ens7 lo loopback unmanaged --
Lúc này ta mới đặt IP cho ens7
. Ta sẽ đặt IP cho ens7
ở range 192.168.84.0/24 và không dùng gateway, bởi vì ens3
đã có gateway để ra internet rồi, các tham số sẽ như sau.
- IP add:
192.168.84.199
- Subnet Mask:
255.255.255.0
(/24)
nmcli con modify ens7 ipv4.addresses 192.168.84.199/24 nmcli con modify ens7 ipv4.method manual nmcli con modify ens7 connection.autoconnect yes
Sau đó thực hiện lệnh ifdown
& ifup
để ens7 nhận được IP vừa thiết lập.
[root@centos8srv01 ~]# ifdown ens7 Connection 'ens7' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/23) [root@centos8srv01 ~]# ifup ens7 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/24) [root@centos8srv01 ~]#
Có thể dùng lệnh ifdown ens7 && ifup ens7
để đạt được kết quả như trên.
Kiểm tra file /etc/sysconfig/network-scripts/ifcfg-ens7
để xem lại thiết lập bằng lệnh cat
[root@centos8srv01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens7 HWADDR=52:54:00:D0:E8:0D TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens7 UUID=43bd4c3e-5966-329a-8e9d-1c8ed238857a ONBOOT=yes AUTOCONNECT_PRIORITY=-999 IPADDR=192.168.84.199 PREFIX=24
Tới đây Onet đã hướng dẫn bặt đặt IP trong CentOS 8 bằng lệnh nmcli
. Hãy khám phá thêm về lệnh này và chia sẻ nếu bạn có mong muốn nhé.