Linux报错
一、遇到ip addr时发现本机的ip并没有显示,这是因为我们使用的网络管理器NetworkManager动态代理出现了问题。
(1)关闭动态管理器
1 | sudo systemctl restart NetworkManager |
(2)重启网络接口,即可
1 | sudo ifup ens33 |
原因:
在 CentOS 7 和其他使用 NetworkManager
的 Linux 发行版中,NetworkManager
是负责管理网络接口和连接的守护程序。当你关闭 NetworkManager
或重启网络接口后,系统会回退到使用传统的网络配置方法,这通常涉及到 ifcfg-
文件,这些文件通常位于 /etc/sysconfig/network-scripts/
目录下。
当你执行以下命令重启网络接口时:
bash
1 | sudo ifdown <interface> |
或者重启 NetworkManager
:
bash
1 | sudo systemctl restart NetworkManager |
系统会重新应用 /etc/sysconfig/network-scripts/
目录下的配置文件中定义的网络设置。这些配置文件包含了网络接口的静态 IP 地址、子网掩码、网关等信息。因此,当你使用 ip addr
命令查看网络接口时,你看到的 IP 地址是基于这些配置文件设置的。
如果你之前通过 NetworkManager
动态配置了网络(例如,通过 DHCP 获取 IP),关闭 NetworkManager
后,系统将不再使用动态配置,而是使用 ifcfg-
文件中定义的静态配置。
这就是为什么在关闭 NetworkManager
或重启网络接口后,使用 ip addr
能够看到 IP 地址的原因。这些 IP 地址是根据系统配置文件中定义的静态设置分配的,而不是由 NetworkManager
动态管理的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 戴晓军的个人博客!