NetworkManager介绍
NetworkManager 是一个在 Linux 系统上管理网络连接的系统服务和工具。它可以自动配置和管理有线、无线、移动宽带和虚拟专用网络 (VPN) 连接,以及其他类型的网络连接。
NetworkManager 提供了一种简单且易于使用的方法来管理网络连接,允许用户轻松地切换不同的网络连接,并自动配置网络设置。它还提供了图形用户界面和命令行工具来管理网络连接。
在大多数 Linux 发行版中,NetwrkManager 已经成为默认的网络管理器。
nmcli 介绍
nmcli 是 NetworkManager 的命令行工具,可以用于在 Linux 系统上管理网络连接。它可以用来列出、配置、启动和停止网络连接,以及查看网络状态和信息。
通过 nmcli,用户可以执行以下操作:
- 列出可用的网络连接
- 连接到特定的网络
- 配置网络设置,如 IP 地址、网关和 DNS
- 启用或禁用网络连接
- 查看网络连接的状态和信息
- 配置虚拟专用网络 (VPN) 和其他类型的网络连接
- nmcli 可以在终端中使用,也可以编写脚本自动化网络连接的配置和管理。它提供了广泛的选项和参数,允许用户根据需要自定义网络连接的行为和设置。
配置步骤
在终端中输入以下命令,查看 NetworkManager 是否接管了网络:
nmcli networking
如果输出 disabled,则表示 NetworkManager 未接管网络,网络图标消失也是由此导致的。
正常的网络设置界面应该是这样子的:
出问题后,有线连接的设置项就消失了:
这时候查看网卡,会提示“未托管”:
[root@localhost ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 未托管 --
连接网卡(以 ens33 网卡为例),会提示失败:
[root@localhost ~]# nmcli device connect ens33
错误:添加/激活新连接失败:Connection 'ens33' is not available on device ens33 because device is strictly unmanaged
解决办法:
只需要一条命令就能搞定,在终端中输入:
nmcli networking on
另一种稍显笨拙的办法:
1.关闭 NetworkManager。在终端中输入:
systemctl stop NetworkManager
2.打开 /var/lib/NetworkManager/NetworkManager.state,将其中的 NetworkingEnabled= false 改为 NetworkingEnabled= true;
3.重新启动 NetworkManager。在终端中输入:
systemctl start NetworkManager
注意,必须先关闭 NetworkManager,再修改文件,否则修改不会生效。
可能的原因 2:NetworkManager 未运行
在终端中输入以下命令,查看 NetworkManager 的运行状态:
systemctl status NetworkManager
如果显示Active: inactive (dead)
,则表示 NetworkManager 未运行。
此时的网络设置项长这样:
解决办法:
在终端中输入以下命令,运行 NetworkManager:
systemctl start NetworkManager
再次查看 NetworkManager 的运行状态会显示:Active: active (running)
。
建议将 NetworkManager 设为开机自启:
systemctl enable NetworkManager
查看是否开机启动:
systemctl is-enabled NetworkManager
总结
systemctl status NetworkManager # 查看 NetworkManager 是否运行
systemctl start NetworkManager # 运行 NetworkManager
systemctl enable NetworkManager # 将 NetworkManager 设为开机自启
nmcli networking # 查看 NetworkManager 是否接管了网络
nmcli networking on # 开启网络
[参考文章]:
https://zhuanlan.zhihu.com/p/395817630