Cấu hình mạng trên AlmaLinux 8, CentOS 8 hoặc Rocky Linux 8 bằng lệnh nmcli (20 ví dụ)

theanh

Administrator
Nhân viên
Nmcli là một công cụ dòng lệnh có thể được sử dụng để kiểm soát NetworkManager. Công cụ này sẽ giúp bạn hiển thị trạng thái thiết bị mạng, tạo, chỉnh sửa, kích hoạt/hủy kích hoạt, xóa kết nối mạng và cũng khắc phục sự cố mạng trong hệ thống Linux của bạn. Nó rất hữu ích cho các máy chủ và máy không có đầu để kiểm soát các kết nối trên toàn hệ thống.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng lệnh nmcli để kiểm soát các kết nối mạng với các ví dụ.

Điều kiện tiên quyết​

  • Một máy chủ chạy AlmaLinux 8, CentOS 8 hoặc Rocky Linux 8.
  • Mật khẩu gốc được thiết lập trên máy chủ của bạn.

1. Kiểm tra Trạng thái NetworkManager​

Để kiểm tra xem Network Manager có đang chạy hay không, hãy sử dụng lệnh sau:
Mã:
nmcli -t -f RUNNING general
Bạn sẽ thấy kết quả sau:
Mã:
running
Để có trạng thái chung, hãy chạy lệnh sau:
Mã:
nmcli general
Bạn sẽ thấy kết quả sau:
Mã:
TRẠNG THÁI KẾT NỐI WIFI-HW WIFI WWAN-HW WWANconnected full enabled enabled enabled enabled

2. Kiểm tra tất cả các thiết bị khả dụng​

Bạn có thể hiển thị tất cả các thiết bị khả dụng trong hệ thống của mình, hãy chạy lệnh sau:
Mã:
nmcli dev status
Bạn sẽ thấy đầu ra sau:
Mã:
DEVICE TYPE STATE CONNECTIONeth0 ethernet connected System eth0eth1 ethernet connected System eth1lo loopback unmanaged --

3. Kiểm tra kết nối đang hoạt động​

Để liệt kê tất cả các kết nối đang hoạt động trong hệ thống của bạn, hãy chạy lệnh sau:
Mã:
nmcli con show
Bạn sẽ nhận được kết quả sau:
Mã:
NAME UUID TYPE DEVICESystem eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet eth1

4. Hiển thị thông tin về kết nối Ethernet​

Bạn có thể hiển thị thông tin tóm tắt về kết nối Ethernet bằng lệnh sau:
Mã:
nmcli con show "System eth0"
Bạn sẽ nhận được kết quả sau:
Mã:
connection.id: System eth0connection.uuid: 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: eth0connection.autoconnect: yesconnection.autoconnect-priority: 0connection.autoconnect-retries: -1 (mặc định)connection.multi-connect: 0 (mặc định)connection.auth-retries: -1connection.timestamp: 1588217245connection.read-only: noconnection.permissions: --connection.zone: --connection.master: --connection.slave-type: --connection.autoconnect-slaves: -1 (mặc định)connection.secondaries: --connection.gateway-ping-timeout: 0connection.metered: unknowncat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep BOOTPROTOBOOTPROTO=dhcp

5. Thay đổi Chỉ thị “Tự động kết nối”​

Theo mặc định, tất cả các kết nối ethernet sẽ tự động kết nối. Bạn có thể tắt nó bằng lệnh sau:
Mã:
nmcli con mod "System eth1" connection.autoconnect no
Bạn có thể xác minh các thay đổi bằng lệnh sau:
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep ONBOOT
Bạn sẽ thấy kết quả sau:
Mã:
ONBOOT=no

6. Thay đổi chỉ thị BOOTPROTO kết nối mạng​

Bạn có thể thay đổi chỉ thị BOOTPROTO kết nối ethernet từ tĩnh thành DHCP bằng lệnh sau:
Mã:
nmcli con mod "System eth1" ipv4.method auto
Bây giờ bạn có thể xác minh các thay đổi bằng lệnh sau:
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep BOOTPROTO
Bạn sẽ thấy kết quả sau:
Mã:
BOOTPROTO=dhcp
Để thay đổi chỉ thị kết nối Ethernet BOOTPROTO static thành DHCP thành static bằng lệnh sau:
Mã:
nmcli con mod "System eth1" ipv4.method manual ipv4.address 192.168.0.10/24 ipv4.gateway 192.168.0.1

7. Vô hiệu hóa Địa chỉ IPv6 bằng nmcli​

Theo mặc định, cả kết nối IPv6 và IPv4 đều được bật trong CentOS 8. Bạn có thể vô hiệu hóa kết nối IPv6 bằng lệnh sau:
Mã:
nmcli con mod "System eth1" ipv6.method ignore

