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ụ.
Bạn sẽ thấy kết quả sau:
Để có trạng thái chung, hãy chạy lệnh sau:
Bạn sẽ thấy kết quả sau:
Bạn sẽ thấy đầu ra sau:
Bạn sẽ nhận được kết quả sau:
Bạn sẽ nhận được kết quả sau:
Bạn có thể xác minh các thay đổi bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Bây giờ bạn có thể xác minh các thay đổi bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Để thay đổi chỉ thị kết nối Ethernet BOOTPROTO static thành DHCP thành static bằng lệnh sau:
Bạn có thể xác minh các thay đổi bằng lệnh sau:
Đầu ra:
Bạn cũng có thể thêm máy chủ DNS mới bằng tùy chọn +ipv4.dns:
Để xóa nhiều máy chủ DNS khỏi kết nối, hãy chạy lệnh sau:
Ví dụ: chỉnh sửa kết nối hiện có, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bây giờ, hãy hiển thị địa chỉ IP hiện có, hãy chạy lệnh sau:
Đầu ra:
Để thiết lập địa chỉ IP mới, hãy chạy lệnh sau:
Bạn có thể xác minh và lưu kết nối bằng lệnh sau:
Đầu ra:
Đầu ra:
Bây giờ bạn có thể xác minh kết nối đã lưu bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Sau khi sửa đổi kết nối ethernet, hãy chạy lệnh sau để giám sát:
Bạn sẽ thấy đầu ra sau:
Bây giờ, hãy xác minh kết nối bằng lệnh sau:
Đầu ra:
Bạn sẽ thấy đầu ra sau:
Bạn sẽ thấy kết quả sau:
Bây giờ bạn có thể xác minh kết nối đang hoạt động bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Kết quả:
Ví dụ: để xóa kết nối eth2, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bạn sẽ thấy kết quả sau:
Tiếp theo, hãy đổi tên máy chủ từ centos8 thành Linux bằng lệnh sau:
Tiếp theo, hãy xác minh tên máy chủ bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Để kích hoạt chỉ thị DEFROUTE cho eth2, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
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
Mã:
running
Mã:
nmcli general
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
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
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"
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
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep ONBOOT
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
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep BOOTPROTO
Mã:
BOOTPROTO=dhcp
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
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep DNS
Mã:
DNS1=8.8.4.4
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
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"
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>
Mã:
nmcli> print ipv4.address
Mã:
ipv4.addresses: 192.168.0.10/32
Mã:
nmcli> set ipv4.address 192.168.0.11
Mã:
nmcli> verify
Mã:
Xác minh kết nối: OK
Mã:
nmcli> lưu
Mã:
Kết nối 'Hệ thống eth1' (9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04) đã được cập nhật thành công.
Mã:
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep IPADDR
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
Mã:
Kết nối 'eth2' (cefb3f7d-424c-42f8-b4e8-ed54e7dcb880) đã được thêm thành công.
Mã:
nmcli con
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
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
Mã:
Kết nối đã được kích hoạt thành công
Mã:
nmcli con show --active
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
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
Mã:
centos8
Mã:
nmcli general hostname linux
Mã:
nmcli general hostname
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
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