前言
好久没动电脑虚拟机,今天打开ubuntu发现右上角没有网络图标,打开终端ping不同百度,再输入ifconfig发现不显示网卡信息,于是开始尝试各种方式,各种网络服务down up,最终在知乎Felix的文章下解决,前来记录!
我的虚拟机是NAT模式
输入ifconfig不显示网卡,如下图(借用Felix老师的图片)
方法一(临时)
ifconfig ens33
sudo dhclient ens33
ifconfig
或者
sudo /sbin/dhclient
sudo ifconfig
需要注意的是,以上两种方式只是临时性的,非永久性,下次重启还是会出现ifconfig没有网卡的现象
dhclient(DHCP client)为动态主机配置协议客户端。
DHCP 客户端 dhclient 提供了一种使用动态主机配置协议 和 BOOTP 协议配置一个或多个网络接口的方法。如果这些协议失败,则通过静态分配地址来配置。详细参考https://blog.csdn.net/K346K346/article/details/127639954
方法二
第一步
nmcli con show
如果没有任何信息输出,换到管理员模式,即sudo nmcli con up ‘ifname’ ens33
如果出现下图(借用Felix老师的图片)错误,则进行第二步进行托管
第二步
查看托管状态:nmcli n
如果显示 disabled 则通过以下命令开启
开启托管:nmcli n on
nmcli是NetworkManager的一个命令行工具,它提供了使用命令行配置由NetworkManager管理网络连接的方法。详细参考https://blog.csdn.net/weixin_44863237/article/details/121899374
如果显示 enabled,但是每次重启还是无法自动获取IP(在第二步结束后输入ifconfig,查看是否显示网卡信息,正常情况下是没问题的),可以尝试第三步
第三步
查看dhclient 是否运行:ps -ef |grep dhclient
查看NetworkManager 是否运行
如果NetworkManager的状态为Active: inactive (dead),则NetworkManager未启动
# 查看是否自启
systemctl is-enabled NetworkManager
# 如果为 disabled 则没有启动
# 允许自启,并启动
systemctl enable NetworkManager && systemctl start NetworkManager
如果NetworkManager的状态为Active: active (running),查看网卡设备是否被NetworkManager 管理
输入:nmcli device status
显示网卡ens33的STATE为unmanaged,则该网卡设备未被NetworkManager管理,恢复管理(上图为已管理)
输入:nmcli device set ifname ens33 managed yes
重启 NetworkManager:systemctl restart NetworkManager
记得每执行完一步就查看ifconfig看看是否显示网卡,如果可以显示,再reboot试试看看,都可以就大功告成!