nmcli,全称为 NetworkManager Command-Line,是 NetworkManager 软件的命令行工具。它主要用于创建、显示、编辑、删除、启用和禁用网络连接,以及控制和显示网络设备状态。使用 nmcli 命令时,需要开启 NetworkManager 服务,不然会提示 "Error: NetworkManager is not running."。
以下是一些常见的nmcli命令:
1. 查看所有网络连接:nmcli connection show 2. 查看活动的网络连接:nmcli connection show --active 3. 查看指定网卡的详细信息:nmcli device show <device name> 4. 显示设备的连接状态:nmcli device status 5. 显示所有设备网络设备详情信息:nmcli device show 6. 显示指定网络设备的详细信息:nmcli device show <device name> 7. 启用网络连接:nmcli connection up <connection name> 8. 停用网络连接:nmcli connection down <connection name> 9. 禁用网卡放置被激活:nmcli device disconnect <device name> 10. 删除网络连接的配置文件:nmcli connection delete <connection name> 11. 重新加载网络配置文件:nmcli general reload
在 Ubuntu 系统上使用 nmcli 命令查看网络设备时,发现网络接口的 STATE 是 unmanaged:
于是上网搜索,有博客写了要修改配置文件 /etc/NetworkManager/NetworkManager.conf 再重启 NetworkManager 服务。
cat /etc/NetworkManager/NetworkManager.conf
sed -i 's/managed=.*/managed=true/' /etc/NetworkManager/NetworkManager.conf
systemctl restart NetworkManager
试之后发现网口还是 unmanaged 状态:
后续搜索发现了名为"Using NetworkManager for Ethernet on Ubuntu"的文章,依据其描述使用如下命令修改了配置文件
cd /usr/lib/NetworkManager/conf.d/
mv 10-globally-managed-devices.conf 10-globally-managed-devices.conf.bak
cp 10-globally-managed-devices.conf.bak 10-globally-managed-devices.conf
sed -i '/unmanaged-devices/s/$/&,except:type:ethernet/' 10-globally-managed-devices.conf
然后再重启 NetworkManager 服务
再次查看时网口 eth0 的状态就变为了 connected。
在使用nmcli命令时,咱们需要理解一些基本术语。一个网络连接(connection)包含了一个连接的所有信息,可以将它看作一个网络配置(configuration)。当一个连接被某个设备所使用,那么就可以说这个连接被激活(active)或者上线(up),反之则是停用(inactive)或下线(down)。
nmcli 还提供了丰富的网络设置选项。以下是一些主要的网络设置操作:
nmcli 支持更适合脚本处理的简洁输出,通过 nmcli 使用 NetworkManager,使得自动化配置和管理网络连接变得简单高效。
除了 nmcli,还有许多其他管理网络设置的工具,例如: 1. ifconfig:一种传统的网络配置工具,用于配置网络接口和路由表。 2. netstat:一种用于查看网络连接和网络统计信息的工具。 3. iproute2:一个强大的网络配置工具,用于配置网络接口、路由表和防火墙规则。iproute2 最吸引人的特色就是它用完整而有机制的简单命令替代了之前的功能,如 ifconfig、arp、route、iptunnel,而且还添加了其它不少的功能。 4. wicd:一款开源的无线网络连接管理器,同时也支持有线网络的管理。
参考文档:
相关阅读: