Ubuntu18.04有线网络驱动安装与故障排查指南
1. Ubuntu18.04有线网络连接问题概述刚装好Ubuntu18.04系统插上网线却发现连不上网这种情况我遇到过太多次了。作为从Ubuntu16.04一路用过来的老用户每次新装系统最头疼的就是有线网络驱动问题。特别是Realtek的网卡Ubuntu自带的r8169驱动经常会出现兼容性问题。有线网络连接不上的表现通常有两种一种是根本识别不到网线插入网络管理器里看不到有线连接选项另一种是显示已连接但实际无法上网。这两种情况我都遇到过最夸张的一次是新买的台式机装完系统死活连不上网最后发现是网卡太新系统自带的驱动不支持。遇到这种问题先别急着重装系统90%的情况都是驱动问题。下面我会分享几种解决方案从最快速的临时方案到彻底解决问题的完整方法都是我这几年实战总结出来的经验。2. 快速临时解决方案2.1 使用手机USB网络共享当你急需用网但又搞不定有线驱动时手机USB网络共享是最快的解决方案。这个方法我推荐给所有Linux新手特别是刚装完系统还没配置好环境的时候。具体操作很简单用USB数据线连接手机和电脑在手机设置里搜索USB网络共享不同品牌手机位置可能略有不同开启该功能后Ubuntu右上角会立即出现有线连接图标我测试过小米、华为、OPPO等主流安卓手机这个方法都适用。不过要注意两点一是需要手机本身有网络移动数据或WiFi二是长期使用可能会影响手机电池寿命。所以这只能作为临时方案建议联网后立即处理真正的驱动问题。2.2 使用无线网卡临时替代如果你手头有USB无线网卡也可以先用WiFi联网。Ubuntu18.04对大多数常见无线网卡的支持都不错特别是那些标有Linux兼容的型号。我常备一个几十块的TP-Link无线网卡专门用来应对这种有线网卡驱动问题。3. 排查有线网络驱动问题3.1 检查当前使用的网卡驱动要彻底解决问题首先得确认是不是驱动的问题。打开终端输入lspci -v | grep -i ethernet -A 10这个命令会列出你的以太网卡信息。关键要看Kernel driver in use这一行。如果是r8169那很可能就是驱动不兼容的问题。Realtek的RTL8168/8111系列网卡在Ubuntu18.04上经常会出现这种情况。我遇到过好几次新电脑装完Ubuntu后网卡被识别为r8169驱动但实际上需要r8168驱动才能正常工作。这种情况在台式机上特别常见笔记本相对少一些。3.2 确认网卡具体型号要进一步确认网卡型号可以运行lspci -nn | grep -i ethernet输出结果中括号里的数字就是设备ID。比如我的台式机显示的是10ec:8168这表示是Realtek的RTL8168网卡。记下这个ID后面下载驱动时会用到。4. 安装正确的有线网卡驱动4.1 下载官方驱动确认是r8169驱动的问题后我们需要安装r8168驱动。Realtek官网提供了Linux版驱动下载但找起来有点麻烦。我整理了几个可靠的下载源Realtek官网直接下载可能需要科学上网 https://www.realtek.com/zh/directly-download?downloadiddf4b906c6e32848ec97b3332972e9b76国内镜像源如果官网打不开 https://mirrors.edge.kernel.org/pub/linux/kernel/people/gregkh/staging/latest/drivers/net/ethernet/realtek/下载的文件通常是tar.bz2格式的压缩包比如r8168-8.049.02.tar.bz2。建议下载到~/Downloads目录方便后续操作。4.2 安装编译依赖在安装驱动前我们需要确保系统有必要的编译工具sudo apt update sudo apt install build-essential linux-headers-$(uname -r)这一步很多人会忽略结果后面编译驱动时报错。特别是linux-headers必须和当前运行的内核版本一致。我刚开始用Linux时就踩过这个坑折腾了半天才发现是没装headers。4.3 编译安装驱动解压并安装驱动tar jxvf r8168-8.049.02.tar.bz2 cd r8168-8.049.02 sudo chmod x autorun.sh sudo ./autorun.sh安装过程大概需要1-2分钟。完成后建议重启系统sudo reboot重启后再次检查驱动lspci -v | grep -i ethernet -A 10现在应该能看到Kernel driver in use: r8168了。如果还是r8169可能需要手动禁用旧驱动echo blacklist r8169 | sudo tee /etc/modprobe.d/blacklist-r8169.conf sudo update-initramfs -u sudo reboot5. 常见问题排查5.1 安装过程中出现错误如果在运行autorun.sh时报错说找不到make或gcc说明前面安装build-essential那步没成功。这时候如果你已经断网了就比较麻烦可以考虑用手机共享网络先把依赖包装好。我遇到过最棘手的情况是新装的系统连build-essential都装不上最后是用另一台电脑下载了所有deb包用U盘拷过来手动安装的。具体步骤在有网的电脑上下载所需deb包apt-get download build-essential linux-headers-$(uname -r) make gcc把下载的deb包拷贝到目标电脑安装所有deb包sudo dpkg -i *.deb5.2 驱动安装成功但还是无法上网如果驱动已经显示是r8168了但还是上不了网可能是网络配置问题。可以尝试检查网线是否插好重启网络服务sudo service network-manager restart查看网络接口状态ip a看看对应的网卡接口通常是enpXsYX和Y是数字是否有分配到IP地址尝试手动获取IPsudo dhclient enpXsY如果还是不行可能是路由器或ISP的问题。我建议先用手机热点测试确认是电脑问题还是网络环境问题。6. 长期解决方案建议6.1 更新系统内核Ubuntu18.04默认的内核版本对新型硬件的支持有限。可以考虑升级到更新的HWE内核sudo apt install --install-recommends linux-generic-hwe-18.04新内核通常包含更新的硬件驱动可能直接解决网卡驱动问题。我的笔记本升级到5.4内核后之前的有线网卡问题就自动解决了。6.2 创建驱动恢复脚本如果你经常重装系统可以提前准备好驱动安装脚本。具体步骤把下载的驱动包放在/home目录下创建安装脚本install_r8168.sh#!/bin/bash tar jxvf ~/r8168-8.049.02.tar.bz2 -C ~/ cd ~/r8168-8.049.02 sudo ./autorun.sh echo blacklist r8169 | sudo tee /etc/modprobe.d/blacklist-r8169.conf sudo update-initramfs -u给脚本执行权限chmod x install_r8168.sh这样下次重装系统后直接运行这个脚本就能快速安装驱动了。我现在的做法是把驱动包和脚本都放在一个U盘里随时备用。6.3 考虑更换兼容性更好的网卡如果你经常遇到驱动问题特别是自己组装台式机的情况可以考虑换一个Linux兼容性更好的网卡。Intel的网卡在Linux下的支持通常都很好价格也不贵。我自己后来就换了个Intel I219-V网卡再也没遇到过驱动问题。