方法一

重启一下 Ubuntu 的 network-manager 服务

sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state 
sudo service network-manager start

方法二

1.ifconfig

damon@damon-virtual-machine:~$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 476  bytes 49524 (49.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 476  bytes 49524 (49.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

damon@damon-virtual-machine:~$ 

1.检查网络状态

首先,检查网络是否正常连接:

damon@damon-virtual-machine:~$ nmcli device status
DEVICE  TYPE      STATE   CONNECTION 
ens33   ethernet  未托管  --         
lo      loopback  未托管  --         
damon@damon-virtual-machine:~$ 

这将列出所有网络设备,并显示它们的状态(连接、断开连接等)。请确认你的网卡是连接状态。

2.激活网络接口

你的 ens33 目前是关闭状态。你可以尝试激活它:

sudo ip link set ens33 up

执行这个命令之后,再次检查网络接口状态:

damon@damon-virtual-machine:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 00:0c:29:d2:d1:2a brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet6 fe80::20c:29ff:fed2:d12a/64 scope link 
       valid_lft forever preferred_lft forever
damon@damon-virtual-machine:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::20c:29ff:fed2:d12a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d2:d1:2a  txqueuelen 1000  (以太网)
        RX packets 16  bytes 960 (960.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23  bytes 2894 (2.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 636  bytes 60884 (60.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 636  bytes 60884 (60.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

damon@damon-virtual-machine:~$ 

3.检查 NetworkManager 的管理权限

“未托管”的状态通常是由于 NetworkManager 没有管理该接口导致的。你需要确认 NetworkManager 可以管理 ens33 接口:

编辑 /etc/NetworkManager/NetworkManager.conf 文件:

sudo gedit /etc/NetworkManager/NetworkManager.conf

内容如下:

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

[ifupdown] 段中 managed=false,这意味着 NetworkManager 不管理 ifupdown 配置的接口(如 ens33)。

要解决“未托管”的问题,你可以修改这个配置,将 managed 设置为 true,这样 NetworkManager 就可以管理你的网络接口了。

重启 NetworkManager 服务

sudo systemctl restart NetworkManager

激活 ens33 网络接口

现在 NetworkManager 应该可以管理 ens33 接口了,尝试激活该接口

nmcli device connect ens33

检查接口状态:

再次运行以下命令,确认网络接口是否已连接:

nmcli device status

此时 ens33 应该显示为“已连接”(CONNECTED)状态。如果还是无法连接,可以尝试使用 DHCP 获取 IP 地址:

sudo dhclient ens33

4.使用 NetworkManager 设置自启动

NetworkManager 是 Ubuntu 中常用的网络管理工具,默认情况下它会自动管理和启动网络接口。

确保 NetworkManager 服务在启动时启用

首先确保 NetworkManager 服务在启动时是启用的:

sudo systemctl enable NetworkManager

设置接口在启动时自动连接

如果你想确保特定的网络接口(例如 ens33)在每次系统启动时自动连接,可以使用 nmcli 命令进行配置:

nmcli connection modify ens33 connection.autoconnect yes

参考

彻底解决VM ubuntu在虚拟机找不到网卡无法上网的问题

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