温馨提示×

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.confmanaged=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 模块

四、常见场景与对策

  • 重启后无法联网
    • 检查 NetworkManagerNetplan 是否生效;必要时 sudo systemctl restart NetworkManagersudo 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.confsystemd-resolved 状态
  • 虚拟机无网络
    • 确认 NAT/桥接 模式与适配器已连接;重启网络管理服务或应用 Netplan 配置
  • 有线接口完全不显示
    • 检查 BIOS 中网卡是否被禁用;确认网线与路由器端口正常
    • lshw -C network 确认硬件与驱动状态,必要时加载对应模块或安装厂商驱动

五、无法在线安装驱动时的离线方案

  • 使用手机 USB 共享网络 为电脑提供临时网络
  • 在有网络的电脑下载所需 .deb 包及其依赖,拷贝到目标机器离线安装
  • 离线安装常用命令:sudo dpkg -i 包名.deb;若有依赖错误,补齐依赖后再安装
  • 准备好对应驱动源码与构建工具(如 build-essential、dkms、linux-headers-$(uname -r)),按第三部分步骤离线编译安装

0