ubuntu驱动如何解决网络问题
小樊
58
2026-01-08 14:50:20
Ubuntu 驱动导致的网络问题排查与修复
一、快速定位问题
- 确认网卡是否被识别与驱动状态:
- 查看设备与驱动:lspci -knn | grep -i net -A3
- 查看接口与状态:ip a;若看到 169.254.x.x 多为 DHCP 未拿到地址
- 查看日志与加载模块:dmesg | grep -i -E “eth|enp|wlan|iwlwifi|rtl|r8169”,lsmod | grep -i r8169
- 判断管理栈与配置方式:
- 查看网络设备是否被管理:nmcli d
- 存在 /etc/netplan/*.yaml 多为 Netplan;否则多为 NetworkManager 或 ifupdown
- 有线/无线分别确认:
- 有线:检查网线、路由器端口,接口是否为 UP 且有 IPv4 地址
- 无线:确认无线开关/硬件开关,是否显示 wlp* 接口
二、通用修复流程
- 基础连通与配置修复
- 重启网络服务:
- NetworkManager:sudo systemctl restart NetworkManager
- Netplan:sudo netplan apply
- 获取地址与网关:
- DHCP:sudo dhclient <接口名>(如 enp3s0)
- 查看路由:ip route;必要时添加默认网关:sudo ip route add default via <网关IP> dev <接口名>
- DNS 解析:
- 临时写入 DNS:echo “nameserver 8.8.8.8” | sudo tee /etc/resolv.conf
- 永久(Netplan):在 /etc/netplan/*.yaml 的对应接口下添加
- nameservers: { addresses: [8.8.8.8, 1.1.1.1] } 后执行 sudo netplan apply
- 永久(NetworkManager):nmcli con mod <连接名> ipv4.dns “8.8.8.8 1.1.1.1” && nmcli con down <连接名> && nmcli con up <连接名>
- 驱动与固件层面
- 更新内核与固件:sudo apt update && sudo apt install linux-generic linux-firmware linux-modules-extra-$(uname -r)
- 设备被禁用时启用:sudo ip link set <接口名> up
- 若设备处于 unmanaged 状态,检查 /etc/NetworkManager/NetworkManager.conf 中 managed=false 并改为 true(或注释)后重启 NetworkManager
- 虚拟机场景
- 确认虚拟网卡模式为 NAT/桥接 并已连接,重启 NetworkManager 或 Netplan 应用配置
三、按芯片厂商安装或修复驱动
- Intel 无线(iwlwifi)
- 安装固件与模块:sudo apt install firmware-iwlwifi
- 重新加载:sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
- 老型号可能需要下载对应 firmware 至 /lib/firmware 后重启
- Broadcom 无线(wl)
- 安装闭源驱动:sudo apt install bcmwl-kernel-source
- 重新加载模块:sudo modprobe -r wl && sudo modprobe wl
- Realtek 有线(常见 RTL8125/RTL8812/RTL8852 等)
- 优先升级内核/固件;若仍不匹配,使用 DKMS 安装官方驱动:
- 准备驱动源码后解压至 /usr/src/<驱动名>-<版本>/
- 创建 dkms.conf(示例)
- PACKAGE_NAME=Realtek_r8125
- PACKAGE_VERSION=9.009.02
- DEST_MODULE_LOCATION=/updates/dkms
- BUILT_MODULE_NAME=r8125
- MAKE=“‘make’ -C src/ all”
- CLEAN=“‘make’ -C src/ clean”
- AUTOINSTALL=“yes”
- 安装与加载:
- sudo apt install dkms
- sudo dkms add -m r8125 -v 9.009.02
- sudo dkms build -m r8125 -v 9.009.02
- sudo dkms install -m r8125 -v 9.009.02
- sudo depmod -a && sudo modprobe r8125
- 若之前错误加载了 r8169 导致不匹配,先卸载再加载正确驱动(谨慎操作,避免误删系统模块)
- 其他 Realtek 无线(如 RTL8812AU/8821AU 等)
- 使用社区 DKMS 驱动:
- sudo apt install git dkms
- git clone <对应型号仓库> && cd <驱动目录>
- sudo dkms add . && sudo dkms install rtl8812au/1.0.0(版本按仓库说明)
- sudo modprobe rtl8812au
- 安全启动(Secure Boot)
- 部分驱动需签名,若加载失败可临时关闭 Secure Boot,或使用已签名的 DKMS 模块
四、常见场景与对策
- 重启后无法联网
- 检查 NetworkManager 或 Netplan 是否生效;必要时 sudo systemctl restart NetworkManager 或 sudo netplan apply
- 接口无 IP:执行 sudo dhclient <接口名>;检查默认网关 ip route
- 设备 unmanaged:修正 /etc/NetworkManager/NetworkManager.conf 并重启服务
- 显示已连接但无法上网
- 区分连通性与 DNS:先 ping 8.8.8.8,再 ping www.google.com
- 修正 DNS(见第二部分),或检查 /etc/resolv.conf 与 systemd-resolved 状态
- 虚拟机无网络
- 确认 NAT/桥接 模式与适配器已连接;重启网络管理服务或应用 Netplan 配置
- 有线接口完全不显示
- 检查 BIOS 中网卡是否被禁用;确认网线与路由器端口正常
- 用 lshw -C network 确认硬件与驱动状态,必要时加载对应模块或安装厂商驱动
五、无法在线安装驱动时的离线方案
- 使用手机 USB 共享网络 为电脑提供临时网络
- 在有网络的电脑下载所需 .deb 包及其依赖,拷贝到目标机器离线安装
- 离线安装常用命令:sudo dpkg -i 包名.deb;若有依赖错误,补齐依赖后再安装
- 准备好对应驱动源码与构建工具(如 build-essential、dkms、linux-headers-$(uname -r)),按第三部分步骤离线编译安装