CentOS7 & AlmaLinux8网络管理命令-nmcli

nmcli --NetworkManager的cli(命令行)

准备环境:AlmaLinux8 + vmware + 双网卡

一、功能

nmcli可以完成网卡上的所有配置,并可以写入配置文件中。

二、语法

nmcli [OPTIONS...] { help | general | networking | radio | connection | device | agent | monitor } [COMMAND] [ARGUMENTS...]

nmcli [选项...] 对象 [命令] [参数...]

对象 = help | general | networking | radio | connection | device | agent | monitor

提示:

(1)输入命令的时候请善用tab补全,少打很多单词!

(2)支持简写,例如connection可以简写成con或c, modify可以简写成mod或m

三、常用信息对象

1、general(g) 常规信息

nmcli general { status | hostname | permissions | logging } [ARGUMENTS...]

(1)查看NetworkManager的状态

[root@C8 ~]# nmcli g s
[root@C8 ~]# nmcli general status
STATE      	  CONNECTIVITY    WIFI-HW 	 WIFI     WWAN-HW  	WWAN    
connected          full       missing  	enabled  	missing  	enabled 

状态说明:

STATE 网络是否连接

CONNECTIVITY NetworkManager是否接管网络设置

WIFI-HW 表示WIFI的硬件是否启用

WIFI 表示WIFI软件是否启用

WWAH-HW 表示WWAN的硬件

WWAN 表示WWAN的软件

2、networking(n)整个网络

(1)查看NetworkManager是否接管网络设置

[root@C8 ~]# nmcli n
[root@C8 ~]# nmcli networking
enabled
[root@C8 ~]# nmcli n off

##取消接管,十分危险的命令,执行完之后网卡消失,此命令禁用!!!

(2)查看网络连接状态

[root@C8 ~]# nmcli n c
[root@C8 ~]# nmcli networking connectivity
full

状态说明:

full 网络正常连接

limited 已连接网络,但无法上网

portal 已连接网络,但需要认证登录后才能上网

none 没有连网

unknown 无法识别网络

(3)radio无线(wifi)开关


[root@C8 ~]# nmcli radio wifi	
enabled
[root@C8 ~]# nmcli radio wifi off
[root@C8 ~]# nmcli radio wifi
disabled
[root@C8 ~]# nmcli radio wifi on
[root@C8 ~]# nmcli radio wifi
enabled

四、常用配置对象

object使用最多的是:connection和device

维度1:connection是连接(配置文件)

维度2:device是网络接口

1、帮助

nmcli c|connection help

nmcli d|device help

nmcli connection 	{ show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export } [ARGUMENTS...]
nmcli device			{ status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp } [ARGUMENTS...]

多个connection可以应用到同一个device,但同一时间只能启用一个connection。

针对一个网卡,可以设置多个网络连接,比如静态ip和动态ip,或不同的应用环境(家或公司),再根据需要up相应的connection。

(1)connection

[root@C8 ~]# nmcli c
[root@C8 ~]# nmcli con show
[root@C8 ~]# nmcli con show --active
[root@C8 ~]# nmcli connection show
NAME                UUID                                  	TYPE		DEVICE 
ens32               152beb06-47c5-c5e8-95a9-385590654382	ethernet	ens32  
Wired connection 1  d3bf0fda-bc78-3c01-b67b-289fc3888a96	ethernet	ens33 

connection有2种状态:

活跃(带颜色字体):表示当前该connection生效

非活跃(正常字体):表示当前该connection不生效

(2)device

[root@C8 ~]# nmcli d 
DEVICE  TYPE      STATE      CONNECTION         
ens32   ethernet  connected  ens32              
ens33   ethernet  connected  Wired connection 1 
lo      loopback  unmanaged  --  

device有4种常见状态:

connected 已被NM纳管,并且当前有活跃的connection

disconnected 已被NM纳管,但是当前没有活跃的connection

unmanaged 未被NM纳管

unavailable 不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ensXX down)

2、使用方式

(1)查看设备接口的详细信息

[root@C8 ~]# nmcli d show
GENERAL.DEVICE:                         ens32
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:D9:11:1E
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens32
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnecti>
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.3.10/24
IP4.GATEWAY:                            192.168.3.1
IP4.ROUTE[1]:                           dst = 192.168.3.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.3.1, mt = 100
IP4.DNS[1]:                             192.168.3.1
IP6.ADDRESS[1]:                         fe80::20c:29ff:fed9:111e/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256

GENERAL.DEVICE:                         lo
	##lo的输出没有贴入

(2)启动/关闭接口

nmcli c up/down 接口名称(对应的配置文件)

[root@C8 ~]# nmcli c up ens32
[root@C8 ~]# nmcli c down ens32

(3)创建连接(配置文件)

使用 add 命令会在 /etc/sysconfig/network-scripts中生成以为 ifcfg开头加add指定的 网卡配置文件 名称命名,此文件皆由 nmcli命令进行动态配置;

如果手动修改 ifcfg文件,重启NetworkManager是无法生效,还需要在执行 nmcli con up才行;

因此不建议手动修改配置文件,一切修改都使用nmcli命令,修改后执行 nmcli con up 立即生效。

<1>动态获取IP方式的网络连接配置
[root@C8 ~]# nmcli con add con-name ens33_dynamic ifname ens33 type ethernet
Connection 'ens33' (d77766a0-1427-4e6a-a7e3-614e035fc75d) successfully added.

