ubuntu24掉网卡驱动问题

背景是上午过来,发现电脑连不上网络。具体表现在:

  1. 网线插入,等会亮
  2. 设置中看不到网络连接
  3. 系统一切正常,命令行也没啥问题,就是没网络
  4. 查设备信息,有如下几个

$ nmcli device status

DEVICE TYPE STATE CONNECTION

lo loopback connected (externally) lo

docker0 bridge connected (externally) docker0

eno1 ethernet unavailable --

enp3s0 ethernet unavailable --

尝试手动up了一下网卡,但是报错,报错信息如下

$ nmcli con up enp3s0

Error: Connection activation failed: No suitable device found for this connection (device docker0 not available because profile is not compatible with device (mismatching interface name)).

问了gpt,尝试自己修复(见下文)

然后我就联系了一下公司的IT,请求外部支援。

IT小哥过来之后,搞了个仪器,测了网线,看起来网线没问题。

接着他换了一个网口,然后就好了!!!

猜测原因

猜测是昨晚和同事吹牛的时候,我点了一下软件更新,但是没执行。我就关电脑下班了。

于是我把更新配置选保守一点的,并且重新更新。

更新+重启之后,原来的网口也可以用了。:)

下面是GPT的回答,供参考:


nmcli device status unavailable 怎么处理?

在Ubuntu 24.04中使用nmcli激活未激活的网络连接,请按以下步骤操作:

1. 查看所有连接配置

bash 复制代码
nmcli connection show

找到未激活连接的 NAMEUUID(记下目标连接的名称)


2. 激活连接(两种方式)

方式一:使用连接名称激活
bash 复制代码
nmcli connection up "YourConnectionName"

