问题背景
在 Ubuntu 20.04 系统上遇到网卡无法识别的问题,主要涉及两个网卡:
- 有线网卡:Realtek RTL8125 2.5GbE Controller
- 无线网卡:MediaTek MT7921 Wi-Fi 6 (需要 mt76 驱动)
问题诊断流程
1. 初步检测硬件
# 查看 PCI 网络设备
lspci | grep -i network
lspci -nnk | grep -A3 -i network
# 查看 USB 设备(排查是否为 USB 网卡)
lsusb
# 查看网络接口状态
ip link show
ifconfig -a
2. 检查驱动加载情况
# 检查已加载的网卡驱动模块
lsmod | grep -E "e1000|r8169|ath|iwl|rtl|bcm"
lsmod | grep -i r81
lsmod | grep r81
# 查看网卡详细信息(重点检查是否为 UNCLAIMED 状态)
sudo lshw -C network
3. 查看系统日志
# 查看内核日志中的网络/驱动相关信息
dmesg | grep -i -E "network|ethernet|wifi|firmware" | tail -30
journalctl -b | grep -i driver | tail -20
解决方案实施
方案一:Realtek RTL8125 有线网卡驱动安装
步骤 1:安装驱动包
# 使用预编译的 .deb 包安装
sudo dpkg -i realtek-r8125-dkms_9.016.01-1_amd64.deb
步骤 2:禁用冲突驱动(如果需要)
某些情况下,系统自带的 r8169 驱动可能与 r8125 冲突,需要禁用:
# 创建配置文件禁用 r8169
sudo nano /etc/modprobe.d/r8169-blacklist.conf
# 添加以下内容:blacklist r8169
步骤 3:更新 initramfs 并重启
sudo update-initramfs -u
sudo reboot
步骤 4:验证驱动加载
# 检查 r8125 模块是否加载
lsmod | grep r81
# 查看网卡状态(不应再显示 UNCLAIMED)
sudo lshw -C network
# 尝试获取 IP 地址
sudo dhclient enp4s0
# 查看网卡配置
ifconfig
方案二:MediaTek MT7921 无线网卡驱动安装
问题原因
Ubuntu 20.04 的内核版本 (5.4) 较旧,不包含 mt76 驱动和相关固件。
步骤 1:安装必要的内核模块
# 安装对应内核版本的模块包
sudo dpkg -i linux-modules-5.4.0-150-generic_5.4.0-150.167_amd64.deb
sudo dpkg -i linux-modules-extra-5.4.0-150-generic_5.4.0-150.167_amd64.deb
步骤 2:安装固件文件
# 将 MediaTek 固件复制到系统固件目录
sudo cp -r mediatek/ /lib/firmware/
# 更新 initramfs
sudo update-initramfs -u
步骤 3:加载驱动模块
# 测试模块是否可用
modprobe -nv mt76
# 重新生成模块依赖
sudo depmod -a
# 手动加载模块
sudo modprobe mt76
步骤 4:配置驱动参数(可选)
如果需要调整驱动参数,创建配置文件:
sudo nano /etc/modprobe.d/iwlwifi.conf
# 根据需要添加参数,例如:options iwlwifi 11n_disable=1
步骤 5:重启系统
sudo reboot
网络服务管理
重启网络服务
# 重启 NetworkManager
sudo systemctl restart NetworkManager
# 手动获取 DHCP 地址(有线网卡)
sudo dhclient enp4s0
测试网络连接
# 查看网络接口
ifconfig
# 测试网络连通性
ping www.baidu.com
ping 8.8.8.8
系统升级建议
如果长期使用,建议升级到更新的 Ubuntu 版本以获得更好的硬件支持:
# 检查系统版本
lsb_release -a
uname -a
# 配置升级策略
sudo nano /etc/update-manager/release-upgrades
# 更新系统包
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
# 执行发行版升级
sudo do-release-upgrade
# 清理不需要的包
sudo apt autoremove
关键命令总结
| 功能 | 命令 |
|---|---|
| 查看网卡硬件 | `lspci -nnk |
| 检查驱动加载 | `lsmod |
| 网卡详细信息 | sudo lshw -C network |
| 更新 initramfs | sudo update-initramfs -u |
| 重新生成模块依赖 | sudo depmod -a |
| 加载驱动模块 | sudo modprobe <模块名> |
| 获取 DHCP 地址 | sudo dhclient <网卡名> |
| 查看网络接口 | ifconfig 或 ip a |
注意事项
- 内核版本匹配:驱动模块必须与当前运行的内核版本匹配
- 固件文件:某些网卡需要额外的固件文件才能正常工作
- 驱动冲突:新旧驱动可能冲突,需要禁用旧驱动
- 备份重要数据:系统升级前务必备份重要文件
- 网络连接:安装驱动过程中可能需要使用其他网络连接方式(手机热点、USB 网卡等)
故障排查流程图
网卡不工作
↓
检查硬件识别 (lspci/lsusb)
↓
├─ 未识别 → 检查硬件连接
└─ 已识别 → 检查驱动状态 (lshw -C network)
↓
├─ UNCLAIMED → 安装驱动
└─ 已识别 → 检查网络配置
↓
├─ 无 IP → dhclient 获取地址
└─ 有 IP → 检查路由/DNS
参考资源
- Realtek 官方驱动:Realtek 下载中心
- MediaTek MT76 驱动:Linux Wireless Wiki
- Ubuntu 网络故障排查:Ubuntu Wiki - Network Troubleshooting
最终结果:通过安装正确的驱动包和固件,成功解决了有线和无线网卡的识别问题,系统网络功能恢复正常。

