Ubuntu系统上nmcli device status显示接口状态unmanaged

2023-10-25 09:40:50 浏览数 (2)

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 服务。

代码语言:javascript复制
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"的文章,依据其描述使用如下命令修改了配置文件

代码语言:javascript复制
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的相应命令。
  • 启动或停止网卡:nmcli可以控制网络接口的启动和停止,你可以通过这个功能来连接或断开网络。
  • 设置IP地址和网关:nmcli允许你为网络接口指定IP地址、子网掩码、网关等参数,这在配置网络连接时非常有用。
  • 设置DNS:nmcli还支持设置DNS服务器的地址,这对于解析域名非常重要。
  • 配置静态路由:除了基本的IP配置,nmcli还可以用于设置静态路由,以控制数据包的传输路径。
  • 高级网络设置:对于更复杂的网络类型,如InfiniBand,nmcli也提供了相应的配置选项。

nmcli 支持更适合脚本处理的简洁输出,通过 nmcli 使用 NetworkManager,使得自动化配置和管理网络连接变得简单高效。

除了 nmcli,还有许多其他管理网络设置的工具,例如: 1. ifconfig:一种传统的网络配置工具,用于配置网络接口和路由表。 2. netstat:一种用于查看网络连接和网络统计信息的工具。 3. iproute2:一个强大的网络配置工具,用于配置网络接口、路由表和防火墙规则。iproute2 最吸引人的特色就是它用完整而有机制的简单命令替代了之前的功能,如 ifconfig、arp、route、iptunnel,而且还添加了其它不少的功能。 4. wicd:一款开源的无线网络连接管理器,同时也支持有线网络的管理。

参考文档:

  • https://manpages.org/nmcli
  • https://manpages.org/networkmanagerconf/5
  • https://jbit.net/NetworkManager_Strictly_Unmanaged/

相关阅读:

  • 用Bash变量进行sed替换
  • 在vxlan网络中使用tcpdump精确过滤抓包

0 人点赞