nmcli就是NetworkManager的cli(命令行)
shell[root@oulaOS ~]# nmcli --help Usage: nmcli [OPTIONS] OBJECT { COMMAND | help } OPTIONS -a, --ask ask for missing parameters -c, --colors auto|yes|no whether to use colors in output -e, --escape yes|no escape columns separators in values -f, --fields <field,...>|all|common specify fields to output -g, --get-values <field,...>|all|common shortcut for -m tabular -t -f -h, --help print this help -m, --mode tabular|multiline output mode -o, --overview overview mode -p, --pretty pretty output -s, --show-secrets allow displaying passwords -t, --terse terse output -v, --version show program version -w, --wait <seconds> set timeout waiting for finishing operations OBJECT g[eneral] NetworkManager's general status and operations n[etworking] overall networking control r[adio] NetworkManager radio switches c[onnection] NetworkManager's connections d[evice] devices managed by NetworkManager a[gent] NetworkManager secret agent or polkit agent m[onitor] monitor NetworkManager changes
shell[root@oulaOS ~]# nmcli d status DEVICE TYPE STATE CONNECTION ens160 ethernet 已连接 ens160 virbr0 bridge connected (externally) virbr0 ens224 ethernet 已断开 -- lo loopback 未托管 -- virbr0-nic tun 未托管 -- [root@oulaOS ~]# nmcli device status DEVICE TYPE STATE CONNECTION ens160 ethernet 已连接 ens160 virbr0 bridge connected (externally) virbr0 ens224 ethernet 已断开 -- lo loopback 未托管 -- virbr0-nic tun 未托管 --
如果是已断开,表示网卡没有获取到配置文件或者没有ip等信息;未托管表示没有被NetworkManager管理
shell[root@oulaOS ~]# nmcli d show ens160 GENERAL.DEVICE: ens160 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:AC:D8:22 GENERAL.MTU: 1500 GENERAL.STATE: 100(已连接) GENERAL.CONNECTION: ens160 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1 WIRED-PROPERTIES.CARRIER: 开 IP4.ADDRESS[1]: 192.168.75.66/24 IP4.GATEWAY: 192.168.75.2 IP4.ROUTE[1]: dst = 192.168.75.0/24, nh = 0.0.0.0, mt = 100 IP4.ROUTE[2]: dst = 192.168.75.66/32, nh = 0.0.0.0, mt = 0, table=255 IP4.ROUTE[3]: dst = 0.0.0.0/0, nh = 192.168.75.2, mt = 100 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4 IP6.ADDRESS[1]: fe80::106f:44fa:2e02:9e52/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100 IP6.ROUTE[2]: dst = fe80::106f:44fa:2e02:9e52/128, nh = ::, mt = 0, table=255
shell[root@oulaOS ~]# nmcli c show NAME UUID TYPE DEVICE ens160 af72abc2-7bf4-45d0-8304-8ae89e613a61 ethernet ens160 virbr0 06a11cf0-53da-4eef-b0fa-d582eefeba43 bridge virbr0 [root@oulaOS ~]# nmcli connection show NAME UUID TYPE DEVICE ens160 af72abc2-7bf4-45d0-8304-8ae89e613a61 ethernet ens160 virbr0 06a11cf0-53da-4eef-b0fa-d582eefeba43 bridge virbr0
shell[root@oulaOS ~]# nmcli connection add con-name ens224 ifname ens224 type ethernet
连接 "ens224" (62dcfe95-8bc2-46e1-977e-0d265dc9532f) 已成功添加。
[root@oulaOS ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
virbr0 bridge connected (externally) virbr0
ens224 ethernet 连接中(正在获取 IP 配置) ens224
lo loopback 未托管 --
virbr0-nic tun 未托管 --
## 查看配置文件
[root@oulaOS ~]# cd /etc/sysconfig/network-scripts/
[root@oulaOS network-scripts]# ls
ifcfg-ens160 ifcfg-ens224
[root@oulaOS network-scripts]# cat ifcfg-ens224
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=ens224
UUID=62dcfe95-8bc2-46e1-977e-0d265dc9532f
DEVICE=ens224
ONBOOT=yes
##添加ip,网关,dns等信息
[root@oulaOS network-scripts]# nmcli c modify ens224 ipv4.addresses 192.168.75.200/24 ipv4.gateway 192.168.75.2 ipv4.dns 8.8.8.8 connection.autoconnect yes
## 重启网卡
## 重载配置文件,可能不太及时
[root@oulaOS network-scripts]# nmcli c reload ens160
## 将网卡和配置文件断开,及网卡down掉了
[root@oulaOS network-scripts]# nmcli c down ens160
## 重新将网卡和配置文件链接
[root@oulaOS ~]# nmcli c up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/18)
shell[root@oulaOS ~]# nmcli c modify ens160 +ipv4.addresses 192.168.72.199/24
[root@oulaOS network-scripts]# cat ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
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=ens160
UUID=af72abc2-7bf4-45d0-8304-8ae89e613a61
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.75.66
NETMASK=255.255.255.0
GATEWAY=192.168.75.2
DNS1=8.8.8.8
DNS2=8.8.4.4
PREFIX=24
IPADDR1=192.168.72.199
PREFIX1=24
NETMASK1=255.255.255.0
## 重启网卡生效
[root@oulaOS network-scripts]# nmcli c down ens160
成功停用连接 "ens160"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/19)
[root@oulaOS network-scripts]# nmcli c up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/20)
查看网卡信息:
shell[root@oulaOS network-scripts]# nmcli d show ens160 GENERAL.DEVICE: ens160 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:AC:D8:22 GENERAL.MTU: 1500 GENERAL.STATE: 100(已连接) GENERAL.CONNECTION: ens160 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/20 WIRED-PROPERTIES.CARRIER: 开 IP4.ADDRESS[1]: 192.168.72.199/24 IP4.ADDRESS[2]: 192.168.75.66/24 IP4.GATEWAY: 192.168.75.2 IP4.ROUTE[1]: dst = 192.168.75.66/32, nh = 0.0.0.0, mt = 0, table=255 IP4.ROUTE[2]: dst = 192.168.72.199/32, nh = 0.0.0.0, mt = 0, table=255 IP4.ROUTE[3]: dst = 192.168.75.0/24, nh = 0.0.0.0, mt = 100 IP4.ROUTE[4]: dst = 192.168.72.0/24, nh = 0.0.0.0, mt = 100 IP4.ROUTE[5]: dst = 0.0.0.0/0, nh = 192.168.75.2, mt = 100 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4 IP6.ADDRESS[1]: fe80::106f:44fa:2e02:9e52/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100 IP6.ROUTE[2]: dst = fe80::106f:44fa:2e02:9e52/128, nh = ::, mt = 0, table=255 IP6.ROUTE[3]: dst = ff00::/8, nh = ::, mt = 256, table=255
shell## 只能断开已经活动的网卡
[root@oulaOS network-scripts]# nmcli d disconnect ens224
错误:断开设备 "ens224" (/org/freedesktop/NetworkManager/Devices/5) 的连接失败:This device is not active
错误:未断开所有设备的连接。
##
[root@oulaOS network-scripts]# nmcli d disconnect ens160
成功断开设备 "ens160"。
[root@oulaOS network-scripts]# nmcli d connect ens160
成功用 "ens160af72abc2-7bf4-45d0-8304-8ae89e613a61" 激活了设备 ""。
shell[root@oulaOS network-scripts]# nmcli general hostname help 用法:nmcli general hostname { 参数 | help } 参数 := [<主机名>] 获取或更改永久的系统主机名。 如果没有参数,则会输出当前配置的主机名。给定主机名后,网络管理器(NetworkManager)会将其设为 新的永久系统主机名。