8. Thêm máy chủ DNS vào kết nối hiện có​

Để thêm máy chủ DNS mới vào kết nối hiện có bằng lệnh sau:
Mã:
nmcli con mod "System eth1" ipv4.dns 8.8.4.4
Bạn có thể xác minh các thay đổi bằng lệnh sau:
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep DNS
Đầu ra:
Mã:
DNS1=8.8.4.4
Bạn cũng có thể thêm máy chủ DNS mới bằng tùy chọn +ipv4.dns:
Mã:
nmcli con mod "System eth1" +ipv4.dns 4.4.4.4

9. Xóa máy chủ DNS khỏi kết nối hiện có​

Để xóa máy chủ DNS đơn khỏi kết nối, hãy chạy lệnh sau:
Mã:
nmcli con mod "System eth1" -ipv4.dns 8.8.4.4
Để xóa nhiều máy chủ DNS khỏi kết nối, hãy chạy lệnh sau:
Mã:
nmcli con mod "System eth1" -ipv4.dns 8.8.4.4,8.8.2.2

10. Thêm/Chỉnh sửa kết nối theo cách tương tác​

Bạn cũng có thể tạo kết nối mới hoặc chỉnh sửa kết nối hiện có bằng trình chỉnh sửa tương tác.

Ví dụ: chỉnh sửa kết nối hiện có, hãy chạy lệnh sau:
Mã:
nmcli con edit "System eth1"
Bạn sẽ thấy đầu ra sau:
Mã:
===| Trình chỉnh sửa kết nối tương tác nmcli |===Chỉnh sửa kết nối '802-3-ethernet' hiện có: 'System eth1'Nhập 'help' hoặc '?' để biết các lệnh khả dụng.Nhập 'print' để hiển thị tất cả các thuộc tính kết nối.Nhập 'describe [.
]' để biết mô tả thuộc tính chi tiết.Bạn có thể chỉnh sửa các thiết lập sau: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxynmcli>
Bây giờ, hãy hiển thị địa chỉ IP hiện có, hãy chạy lệnh sau:
Mã:
nmcli> print ipv4.address
Đầu ra:
Mã:
ipv4.addresses: 192.168.0.10/32
Để thiết lập địa chỉ IP mới, hãy chạy lệnh sau:
Mã:
nmcli> set ipv4.address 192.168.0.11
Bạn có thể xác minh và lưu kết nối bằng lệnh sau:
Mã:
nmcli> verify
Đầu ra:
Mã:
Xác minh kết nối: OK
Mã:
nmcli> lưu
Đầu ra:
Mã:
Kết nối 'Hệ thống eth1' (9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04) đã được cập nhật thành công.
Bây giờ bạn có thể xác minh kết nối đã lưu bằng lệnh sau:
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep IPADDR
Bạn sẽ thấy đầu ra sau:
Mã:
IPADDR=192.168.0.10IPADDR1=192.168.0.11

11. Giám sát hoạt động kết nối​

Bạn cũng có thể giám sát hoạt động của NetworkManager bằng nmcli như những thay đổi về trạng thái kết nối, cấu hình, thiết bị, v.v.

Sau khi sửa đổi kết nối ethernet, hãy chạy lệnh sau để giám sát:
Mã:
nmcli con monitor "System eth1"

12. Tạo kết nối mới với IP tĩnh​

Bạn cũng có thể tạo kết nối ethernet tĩnh mới bằng nmcli. Ví dụ, tạo một kết nối Ethernet mới có tên là eth2, IP 192.168.0.12/24, Gateway 192.168.0.1, "onboot=yes" bằng cách chạy lệnh sau:
Mã:
nmcli con add con-name eth2 type ethernet ifname eth2 ipv4.method manual ipv4.address 192.168.0.15/24 ipv4.gateway 192.168.0.1
Bạn sẽ thấy đầu ra sau:
Mã:
Kết nối 'eth2' (cefb3f7d-424c-42f8-b4e8-ed54e7dcb880) đã được thêm thành công.
Bây giờ, hãy xác minh kết nối bằng lệnh sau:
Mã:
nmcli con
Đầu ra:
Mã:
NAME UUID TYPE DEVICESystem eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0Hệ thống eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet eth1eth2 cefb3f7d-424c-42f8-b4e8-ed54e7dcb880 ethernet eth2

13. Tạo kết nối mới với DHCP​