替换 YourConnectionName 为实际连接名称(如 Wired connection 1

方式二:使用UUID激活
bash 复制代码
nmcli connection up uuid Your-UUID-Here

替换 Your-UUID-Here 为实际UUID(从第一步结果中复制)


3. 验证激活状态

bash 复制代码
nmcli connection show

检查目标连接的 ACTIVE 列是否变为 yes


4. 常见问题解决

如果激活失败:
  1. 检查设备状态

    bash 复制代码
    nmcli device status

    确保设备(如 enp0s3)处于 disconnectedunavailable 状态

  2. 启用网络设备

    bash 复制代码
    nmcli device connect enp0s3  # 替换为你的设备名
  3. 重启NetworkManager

    bash 复制代码
    sudo systemctl restart NetworkManager
  4. 检查连接配置

    bash 复制代码
    nmcli connection show "YourConnectionName" | grep ipv4.method

    确保配置正确(如DHCP应为auto


完整示例流程:

bash 复制代码
# 查看连接列表
$ nmcli con show
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  a5eb6490-cc20-4067-97ec-d3dced1a2ff3  ethernet  --
MyWiFi              6ab2cd1c-950a-4d68-93b4-5541b350b9f5  wifi      wlp4s0

# 激活有线连接
$ nmcli con up "Wired connection 1"
Connection successfully activated

# 验证结果
$ nmcli con show
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  a5eb6490-cc20-4067-97ec-d3dced1a2ff3  ethernet  enp0s3  # 已激活

注意:如果连接需要802.1X认证等特殊配置,请确保提前配置好认证信息:

bash 复制代码
nmcli connection modify "YourConnection" 802-1x.identity your_username
nmcli connection modify "YourConnection" 802-1x.password your_password

通过以上步骤即可成功激活网络连接。如遇硬件问题,请检查网线/无线开关状态。

报错处理:Error: Connection activation failed: No suitable device found for this connection (device docker0 not available because profile is not compatible with device (mismatching interface name)).

这个错误表明 NetworkManager 尝试在 docker0 虚拟接口上激活连接,但该连接配置与物理网络设备不兼容。以下是解决方法:

原因分析:

  1. 连接配置错误地关联到了 Docker 创建的虚拟网桥 docker0
  2. 物理网络设备(如 eth0/enp0s3)没有被正确识别或配置
  3. 连接配置中的接口名称设置错误

解决方案:

步骤 1:检查可用网络设备
bash 复制代码
nmcli device status

查看输出中的 DEVICE 列,找到你的物理网卡(如 enp0s3eth0wlan0

步骤 2:检查问题连接的配置
bash 复制代码
nmcli connection show "YourConnectionName" | grep -E "device|interface"

替换 YourConnectionName 为你的连接名称

步骤 3:修改连接配置(关键步骤)
bash 复制代码
# 清除错误绑定的接口
nmcli connection modify "YourConnectionName" connection.interface-name ""

# 或者指定正确的物理接口
nmcli connection modify "YourConnectionName" connection.interface-name "enp0s3"
步骤 4:重新激活连接
bash 复制代码
nmcli connection up "YourConnectionName"
步骤 5:如果仍失败,创建新连接
bash 复制代码
# 删除问题连接
nmcli connection delete "YourConnectionName"

# 为物理设备创建新连接
nmcli connection add type ethernet con-name "NewConnection" ifname enp0s3

# 激活新连接
nmcli connection up "NewConnection"
步骤 6:检查 Docker 干扰
bash 复制代码
# 停止 Docker 服务
sudo systemctl stop docker

# 删除 docker0 接口
sudo ip link delete docker0

# 尝试激活网络连接
nmcli connection up "YourConnectionName"

# 重启 Docker(网络恢复后)
sudo systemctl start docker

完整示例:

bash 复制代码
# 查看设备状态
$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION 
docker0 bridge    connected  bridge-docker0  # 问题在此
enp0s3  ethernet  disconnected --

# 修改连接配置
$ nmcli connection modify "Wired connection 1" connection.interface-name enp0s3

# 激活连接
$ nmcli connection up "Wired connection 1"
Connection successfully activated

# 验证
$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION 
enp0s3  ethernet  connected  Wired connection 1  # 成功激活
docker0 bridge    connected  bridge-docker0

永久解决方案:

/etc/NetworkManager/NetworkManager.conf 中添加:

ini 复制代码
[keyfile]
unmanaged-devices=interface-name:docker0

然后重启服务:

bash 复制代码
sudo systemctl restart NetworkManager

注意:如果使用 Docker,建议创建专用网络配置:

bash 复制代码
nmcli connection add type bridge ifname docker0 con-name docker-bridge ipv4.method disabled ipv6.method ignore

通过以上步骤,你应该能成功激活物理网络连接,同时保持 Docker 网络功能正常。

相关推荐
江公望43 分钟前
ubuntu kylin(优麒麟)和标准ubuntu的区别浅谈
linux·服务器·ubuntu·kylin
mucheni1 小时前
迅为RK3588开发板Ubuntu 系统开发ubuntu终端密码登录
linux·运维·ubuntu
木欣欣粉皮2 小时前
Ubuntu使用图片
linux·ubuntu
蓝冰印8 小时前
HarmonyOS Next 快速参考手册
linux·ubuntu·harmonyos
DechinPhy9 小时前
Ubuntu挂载新硬盘
linux·运维·服务器·ubuntu
lht6319356129 小时前
Ubuntu Server 系统安装图形界面远程工具(RDP)
linux·运维·ubuntu
Reboot9 小时前
mini主机Windows系统更换为Ubuntu系统教程(不含图形化页面)
ubuntu
lht63193561211 小时前
Ubuntu Server系统安装谷歌浏览器
linux·运维·ubuntu
知南x11 小时前
【QT界面设计学习篇】qt Kits工具设置/qt多版本设置(ubuntu)
qt·学习·ubuntu
BB_CC_DD11 小时前
在NVIDIA Jetson Orin NX (Ubuntu 22.04, JetPack 5.1, CUDA 11 cuDnn8) 上安装PyTorch 2
pytorch·深度学习·ubuntu