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 cloud365 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 ens3từ đầ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 cloud365 đã 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é.

Tham khảo chuỗi bài viết về CentOS 8

  1. Cài đặt CentOS 8
  2. Phiên bản các gói phần mềm phổ thông trên CentOS 8
  3. Cài đặt LEMP trên CentOS 8
  4. Trình quản lý và cài đặt gói DNF trên CentOS 8