Bạn cũng có thể tạo kết nối DHCP mới với nmcli. Ví dụ, tạo một kết nối Ethernet DHCP mới có tên là eth3 bằng lệnh sau:
Mã:
nmcli con add con-name eth3 type ethernet ifname eth3 ipv4.method auto
Bạn sẽ thấy đầu ra sau:
Mã:
Kết nối 'eth3' (ff54dbd6-255d-4935-abc8-73773bef5b55) đã được thêm thành công.

14. Kích hoạt kết nối mới​

Để kích hoạt kết nối ethernet mới eth2, hãy chạy lệnh sau:
Mã:
nmcli con up eth2
Bạn sẽ thấy kết quả sau:
Mã:
Kết nối đã được kích hoạt thành công
Bây giờ bạn có thể xác minh kết nối đang hoạt động bằng lệnh sau:
Mã:
nmcli con show --active
Bạn sẽ thấy kết quả sau:

Kết quả:
Mã:
NAME UUID TYPE DEVICESystem eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet eth1eth2 cefb3f7d-424c-42f8-b4e8-ed54e7dcb880 ethernet eth2

15. Hủy kích hoạt kết nối​

Để hủy kích hoạt kết nối eth2, hãy chạy lệnh sau:
Mã:
nmcli con down eth2

16. Xóa kết nối​

Bạn cũng có thể xóa kết nối ethernet cụ thể bằng nmcli.

Ví dụ: để xóa kết nối eth2, hãy chạy lệnh sau:
Mã:
nmcli con del eth2
Bạn sẽ thấy đầu ra sau:
Mã:
Kết nối 'eth2' (cefb3f7d-424c-42f8-b4e8-ed54e7dcb880) đã được xóa thành công.

17. Thay đổi tên máy chủ bằng nmcli​

Để tìm tên máy chủ hiện tại của hệ thống, hãy chạy lệnh sau:
Mã:
nmcli general hostname
Bạn sẽ thấy kết quả sau:
Mã:
centos8
Tiếp theo, hãy đổi tên máy chủ từ centos8 thành Linux bằng lệnh sau:
Mã:
nmcli general hostname linux
Tiếp theo, hãy xác minh tên máy chủ bằng lệnh sau:
Mã:
nmcli general hostname
Bạn sẽ thấy kết quả sau:
Mã:
linux

18. Thay đổi Chỉ thị DEFROUTE​

Chỉ thị DEFROUTE được sử dụng để vô hiệu hóa và kích hoạt cổng mặc định của kết nối Ethernet của bạn.

Để kích hoạt chỉ thị DEFROUTE cho eth2, hãy chạy lệnh sau:
Mã:
nmcli con mod "System eth2" ipv4.never-default yes

19. Khởi động lại kết nối Ethernet​

Bạn có thể khởi động lại hoặc tải lại kết nối Ethernet của mình bằng lệnh sau:
Mã:
nmcli con reload

20. nmcli help​

Để biết thêm thông tin về lệnh nmcli, hãy chạy lệnh sau:
Mã:
nmcli --help
Bạn sẽ thấy đầu ra sau:
Mã:
Cách sử dụng: nmcli [OPTIONS] OBJECT { COMMAND | trợ giúp }TÙY CHỌN -a, --ask yêu cầu các tham số bị thiếu -c, --colors auto|yes|no có sử dụng màu trong đầu ra hay không -e, --escape yes|no thoát các dấu phân cách cột trong các giá trị -f, --fields |all|common chỉ định các trường để xuất ra -g, --get-values |all|phím tắt chung cho -m tabular -t -f -h, --help in trợ giúp này -m, --mode tabular|chế độ đầu ra nhiều dòng -o, --overview chế độ tổng quan -p, --pretty đầu ra khá đẹp -s, --show-secrets cho phép hiển thị mật khẩu -t, --terse đầu ra ngắn gọn -v, --version hiển thị phiên bản chương trình -w, --wait  đặt thời gian chờ đợi hoàn tất các hoạt độngĐỐI TƯỢNG chung[tổng quát] Trạng thái chung và các hoạt động của NetworkManager n[mạng] kiểm soát mạng tổng thể r[adio] NetworkManager chuyển mạch vô tuyến c[kết nối] Các kết nối của NetworkManager d[evice] các thiết bị do NetworkManager quản lý a[gent] NetworkManager secret agent hoặc polkit agent m[onitor] theo dõi các thay đổi của NetworkManager

Kết luận​

Trong hướng dẫn trên, chúng ta đã học cách sử dụng nmcli để quản lý và kiểm soát các kết nối ethernet trong các bản sao RHEL 8 như AlmaLinux, centOS hoặc Rocky Linux. Tôi hy vọng bây giờ bạn có thể dễ dàng thêm, chỉnh sửa hoặc tạo kết nối mới bằng nmcli. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên