nmcli
命令是 NetworkManager
提供的
nm
代表 NetworkManager
,cli
代表 Command-Line
命令行
Linux操作系统的网卡设备传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的,缺点是比eth0、wlan0更难读,比如ens33。
因此,有些用户或系统管理员可能会选择将网卡命名从ens33改为eth0。这可能是因为他们更熟悉传统的命名方式,或者认为eth0的命名方式更加直观和易于理解。
此外,某些应用程序或脚本可能依赖于传统的网卡命名方式,因此在某些情况下,将网卡命名改为eth0可能是必要的
# 修改内核引导文件
[root@yunOS ~]# vim /etc/default/grub
、、、、、、
GRUB_CMDLINE_LINUX="……quiet net.ifnames=0 biosdevname=0"
、、、、、、
# 重新生成网卡命名的规则
[root@yunOS ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
# 重启系统
[root@yunOS ~]# reboot
[root@yunOS ~]# nmcli connection show
简写: nmcli c show
绿色表示,启动,在用,但名字处是????,所以没有办法管理,一般我是把它们全部删除,可以使用NAME(名字)删除,也可以使用UUID删除
[root@yunOS ~]# nmcli connection delete 9da557dc-30d5-350b-bdef-d3c578cb5d75
[root@yunOS ~]# nmcli connection delete ens33
简写:nmcli c de ens33 # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de
[root@yunOS ~]# nmcli connection add type ethernet ifname eth0 con-name eth0
解析: nmcli connection 添加 类型 以太网设备 网卡设备名为eth0 nmcli命令的命名为eth0
网卡配置文件目录:/etc/sysconfig/network-scripts/
支持简写: nmcli c m eth0 、、、、、
[root@yunOS ~]# nmcli connection modify eth0
ipv4.method manual
ipv4.addresses 192.168.88.77/24
ipv4.gateway 192.168.88.200
autoconnect yes
命令解析
[root@yunOS ~]# nmcli connection 修改 外号
ipv4.方法 手工配置
ipv4.地址 192.168.88.77/24
ipv4.网关 192.168.88.200
是否开机自启,其值只能是 yes 或 no,默认 yes
激活
[root@yunOS ~]# nmcli connection up eth0
nmcli connection modify eth0 选项 选项值
简写:nmcli c m eth0 选项 选项值
# 修改 IP 地址和子网掩码
nmcli c m eth0 ipv4.address 192.168.88.66/24
# 修改为静态配置,默认是 auto
nmcli c m eth0 ipv4.method manual
# 修改默认网关
nmcli c m eth0 ipv4.gateway 192.168.80.2
# 修改 DNS
nmcli c m eth0 ipv4.dns 192.168.80.2
# 添加一个 DNS
nmcli c m eth0 +ipv4.dns 114.114.114.114
# 将 IPv6 禁用
nmcli c m eth0 ipv6.method disabled
# 开机启动
nmcli c m eth0 connection.autoconnect yes
注意,必须先修改 ipv4.address,然后才能修改 ipv4.method!
用空引号""代替选项的值,可将选项设回默认值(以 ipv4.method 为例):
nmcli c m eth0 ipv4.method ""
选项有很多,详细信息可以通过以下命令查看:
man 5 nm-settings-nmcli
主要可以看里面 connection setting 和 ipv4 setting 部分
[root@client1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet # 网络接口的类型,Ethernet表示以太网接口
PROXY_METHOD=none # 代理方式,none表示没有设置代理
BROWSER_ONLY=no # 是否仅限于浏览器使用,no表示不是仅限于浏览器使用
BOOTPROTO=none # 引导协议,none表示没有设置引导协议,等同于 ipv4.method manual
DEFROUTE=yes # 是否使用默认路由,yes表示使用默认路由
IPV4_FAILURE_FATAL=no # 是否将IPV4连接失败视为致命错误,no表示不是致命错误
IPV6INIT=yes # 是否初始化IPV6支持,yes表示初始化IPV6支持
IPV6_AUTOCONF=yes # 是否启用IPV6自动配置,yes表示启用IPV6自动配置
IPV6_DEFROUTE=yes # 是否使用IPV6默认路由,yes表示使用IPV6默认路由
IPV6_FAILURE_FATAL=no # 是否将IPV6连接失败视为致命错误,no表示不是致命错误
IPV6_ADDR_GEN_MODE=default
NAME=eth0 # 网络接口的名称
UUID=bf659606-5648-428a-a41c-3b493bef79c1
DEVICE=eth0 # 指定网卡设备名称,就是NAME里面的值
ONBOOT=yes # 指定是否在系统启动时启用该接口,1表示启用,0表示禁用。
IPADDR=192.168.88.77 # IP地址
PREFIX=24 # 子网掩码前缀长度,表示使用了24位的子网掩码(对应的子网掩码是255.255.255.0)
GATEWAY=192.168.88.200 # 网关
nmcli connection delete eth0
简写:nmcli c de eth0
nmcli connection reload
简写:nmcli c r
nmcli connection load ifcfg-eth0
简写:nmcli c l ifcfg-eth0
网络配置文件默认保存在 /etc/sysconfig/network-scripts/ 路径下,如果配置文件在其它位置,则需要填写完整路径
nmcli device status
简写:nmcli d
status 是 device 的默认项,可以省略不写
nmcli device show
简写:nmcli d sh
show 不可简写为 s,否则与 status 冲突,但可以简写为 sh
nmcli device show eth0
简写:nmcli d sh eth0
nmcli device connect eth0
简写:nmcli d c eth0
如果 eth0 本来就出于连接状态,那此命令会重启 eth0。
nmcli device disconnect eth0
简写:nmcli d d eth0
nmcli device reapply eth0
简写:nmcli d r eth0
只有在设备处于连接状态,才可以更新设备。
更新设备相当于重启连接。
nmcli general hostname
简写:nmcli g h
nmcli general hostname yunOS
简写:nmcli g h yunOS
yunOS是你设置的新主机名。主机名存放在 /etc/hostname 文件中。
修改主机名后,需要重启 NetworkManager
管理命令 | 用法 |
---|---|
systemctl status NetworkManager | 查看运行状态 |
systemctl start NetworkManager | 启动 |
systemctl restart NetworkManager | 重启 |
systemctl stop NetworkManager | 关闭 |
systemctl is-enabled NetworkManager | 查看是否开机启动 |
systemctl enable NetworkManager | 开机启动 |
systemctl disable NetworkManager | 禁止开机启动 |
版本一:2024年1月18日
作者:javayun@qq.com