nmcli là viết tắt của Network Manager Command Line Interface. Đó là một phần của NetworkManager quản lý các network subsystem.nmcli là một cách thức để tương tác với NetworkManager thông qua các dòng lệnh.
nmcli được sử dụng để tạo, hiển thị, xóa, sửa, active hay deactive các kết nối mạng cũng như điều khiển và hiển thị trạng thái các thiết bị mạng thay thế các công cụ truyền thống.
nmcli làm việc với 5 đối tượng bao gồm:
. general: làm việc với các hoạt động, các trạng thái của NetworkManager.
. networking: toàn bộ việc điều khiển mạng chung.
. radio: quản lý radio switches.
. connection: quản lý các kết nối (connections).
. device: làm việc với các thiết bị mà NetworkManager quản lý.
Hãy cùng 1Hosting tìm hiểu về 5 đối tượng trên xem sao:
Để lấy trạng thái chung, dùng lệnh sau:
# nmcli general STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled enabled disabled
Hay chi tiết hơn:
# nmcli -p g ============================================================== NetworkManager status ============================================================== STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN -------------------------------------------------------------- connected full enabled enabled enabled disabled
Để lấy thông tin về các permission:
# nmcli g permissions PERMISSION VALUE org.freedesktop.NetworkManager.enable-disable-network yes org.freedesktop.NetworkManager.enable-disable-wifi yes org.freedesktop.NetworkManager.enable-disable-wwan yes org.freedesktop.NetworkManager.enable-disable-wimax yes org.freedesktop.NetworkManager.sleep-wake yes org.freedesktop.NetworkManager.network-control yes org.freedesktop.NetworkManager.wifi.share.protected yes org.freedesktop.NetworkManager.wifi.share.open yes org.freedesktop.NetworkManager.settings.modify.system yes org.freedesktop.NetworkManager.settings.modify.own yes org.freedesktop.NetworkManager.settings.modify.hostname yes org.freedesktop.NetworkManager.settings.modify.global-dns yes org.freedesktop.NetworkManager.reload yes org.freedesktop.NetworkManager.checkpoint-rollback yes org.freedesktop.NetworkManager.enable-disable-statistics yes
Hiển thị các thông tin về Log:
# nmcli g logging LEVEL DOMAINS INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD
Lấy server hostname, gõ:
# nmcli g hostname server.1hosting.com.vn
Gán một hostname mới (here new.1hosting.com.vn)
# nmcli g hostname new.1hosting.com.vn
Để biết có kết nối hay không, ta sử dụng lệnh:
# nmcli networking enabled
Chú ý: Ta có thể dừng tất cả các kết nối bằng cách dùng lệnh:
# nmcli n off
Để biết lại kết nối đang có:
# nmcli n connectivity full
Chú ý: Các giá trị trả về có thể là:
. none nếu không có bất kỳ kết nối nào.
. portal nếu đứng sau một thiết bị nào đó và không thể ra Internet.
. limited nếu kết nối đến một host nào đó không có kết nối internet.
. unknown nếu không tìm thấy trạng thái.
Để xem trạng thái của radio:
# nmcli radio WIFI-HW WIFI WWAN-HW WWAN enabled enabled enabled disabled
Xem trạng thái của wifi:
# nmcli radio wifi enabled
Chú ý: Wifi có thể được bật hay tắt bằng lệnh tương ứng on hay off
Để xem trạng thái của mobile broadband:
# nmcli radio wwan disabled
Để xem danh sách các cấu hình mạng đang có:
# nmcli connection NAME UUID TYPE TIMESTAMP-REAL eth0 94aaedf1-ca71-4789-87c8-88e5367125d5 802-3-ethernet Tue 28 Jan 2014 02:40:18 AM CET eth0 914d2052-f0fd-4a05-86b7-405512427101 802-3-ethernet never EEE 9a3642f0-600d-43f9-b9ce-7e555dd7b45d 802-11-wireless Tue 28 Jan 2014 01:01:58 PM CET
Hiển thị chi tiết một cấu hình mạng, chẳng hạn never ở trên:
# nmcli c show configured 914d2052-f0fd-4a05-86b7-405512427101 connection.id: eth0 connection.uuid: 914d2052-f0fd-4a05-86b7-405512427101 connection.interface-name: eth0 connection.type: 802-3-ethernet connection.autoconnect: yes connection.timestamp: 0 connection.read-only: no connection.permissions: connection.zone: -- connection.master: -- connection.slave-type: -- connection.secondaries: connection.gateway-ping-timeout: 0
Để xóa cấu hình mạng của thiết bị không sử dụng trên:
# nmcli c delete 914d2052-f0fd-4a05-86b7-405512427101
Để hiển thị các cấu hình đang hoạt động:
# nmcli c show active NAME UUID DEVICES DEFAULT VPN MASTER-PATH eth0 94aaedf1-ca71-4789-87c8-88e5367125d5 eth0 no no --
Cũng có thể active trước khi xóa như sau:
# nmcli c up 914d2052-f0fd-4a05-86b7-405512427101
Ta cũng có thể edit cấu hình của một connection bất kỳ theo cách như sau:
# nmcli c edit 914d2052-f0fd-4a05-86b7-405512427101 ===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: '914d2052-f0fd-4a05-86b7-405512427101' Type 'help' or '?' for available commands. Type 'describe [<setting>.<prop>]' for detailed property description. You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb nmcli>
Để hiển thị tất cả các device:
# nmcli device DEVICE TYPE STATE eth0 ethernet connected wlp3s0 wifi disconnected lo loopback unmanaged
Show chi tiết hơn:
# nmcli d show GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.VENDOR: Red Hat, Inc GENERAL.PRODUCT: Virtio network device GENERAL.DRIVER: virtio_net GENERAL.DRIVER-VERSION: 1.0.0 GENERAL.FIRMWARE-VERSION: GENERAL.HWADDR: 52:54:00:8A:45:52 GENERAL.STATE: 100 (connected) GENERAL.REASON: 0 (No reason given) GENERAL.UDI: /sys/devices/pci0000:00/0000:00:03.0/virtio0/net/eth0 GENERAL.IP-IFACE: eth0 GENERAL.NM-MANAGED: yes GENERAL.AUTOCONNECT: yes GENERAL.FIRMWARE-MISSING: no GENERAL.CONNECTION: /org/freedesktop/NetworkManager/ActiveConnection/0 CAPABILITIES.CARRIER-DETECT: yes CAPABILITIES.SPEED: unknown CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/{1} CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 94aaedf1-ca71-4789-87c8-88e5367125d5 | eth0 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: ip = 192.168.1.2/24, gw = 0.0.0.0 IP4.ROUTE[1]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1002 IP6.ADDRESS[1]: ip = fe80::5054:ff:fe8a:4552/64, gw = ::
Hay để kết nối đến một wifi access point kèm theo một SSID:
# nmcli d wifi connect EEE password '12345678901234567890123456'
Quét các access points đang chạy, sử dụng lệnh sau:
# nmcli d wifi rescan