【网络】nmcli 网络管理工具 | 您所在的位置:网站首页 › linux系统重启网络服务 › 【网络】nmcli 网络管理工具 |
目录 nmcli 命令 前提 重启网络服务 / 重启网卡 nmcli配置网卡参数 实例 nmcli输出说明 3种网络配置方法 nmcli的命令参数 Tips ethtool 命令 IP命令 添加网卡到配置文件 Linux系统怎么查看网卡的UUID nmcli 命令原文:nmcli 网络管理工具 - web男 - 博客园 前提使用 nmcli 时,NetworkManager 必须保持开启。 NetworkManager 的相关命令: 查看运行状态:systemctl status NetworkManager 启动:systemctl start NetworkManager 重启:systemctl restart NetworkManager 关闭:systemctl stop NetworkManager 查看是否开机启动:systemctl is-enabled NetworkManager 开机启动:systemctl enable NetworkManager 禁止开机启动:systemctl disable NetworkManager (NetworkManager和network.service的区别: network是linux直接配置网卡的程序 NetworkManager是提供一个丰富的API来检查和控制网络设置和操作的应用程序 network和NetworkManager一起工作时就会出现冲突 网卡解决network和NetworkManager的冲突问题_BiGpeng丶的博客-CSDN博客 centos8之后默认就是用NetworkManager管理网络,centos9之后就彻底抛弃network。 NetworkManage于network功能类似,都是用于管理网络。NetworkManage提供了nmctl、nmtui两个工具,两个都是用来管理网络,但是有一个前提:nmctl networking 状态必须是enable否则设备状态为unmanaged,这会导致network启动不了!!) 重启网络服务 / 重启网卡#重启⽹卡之前⼀定要重新载⼊⼀下配置⽂件,不然不能⽴即⽣效 nmcli c reload #重启⽹卡(下⾯的三条命令都可以) nmcli c up ens160 #nmcli c reload会读取配置文件,但是不会立即生效,接着如果执行nmcli c up ethX,就会立即生效 nmcli d reapply ens160 #更新设备信息,只有在设备处于连接状态,才可以更新设备。更新设备相当于重启连接。 nmcli d connect ens160 #连接设备,如果 ens33 本来就出于连接状态,那此命令会重启 ens160。 01 nmcli networking nmcli networking或nmcli n 显示 NetworkManager 是否接管网络设置 nmcli n on 设定 NetworkManager 接管网络设置 nmcli n off 取消 NetworkManager 接管网络设置 nmcli n connectivity/nmcli n c 查看网络连接状态 网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)、none(没连网)和 unknown。 02 nmcli general nmcli general status/nmcli g 显示系统网络状态 其中: STATE 显示网络是否连接; CONNECTIVITY 与前面介绍的 nmcli networking connectivity 相同; WIFI-HW 表示 WIFI 硬件开关、WIFI 表示 WIFI 软件开关; WWAN-HW 表示 WWAN 硬件开关、WWAN 表示 WWAN 软件开关。 HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。 03 nmcli connection nmcli connection show/nmcli c 显示所有网络连接的信息 nmcli c s -a /nmcli c s --active 显示所有网络连接的信息,只显示当前启动的连接 nmcli c s ens33 显示某一特定连接的详细信息(以 ens33 为例) nmcli c up ens33 启动指定连接 nmcli c down ens33 关闭指定连接 nmcli c reload / nmcli c r 重载所有连接的配置文件 nmcli c load ifcfg-ens33/nmcli c l ifcfg-ens33 重载某一指定连接的配置文件: 网络配置文件默认保存在 /etc/sysconfig/network-scripts/ 路径下,如果配置文件在其它位置,则需要填写完整路径。 (多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。这样的好处是针对一个网络接口,我们可以设置多个网络链接文件,比如静态IP和动态IP,再根据需要up相应connection,这样可以方便的切换网络配置,比如笔记本电脑移动办公,到不同的环境同一个网卡可以切换到不同的网络配置,配置好以后不需要每次都从新配置。) 04 nmcli device nmcli device status / nmcli d 显示所有网络接口设备的状态,列出所有可用的设备 nmcli d show / nmcli d sh 显示所有设备的详细信息# show不可简写为s,与 status 冲突,但可写为 sh nmcli d sh ens33 显示某一特定设备的详细信息 nmcli d connect ens33或nmcli d c ens33 连接设备,如果 ens33 本来就出于连接状态,那此命令会重启 ens33。 nmcli d disconnect ens33 或 nmcli d d ens33 断开设备 nmcli d reapply ens33 / nmcli d r ens33 更新设备信息,只有在设备处于连接状态,才可以更新设备。更新设备相当于重启连接。 更多命令:Linux中nmcli命令详解_https://blog.csdn.net/yulin003/article/details/125561203 命令 目的 nmcli dev status/nmcli d status显示所有网络接口的网络管理器状态nmcli con show/nmcli c show列出所有连接nmcli con show [connect_name]/nmcli c show [connect_name]列出连接名称的当前设置nmcli con show ens21f0nmcli con reload/nmcli c reload告诉networkManager重新读取配置文件(在手工编辑之后有用)nmcli con up [connect_name]/nmcli c up [connect_name]/激活连接名称nmcli dev dis [dev_name]停用并断开网络接口开发人员上的当前连接nmcli con del [connect_name]删除连接名称及其配置文件设备,是网络设备的接口,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d 在NM里,有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即 nmcli d可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即 nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过 nmcli c up切换连接。 原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116 4、device有4种常见状态: ▷ connected:已被NM纳管,并且当前有活跃的connection ▷ disconnected:已被NM纳管,但是当前没有活跃的connection ▷ unmanaged:未被NM纳管 ▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ethX down) 原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116 [root@node71 ~]# nmcli dev status DEVICE TYPE STATE CONNECTION ens35f0 ethernet connected ens35f0 cni-podman0 bridge connected (externally) cni-podman0 virbr0 bridge connected (externally) virbr0 ens35f1 ethernet disconnected -- ens49f0 ethernet disconnected -- ens49f1 ethernet disconnected -- veth69fa1863 ethernet unmanaged -- veth7021e951 ethernet unmanaged -- veth81e4dd60 ethernet unmanaged -- vetha529eed5 ethernet unmanaged -- lo loopback unmanaged -- virbr0-nic tun unmanaged -- nmcli配置网卡参数modify 增加 + modify 删除 - modify 配置 9.添加多个ip地址 nmcli con modify [网卡名] +ipv4.addresses 192.168.1.2/24 +ipv4.dns 223.5.5.5 connection.autoconnect yes 10.删除地址 nmcli con modify [网卡名] -ipv4.addresses 192.168.1.2/24 -ipv4.dns 223.5.5.5 connection.autoconnect yes 11.设置自动获取和手动配置 # dhcp自动获取 nmcli con modify [网卡名] ipv4.method auto # 手动配置 nmcli con modify [网卡名] ipv4.method method 原文链接:https://blog.csdn.net/h1139015624/article/details/129522075 修改bond的参数 [root@node25 ~]# cat /etc/NetworkManager/system-connections/bond0.nmconnection [connection] id=bond0 uuid=64113cbd-c033-40ac-a0db-44486f53bded type=bond interface-name=bond0 timestamp=1695132192 [ethernet] [bond] miimon=80 mode=802.3ad [ipv4] method=disabled [ipv6] addr-gen-mode=default method=disabled [proxy]
配置bond0网口链接的bond参数 sudo nmcli connection modify bond0 bond.options mode=802.3ad,miimon=80 #逗号隔开 添加bond0网口链接的bond参数 nmcli connection modify bond0 +bond.options xmit_hash_policy=layer3+4 #+号 删除bond0网口链接的bond参数 nmcli connection modify bond0 -bond.options xmit_hash_policy=layer3+4 # -号 实例查看网卡信息 nmcli 查看网络设备状态 nmcli device status 查看网络连接状态 nmcli connection 查看UUID等网卡信息 nmcli connection show 查看网络详细信息 nmcli device show ens32 设置静态ip nmcli connection modify ens32 ipv4.addresses '192.168.1.10' 设置网关 nmcli connection modify ens32 ipv4.gateway '192.168.1.1' 设置DNS nmcli connection modifly ens32 ipv4.dns '144.144.144.144' ip地址设为手动 nmcli connection modify ens32 ipv4.method manual ip地址设为自动获取 nmcli connection modify ens32 ipv4.method auto 设置开机自动连接 nmcli connection modify ens32 connection.autoconnect yes nmcli connection modify ens32 connection.autoconnect no 重新加载配置文件 nmcli connection reload 不重启系统网卡生效 nmcli connection up ens32 nmcli device connect ens32 nmcli device reapply ens32 查看DNS cat /etc/resolv.conf nmcli输出说明nmcli connection说明 [root@master ~]# nmcli c show 显示所有活动链接 名称 UUID 类型 设备 ens33 51a4ba6c-0635-400b-a1c6-f9e87d55c303 802-3-ethernet ens33 # 这是当前激活的连接带颜色字体,只是文章里体现不出来 virbr0 0d2e6f20-0044-49f9-80ec-cbe19c31df42 bridge virbr0 10.97.17.90 93e8cf06-bd0b-4b69-b802-f3c8c602e000 ethernet # “--”表示当前没有激活的连接每一行是一个连接,只是只有一个是激活状态 第一列是connection名字(连接名称)简称con-name,简称con-name(注意con-name不是网卡名) 第二列是connection的UUID 第三列是connection的网络类型 最后一列才是网卡名(标准说法叫device名),可通过nmcil d查看device 对connection做操作时需要指定标识,标识可以是con-name、UUID、如果存在ifcfg文件则也可以用ifcfg的完整路径,即/etc/sysconfig/network-scripts/ifcfg-ethX,如下示例: nmcli c show ethX nmcli c show cae3f1ef-e79a-46c3-8e0c-946b91a65e11 nmcli c show /etc/sysconfig/network-scripts/ifcfg-ethX 1、nmcli connection名字(连接名称) 同时对应ifcfg的文件名以及内容中的NAME=,该参数表示连接(connection)的名字,无需和网卡名相同,可以为一个设备(device)创建多个连接,但同一时刻只能有一个连接生效。当有多个连接时候,可以通过nmcli c delete删除当前连接,就会自动选择同一个设备的其他连接来顶替生效。可以通过nmcli c up来将指定连接切换生效。 注意:通过nmcli c modify修改连接名称,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名。 2、nmcli c的ipv4.method 对应ifcfg文件内容的BOOTPROTO,ipv4.method默认为auto,对应为BOOTPROTO=dhcp,这种时候如果指定ip,就可能导致网卡同时有dhcp分配的ip和静态ip。设置为manual表示BOOTPROTO=none,即只有静态ip。 nmcli device说明 [root@master ~]# nmcli d status #查看设备接口简略信息 设备 类型 状态 CONNECTION virbr0 bridge 连接的 virbr0 ens33 ethernet 连接的 ens33 lo loopback 未管理 -- virbr0-nic tun 未管理 -- 每一行表示一个网络设备的接口。 第一列表示设备接口的名称,第二列表示设备接口的类型,第三列表示设备接口状态,最后一列表示connection的名字,“–”表示设备为使用! 1、nmcli d connect ethX 由NM对指定网卡进行管理,同时刷新该网卡对应的活跃connection(如果之前有修改过connection配置);如果有connection但是都处于非活跃状态,则自动选择一个connection并将其活跃;如果没有connection,则自动生成一个并将其活跃。 2、nmcli d disconnect ethX 让NM暂时不管理指定网卡,此操作不会变更实际网卡的link状态,只会使对应的connection变成非活跃。若重启系统则又会自动connect。另外,如果手工将该网卡的connection全部删掉,该网卡状态也会自动变为disconnected。 3、nmcli d reapply ethX 专门用于刷新connection,前提是网卡的device处于connected状态,否则会报错。 4、nmcli d set ethX autoconnect yes|no managed yes|no 可以设置是否自动连接和是否自动管理,但经测试只能用于当前开机状态, 如果这2个参数都设置为no,然后重启系统,又会自动恢复成connected和managed yes的状态。所以该命令用途不大。注意事项:如果managed设置为no,那么nmcli c reload会读取配置文件,但是不会立即生效,接着如果执行nmcli c up ethX,就会立即生效,同时managed自动变为yes。 重启系统自动恢复成connected和managed yes的状态,这种逻辑并不实用也不够合理,牛人已将此问题提交给redhat,据回复,这么设计是因为目前没有一个有效的手段来证明“我是我”,比如当网卡重新拔插到其他插槽时候,网卡名有很大可能性会发生变化,因此无法确定关机前设置的是对应开机后的哪个网卡,目前暂无办法解决,笔者将持续跟进。 3种网络配置方法在讲3种配置方法前,需要先明白ifcfg和NM connection的关联:虽然network.service被废弃了,但是redhat为了兼容传统的ifcfg,通过NM进行网络配置时候,会自动将connection同步到ifcfg配置文件中。也可以通过nmcli c reload或者nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX的方式来让NM读取ifcfg配置文件到connection中。因此ifcfg和connection是一对一的关系,另外上面有提到,connection和device是多对一的关系。 手工配置ifcfg,通过NM来生效 通过NM自带工具配ip,比如nmcli 手工配置ifcfg,通过传统network.service来生效 建议: 推荐使用上述第1种网络配置方法(手工配置ifcfg,通过NM生效),因为这样既兼容了传统的ifcfg配置,又能熟悉nmcli。 原文链接:https://blog.csdn.net/qq_50573146/article/details/126797116 插曲 prefix 子网掩码 255.255.255.0用二进制表示为11111111.11111111.11111111.00000000, 24个1。所以说网络位是24位。PREFIX=24 255.255.255.192用二进制表示为11111111.11111111.11111111.11000000, 26个1。所以说网络位是26位。PREFIX=26 255.255.255.128用二进制表示为11111111.11111111.11111111.10000000, 26个1。所以说网络位是25位。PREFIX=25 255.255.255.224用二进制表示为11111111.11111111.11111111.11100000, 27个1。所以说网络位是27位。PREFIX=27 255.255.255.240用二进制表示为11111111.11111111.11111111.11110000, 28个1。所以说网络位是28位。PREFIX=28 255.255.255.248用二进制表示为11111111.11111111.11111111.11111000, 29个1。所以说网络位是29位。PREFIX=29 笔者配置文件中最后有一行 prefix = 32 ,无论如何设置子网掩码netlmask 都是255.255.255.255,删除后才恢复 用ip addr 查看更快: 16: eth1: mtu 1400 group default qlen 1 link/ether 00:ff:8e:e9:b9:b6 inet 10.32.208.248/24 brd 10.32.208.255 scope global dynamic |
CopyRight 2018-2019 实验室设备网 版权所有 |