[root@C8 network-scripts]# cat ifcfg-ens33_dynamic 
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=default
NAME=ens33_dynamic	##<--
UUID=18da32f3-230a-4888-b839-d70fe9b19aff
DEVICE=ens33				##<--
ONBOOT=yes					##<--
<2>启用动态配置文件
[root@C8 ~]# nmcli con up ens33_dynamic
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

[root@C8 ~]# ifconfig ens33 | awk '/\<netmask\>/{print $2}'
192.168.3.66
<3>停止网络连接,但是可以被自动激活
[root@C8 ~]# nmcli con down ens33_dynamic
Connection 'ens33_dynamic' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

[root@C8 ~]# ifconfig ens33 | awk '/\<netmask\>/{print $2}'
192.168.3.66
<4>禁用网卡,防止被自动激活
[root@C8 ~]# nmcli device disconnect ens33
Device 'ens33' successfully disconnected.

[root@C8 ~]# ifconfig ens33 | awk '/\<netmask\>/{print $2}'
  	##没有ip
<5>删除网卡配置文件
[root@C8 ~]# nmcli con delete ens33_dynamic
Connection 'ens33_dynamic' (18da32f3-230a-4888-b839-d70fe9b19aff) successfully deleted.
<6>指定静态IP方式的网络连接配置
[root@C8 ~]# nmcli con add con-name ens33_static ifname ens33 autoconnect yes type ethernet ip4 192.168.3.76/24 gw4 192.168.3.1
Connection 'ens33_static' (2e502d3d-cb21-4577-89f6-ef8d7ae7942e) successfully added.

[root@C8 network-scripts]# cat ifcfg-ens33_static 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.3.76		##<--
PREFIX=24
GATEWAY=192.168.3.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens33_static
UUID=c93461c1-2b0a-46d8-991f-f26b5bc3a15c
DEVICE=ens33
ONBOOT=yes
<7>启动静态配置文件
[root@C8 ~]# nmcli con up ens33_static
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
[root@C8 ~]# ifconfig ens33 | awk '/\<netmask\>/{print $2}'
192.168.3.76
<8>查看当前的网卡配置信息
[root@C8 ~]# nmcli con show
NAME								UUID                                  	TYPE		DEVICE 
ens32								152beb06-47c5-c5e8-95a9-385590654382	ethernet	ens32  
ens33_static				c93461c1-2b0a-46d8-991f-f26b5bc3a15c	ethernet	ens33  
ens33_dynamic				8c2d729e-862d-4457-9799-83ef24f56e3a	ethernet	--     
Wired connection 1	d3bf0fda-bc78-3c01-b67b-289fc3888a96	ethernet 	--   
[root@C8 ~]# nmcli c s --active
NAME					UUID                                  	TYPE		DEVICE 
ens32					152beb06-47c5-c5e8-95a9-385590654382	ethernet	ens32  
ens33_static	c93461c1-2b0a-46d8-991f-f26b5bc3a15c	ethernet	ens33  

(4)修改网卡配置

语法:nmcli connection modify ens33_static [+|-]setting.propertyvalue

setting.property:

ipv4.method (manual | auto)

ipv4.addresse

ipv4.gateway

ipv4.dns1

<1>设置网卡自动激活

ONBOOT=yes

[root@C8 ~]# nmcli con mod ens33_static connection.autoconnect yes
结果:	ONBOOT=yes

[root@C8 ~]# nmcli con mod ens33_static connection.autoconnect no
结果:	ONBOOT=no
<2>修改获取IP地址的方式

静态(manual或static)还是dhcp动态(auto)

[root@C8 ~]# nmcli con mod ens33_static ipv4.method manual或static
结果:	BOOTPROTO=none
[root@C8 ~]# nmcli con mod ens33_static ipv4.method auto
结果:	BOOTPROTO=dhcp
<3>修改IP配置
[root@C8 ~]# nmcli con mod ens33_static ipv4.addresses "172.16.3.10/16"
结果:	IPADDR=172.16.3.10
			PREFIX=16
<4>修改默认网关
[root@C8 ~]# nmcli con mod ens33_static ipv4.gateway 172.16.0.1
结果:	GATEWAY=172.16.0.1
<5>修改ip+网关
[root@C8 ~]# nmcli connection modify ens33_static ipv4.addresses 192.168.4.76/24 ipv4.gateway 192.168.4.1 
结果:	IPADDR=192.168.4.76
			PREFIX=24
			GATEWAY=192.168.4.1
<6>添加dns1+2
[root@C8 ~]# nmcli con mod ens33_static ipv4.dns 223.5.5.5
[root@C8 ~]# nmcli con mod ens33_static +ipv4.dns 8.8.8.8
结果:	DNS1=223.5.5.5
			DNS2=8.8.8.8
<7>禁用ipv6
[root@C8 ~]# nmcli c m ens33_static ipv6.method disabled
结果:	IPV6INIT=no
<8>让配置生效,需要启用网卡配置文件
[root@C8 ~]# nmcli c up ens33_static
<9>切换使用的网卡配置文件
[root@C8 ~]# nmcli c down ens33_static
Connection 'ens33_static' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)

[root@C8 ~]# nmcli c reload ens33_dynamic
[root@C8 ~]# nmcli c up ens33_dynamic
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
[root@C8 ~]# ifconfig ens33 | awk '/netmask/{print $2}'
192.168.3.66

缺 bonding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值