更换主板后Ubuntu 22.04网卡无法连接路由器,状态异常求助
Hey Rasmus,我看到你换主板后遇上了Ubuntu 22.04网卡连不上路由器的麻烦,咱们一步步来排查解决这些问题:
一、先修正Netplan配置的冲突问题
你的/etc/netplan/50-cloud-init.yaml里同时开启了dhcp4: true又手动添加了默认路由,这会和DHCP自动获取网关的功能冲突,反而干扰正常的IP获取流程。建议先删掉手动路由部分,恢复干净的DHCP配置:
修改后的配置文件内容如下(注意修正MAC地址的格式,确保是标准的6组十六进制数):
network: ethernets: enp0s31f6: dhcp4: true match: macaddress: 4c:cc:6a:67:XX:XX set-name: enp0s31f6 version: 2
修改后执行以下命令应用配置并重启网络服务:
sudo netplan generate sudo netplan apply sudo systemctl restart systemd-networkd
二、解决NetworkManager与Netplan的兼容性冲突
你用nmcli device status看到网卡显示disconnected,大概率是Netplan默认使用systemd-networkd管理网卡,但NetworkManager也在后台运行,两者出现了管理冲突。可以让Netplan交给NetworkManager来管理网卡:
在Netplan配置里添加renderer: NetworkManager,修改后配置如下:
network: ethernets: enp0s31f6: dhcp4: true match: macaddress: 4c:cc:6a:67:XX:XX set-name: enp0s31f6 version: 2 renderer: NetworkManager
再次应用配置并重启NetworkManager:
sudo netplan generate sudo netplan apply sudo systemctl restart NetworkManager
之后可以手动尝试连接网卡:
nmcli device connect enp0s31f6
也可以通过桌面右上角的网络图标,查看是否能识别到网卡并自动获取IP。
三、检查路由器端的残留配置
你提到之前将这台机器的IP改成了旧机器的静态IP,后来改回DHCP,需要确认路由器后台有没有残留的配置:
- 清空旧MAC地址绑定的静态IP规则
- 确保新网卡的MAC地址没有被加入路由器的黑名单
- 重启路由器,让DHCP服务重置
四、临时手动配置IP测试链路连通性
ip a里网卡显示<BROADCAST,MULTICAST,UP,LOWER_UP>说明物理链路是通的(网线、网卡硬件没问题),只是没获取到IP。可以手动临时配置IP测试:
sudo ip addr add 192.168.0.100/24 dev enp0s31f6 sudo ip route add default via 192.168.0.1
然后ping路由器测试连通性:
ping 192.168.0.1
如果能ping通,说明硬件和链路没问题,问题出在DHCP或配置上;如果ping不通,可能是路由器端的限制,或者网卡驱动仍有问题。
五、修复e1000e网卡驱动问题
你尝试编译最新版驱动失败,可以先尝试用Ubuntu官方仓库的模块修复:
sudo apt update sudo apt install --reinstall linux-modules-extra-$(uname -r) sudo modprobe -r e1000e sudo modprobe e1000e
这条命令会重新安装当前内核对应的额外模块(包括网卡驱动),然后重新加载驱动。
另外,新主板的网卡节能模式可能导致连接异常,可以禁用它:
sudo ethtool -s enp0s31f6 wol d
如果需要永久生效,可以将这条命令添加到/etc/rc.local文件中(若文件不存在,需先创建并赋予执行权限)。
完成以上步骤后,再用ip a、nmcli device status和ping 192.168.0.1检查状态,看看问题是否解决。
备注:内容来源于stack exchange,提问作者Rasmus

