资讯详情

Realtek网卡驱动重装全攻略:从硬件识别到DKMS配置

📅 2026/10/8 22:16:25 | 华诺云谱 👁 阅读
Realtek网卡驱动重装全攻略:从硬件识别到DKMS配置
1. 网络驱动重装这件事到底在解决什么问题网络驱动重装说白了就是给操作系统重新装一遍网卡驱动。听起来简单但实际操作过的人都知道这事儿踩坑的概率相当高。尤其是 Realtek 系列网卡从板载的 RTL8168/8111 到 USB 接口的 RTL8811CU、RTL8812BU几乎每一个型号都有自己的一套脾气。你可能遇到过这种情况系统装好了设备管理器里网络适配器那一栏空空如也或者显示一个带黄色感叹号的“以太网控制器”再或者 Wi-Fi 列表直接消失连个无线信号都搜不到。这些问题的根源十有八九都指向同一个方向——驱动没装对或者装错了版本。这篇文章面向的是所有需要处理网络驱动问题的朋友不管你是刚装完系统发现上不了网的普通用户还是需要在 Linux 环境下编译 DKMS 模块的运维人员又或者是拿着 RTL8812CU 无线网卡在 Windows 10 上折腾半天的技术爱好者。我会把 Realtek 网卡驱动重装的完整流程拆开来讲包括怎么确认硬件型号、怎么选驱动版本、Windows 和 Linux 两条路线分别怎么操作、DKMS 机制到底是怎么回事、auto_run.sh 脚本里藏了什么、以及那些装完驱动反而没声音或者设备管理器里找不到网卡的奇葩问题怎么排查。核心关键词会贯穿全文网络驱动、Realtek、r8168、DKMS、auto_run.sh。这些不是随便列出来的词它们代表了驱动重装过程中最关键的几个环节——硬件识别、驱动包选择、内核模块管理、自动化安装脚本。搞懂这几个东西之间的关系你基本上就能应对绝大多数网卡驱动问题了。我写这篇东西的思路是先讲清楚为什么驱动会出问题再讲怎么一步步解决最后把常见坑和排查方法整理出来。每个步骤都会说明为什么要这么做参数怎么选以及我实际踩过哪些坑。你照着做大概率能少走很多弯路。2. 先搞清楚你的网卡到底是什么型号2.1 硬件识别别急着下载驱动很多人一发现网卡不工作第一反应就是去搜“Realtek 网卡驱动下载”然后随便找一个装上。这种做法在十年前可能还行现在大概率会出问题。Realtek 的网卡芯片型号非常多光是常见的就有 RTL8168、RTL8111、RTL8125、RTL8811CU、RTL8812BU、RTL8821CE 等等每个型号对应的驱动都不一样。你给 RTL8168 装 RTL8111 的驱动运气好能凑合用运气不好直接蓝屏。所以第一步永远是确认硬件型号。Windows 下最简单的方法是打开设备管理器找到“网络适配器”或者“其他设备”里带黄色感叹号的条目右键属性切换到“详细信息”选项卡在“属性”下拉菜单里选择“硬件 ID”。你会看到类似PCI\VEN_10ECDEV_8168SUBSYS_...这样的字符串。其中VEN_10EC表示厂商是 RealtekDEV_8168就是具体型号。USB 网卡的话硬件 ID 格式是USB\VID_0BDAPID_C812VID_0BDA是 Realtek 的厂商 IDPID_C812对应具体芯片。Linux 下更方便一条命令就能搞定lspci -nn | grep -i ethernet # 或者查看 USB 设备 lsusb | grep -i realtek输出里会显示类似Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168]的信息。方括号里的10ec:8168就是厂商 ID 和设备 ID跟 Windows 硬件 ID 里的VEN_10ECDEV_8168是一一对应的。注意有些主板厂商会在设备 ID 上做文章比如同一颗 RTL8168 芯片不同主板厂商可能会写入不同的子系统 ID。这种情况下公版驱动可能识别不了需要用厂商定制版。不过大多数情况下Realtek 官方驱动都能覆盖。2.2 驱动版本选择不是越新越好确认了型号之后接下来就是选驱动版本。这里有一个常见的误区很多人觉得驱动越新越好直接去官网下最新版。但实际上Realtek 的驱动更新有时候会引入新的问题。比如某个版本的 r8168 驱动在特定内核上会导致网络间歇性断流或者某个 Windows 驱动版本会让网卡在休眠唤醒后无法识别。我的建议是优先使用主板厂商或者笔记本厂商提供的驱动版本其次是用 Realtek 官方发布的稳定版最后才考虑最新版。如果你是在 Linux 上发行版仓库里的驱动通常是经过测试的优先用仓库版本。只有在仓库版本太旧、不支持你的硬件时才考虑从 Realtek 官网下载源码编译。对于 r8168 这个驱动版本号格式通常是8.0xx.xx。你可以在 Realtek 官网的下载页面找到最新的 Linux 驱动包文件名类似r8168-8.052.00.tar.gz。下载之前先看一下更新日志确认这个版本修复了你遇到的问题或者至少没有引入新的已知问题。2.3 驱动包里的东西都是干什么的下载完 Realtek 的 Linux 驱动包解压之后你会看到一堆文件。以 r8168 为例目录结构大概是这样的r8168-8.052.00/ ├── src/ │ ├── r8168_n.c │ ├── r8168.h │ ├── Makefile │ └── ... ├── autorun.sh ├── Makefile ├── README └── ...src/目录里是驱动源码核心文件是r8168_n.c这是实际的网卡驱动实现。Makefile负责编译规则。autorun.sh是一个自动化安装脚本它会帮你完成编译、安装、加载模块这一整套流程。README里通常包含安装说明和已知问题列表。autorun.sh这个脚本值得单独说一下。它的作用是简化安装过程你只需要sudo ./autorun.sh它就会自动检测内核版本、编译模块、安装到/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek/目录下然后尝试加载模块。但问题是这个脚本在不同发行版上的表现差异很大。在 Ubuntu 上可能一次成功在 CentOS 上可能因为 SELinux 或者内核头文件路径问题直接报错。所以理解它背后做了什么比直接运行它更重要。3. Windows 环境下重装 Realtek 网卡驱动3.1 卸载旧驱动的正确姿势Windows 下重装驱动第一步不是装新的而是把旧的清理干净。很多人直接覆盖安装结果新旧驱动文件混在一起问题依旧。正确的做法是打开设备管理器找到你的 Realtek 网卡右键选择“卸载设备”。在弹出的对话框里如果有一个“删除此设备的驱动程序软件”的复选框一定要勾上。这一步会把驱动文件从系统里删掉而不只是解除绑定。卸载完成后重启电脑。重启的目的是让系统重新扫描硬件确保旧驱动完全卸载。重启后设备管理器里应该会看到一个带黄色感叹号的“以太网控制器”或者“网络控制器”这说明系统识别到了硬件但没有驱动。这时候再装新驱动才是真正的“重装”。如果你用的是 USB 无线网卡比如 RTL8811CU 或者 RTL8812CU卸载步骤类似。但要注意有些 USB 网卡在卸载驱动后重新插拔可能会被系统自动安装一个通用驱动。这时候你需要先在设备管理器里把通用驱动也卸载掉再装厂商驱动。实操心得Windows 10 和 Windows 11 有时候会自动从 Windows Update 下载驱动。如果你不想让它自动装可以在安装自己的驱动之前先断开网络连接或者临时禁用 Windows Update 的驱动更新功能。具体方法是右键“此电脑”-属性-高级系统设置-硬件-设备安装设置选择“否让我选择要执行的操作”然后勾选“从不安装来自 Windows 更新的驱动程序软件”。3.2 手动安装驱动的详细步骤驱动下载下来通常是一个压缩包或者 exe 安装程序。如果是 exe直接双击运行按照提示下一步就行。但 Realtek 的很多驱动包是 zip 格式里面包含 inf、sys、cat 等文件。这种就需要手动安装。手动安装的步骤是设备管理器 - 右键带感叹号的设备 - 更新驱动程序 - 浏览我的电脑以查找驱动程序 - 让我从计算机上的可用驱动程序列表中选取 - 从磁盘安装 - 浏览到驱动解压目录选择对应的 inf 文件。这时候系统会列出匹配的驱动型号选中正确的那个点击下一步等待安装完成。安装完成后设备管理器里的黄色感叹号应该消失网络适配器下面会出现你的网卡型号。如果还是有问题可以尝试重启一次。重启后打开命令提示符输入ipconfig /all看看能不能看到网卡的信息。如果能看到了说明驱动装好了。3.3 装完驱动没声音是什么情况这是一个非常典型的问题热搜词里也出现了“realtek驱动安装后无声音”和“realtek高清晰音频管理器”。很多人不知道Realtek 的网卡驱动和音频驱动是两套完全独立的东西但它们的安装程序有时候会互相干扰。尤其是当你下载了一个所谓的“Realtek 驱动合集”时里面可能同时包含网卡和声卡驱动安装过程中如果勾选了音频组件可能会覆盖掉原有的音频驱动导致声音输出设备消失。如果你遇到了装完网卡驱动后声音没了的情况先检查设备管理器里的“声音、视频和游戏控制器”下面有没有异常。如果 Realtek High Definition Audio 变成了“未安装”或者带感叹号那就需要重新安装音频驱动。去主板或者笔记本厂商官网下载对应的音频驱动重新安装一遍。注意不要用网卡驱动包里附带的音频驱动那个版本通常很旧兼容性差。还有一种情况是音频设备还在但输出设备列表里找不到扬声器或者耳机。这时候可以尝试右键任务栏的音量图标选择“声音设置”在“输出”部分看看有没有可选的设备。如果没有右键“开始”菜单打开“设备管理器”找到音频设备右键卸载然后点击菜单栏的“操作”-“扫描检测硬件改动”让系统重新识别。通常这样就能恢复。注意Realtek Audio Console 是 Windows 上的一个音频管理应用跟网卡驱动完全无关。如果你在装网卡驱动时不小心装了这个而且它导致音频异常可以直接在“应用和功能”里卸载它。卸载后音频设备通常会自动恢复。4. Linux 环境下用 DKMS 管理 r8168 驱动4.1 为什么 Linux 下需要 DKMSLinux 内核和驱动的关系跟 Windows 不太一样。Windows 的驱动是独立的内核升级一般不会影响驱动。但 Linux 的驱动很多是编译进内核或者作为内核模块存在的内核升级后原来编译的模块可能因为版本不匹配而无法加载。这就是 DKMS 存在的意义。DKMS 全称是 Dynamic Kernel Module Support动态内核模块支持。它的作用是在内核升级时自动重新编译并安装第三方模块。对于 r8168 这种不在主线内核里的驱动用 DKMS 管理可以省去每次内核升级后手动重新编译的麻烦。Realtek 官方驱动包里其实已经包含了 DKMS 的配置文件通常在src/dkms.conf或者根目录下的dkms.conf。但autorun.sh脚本默认不一定使用 DKMS它可能只是简单地编译安装。所以如果你想用 DKMS需要手动配置一下。4.2 手动配置 DKMS 的完整流程假设你已经下载并解压了 r8168 驱动包目录是r8168-8.052.00。首先确认系统已经安装了 DKMS 和内核头文件# Ubuntu/Debian sudo apt install dkms build-essential linux-headers-$(uname -r) # CentOS/RHEL sudo yum install dkms gcc make kernel-devel-$(uname -r)然后把驱动源码复制到 DKMS 的源码目录sudo cp -r r8168-8.052.00 /usr/src/r8168-8.052.00接下来创建或编辑dkms.conf文件。在/usr/src/r8168-8.052.00/目录下创建dkms.conf内容如下PACKAGE_NAMEr8168 PACKAGE_VERSION8.052.00 BUILT_MODULE_NAME[0]r8168 DEST_MODULE_LOCATION[0]/kernel/drivers/net/ethernet/realtek AUTOINSTALLyes MAKE[0]make -C src/ all CLEANmake -C src/ clean这里解释一下几个关键字段。PACKAGE_NAME和PACKAGE_VERSION是 DKMS 用来标识模块的版本号要跟目录名一致。BUILT_MODULE_NAME是编译出来的模块名r8168 驱动编译后就是r8168.ko。DEST_MODULE_LOCATION是模块安装的目标路径一般放在kernel/drivers/net/ethernet/realtek下面。MAKE[0]指定编译命令因为源码在src/子目录里所以需要-C src/。配置好之后执行以下命令添加并编译sudo dkms add -m r8168 -v 8.052.00 sudo dkms build -m r8168 -v 8.052.00 sudo dkms install -m r8168 -v 8.052.00如果一切顺利你会看到dkms status输出类似r8168/8.052.00, $(uname -r), x86_64: installed的信息。这说明模块已经编译并安装到当前内核了。4.3 处理 r8168 和 r8169 的冲突Linux 主线内核里其实已经包含了一个 Realtek 千兆网卡驱动叫 r8169。这个驱动是开源的支持大部分 RTL8168/8111 芯片。但它的稳定性和性能在某些场景下不如 Realtek 官方的 r8168 驱动。所以很多人会选择用 r8168 替换 r8169。问题在于r8169 是内核自带的系统启动时会自动加载它。如果你同时装了 r8168两个驱动会冲突导致网卡工作异常。解决办法是把 r8169 加入黑名单让它不要自动加载。创建或编辑/etc/modprobe.d/blacklist-r8169.conf加入以下内容blacklist r8169然后更新 initramfs# Ubuntu/Debian sudo update-initramfs -u # CentOS/RHEL sudo dracut -f重启后系统应该只会加载 r8168 驱动。你可以用lsmod | grep r816来确认当前加载的是哪个驱动。如果输出里有r8168而没有r8169说明配置成功。实操心得有些发行版的内核在启动时会强制加载 r8169即使你加了黑名单也没用。这种情况下可以在/etc/modprobe.d/里加一行install r8169 /bin/true这样系统就不会加载 r8169 了。但要注意这样做之后如果 r8168 编译失败你的网卡就彻底不工作了所以操作前最好确保有其他的网络连接方式或者本地终端。4.4 auto_run.sh 脚本到底做了什么回到autorun.sh这个脚本。它的逻辑其实不复杂大致流程是检查当前用户是不是 root检查内核头文件是否存在进入src/目录执行make然后把编译出来的r8168.ko复制到/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek/最后执行depmod -a和modprobe r8168。但它在不同发行版上的问题也很明显。比如在某些系统上make命令需要指定CC和LD变量否则会编译失败。还有些系统上depmod的路径不对导致模块加载不了。所以我的建议是不要盲目运行autorun.sh先打开它看一眼了解它每一步在做什么。如果编译失败根据报错信息手动修复比反复运行脚本有效得多。如果你确实想用autorun.sh可以先给它加执行权限chmod x autorun.sh sudo ./autorun.sh运行完之后用dmesg | tail -20看看内核日志里有没有 r8168 相关的加载信息。如果看到r8168: eth0: link up之类的输出说明驱动加载成功网卡已经工作了。5. 常见问题排查与避坑指南5.1 设备管理器里找不到网卡怎么办这是最让人头疼的情况之一。设备管理器里既没有网络适配器也没有带感叹号的未知设备。这说明系统根本没有识别到硬件。可能的原因有几个一是网卡在 BIOS 里被禁用了二是硬件本身故障三是主板插槽问题。先检查 BIOS。重启电脑进入 BIOS 设置找到“Onboard LAN”或者“Integrated NIC”之类的选项确认它是 Enabled 状态。有些主板在更新 BIOS 后会自动禁用板载网卡这个坑我踩过不止一次。如果 BIOS 里是启用的但系统还是识别不到可以尝试把网卡插到另一个 PCIe 插槽如果是独立网卡或者换一个 USB 接口如果是 USB 网卡。有时候是插槽或者接口的问题。还有一种情况是网卡在设备管理器里显示为“未知设备”但硬件 ID 是PCI\VEN_10ECDEV_8168。这说明系统识别到了硬件但没有匹配的驱动。这时候手动安装驱动就能解决。5.2 驱动装了但网卡不工作驱动装好了设备管理器里也显示正常但就是上不了网。这种情况通常是配置问题不是驱动问题。先检查 IP 地址是不是自动获取的如果是静态 IP确认网关和 DNS 设置正确。然后检查网线是不是插好了交换机或者路由器那一端是不是正常工作。在 Linux 下可以用ip link查看网卡状态。如果显示state DOWN说明网卡没有启用用ip link set eth0 up启用它。如果显示state UP但没有 IP 地址可以用dhclient eth0获取 IP。如果这些都没问题但还是上不了网可以看看dmesg里有没有网卡相关的错误信息。常见问题速查表现象可能原因排查方法设备管理器无网卡BIOS 禁用或硬件故障检查 BIOS 设置更换插槽黄色感叹号驱动未安装或版本不对查看硬件 ID下载对应驱动驱动装完无声音音频驱动被覆盖重装音频驱动卸载 Realtek Audio ConsoleLinux 下网卡不工作r8169 冲突或模块未加载黑名单 r8169检查 lsmodDKMS 编译失败内核头文件缺失安装 linux-headers-$(uname -r)auto_run.sh 报错权限或路径问题手动执行编译步骤检查报错信息5.3 Realtek 无线网卡的特殊问题RTL8811CU、RTL8812BU 这类 USB 无线网卡在 Linux 下的驱动支持一直是个痛点。主线内核里没有这些芯片的驱动需要从 GitHub 上的第三方仓库编译安装。常见的仓库有rtl8812au、rtl8821cu等。这些仓库的驱动质量参差不齐有些版本在特定内核上会编译失败有些版本会导致系统休眠后无法唤醒。我的经验是优先找 star 数多、最近有更新的仓库。编译之前先看 issues 里有没有人遇到跟你一样的问题。如果编译失败通常是内核 API 变了需要打补丁。补丁一般在 issues 或者 pull requests 里能找到。在 Windows 下RTL8812CU 的驱动问题主要是版本匹配。热搜词里出现了realtek 8812cu usb wifi driver windows 10 64bit vid_0bda pid_c812 netrtw这说明很多人在找这个特定 VID/PID 的驱动。VID_0BDA和PID_C812是硬件 IDnetrtw是驱动文件名。如果你在设备管理器里看到这个硬件 ID直接去 Realtek 官网或者主板厂商官网下载对应的 Windows 10 64 位驱动就行。注意要选对版本32 位和 64 位不能混用。5.4 驱动重装后的验证步骤驱动装完之后别急着关掉设备管理器。先做几个验证一是看设备管理器里网卡型号是否正确显示没有黄色感叹号二是打开命令提示符ping一下网关看能不能通三是用ipconfig /all或者ip addr确认 IP 地址、子网掩码、网关、DNS 都正确。在 Linux 下还可以用ethtool eth0查看网卡的速度和双工模式。如果显示Speed: 1000Mb/s说明千兆连接正常。如果显示Speed: 100Mb/s或者10Mb/s可能是网线或者交换机的问题。最后重启一次系统确认驱动在重启后依然正常工作。有些驱动在安装后能工作但重启后就失效了这通常是 DKMS 配置或者模块加载顺序的问题。重启后如果网卡不工作了检查dkms status和lsmod看看模块有没有正确加载。6. 一些零散但重要的经验Realtek 网卡驱动的重装说到底是一个“识别硬件、选对驱动、正确安装、验证结果”的流程。每一步都有坑但每一步也都有对应的解决方法。我自己的习惯是在重装驱动之前先用手机拍下设备管理器里的硬件 ID或者用lspci把信息保存到文本文件里。这样即使驱动装失败导致网络断了也能用手机查资料。另外如果你是在给别人的电脑重装驱动最好提前准备好一个 USB 网卡或者手机 USB 共享网络。因为一旦板载网卡驱动卸载了而新驱动又装不上你就彻底断网了。这时候如果没有备用网络连驱动都下载不了只能干瞪眼。对于 Linux 用户我强烈建议用 DKMS 管理 r8168 驱动。虽然配置稍微麻烦一点但后续内核升级时省心很多。autorun.sh脚本可以用但不要完全依赖它。理解它背后的编译和安装流程遇到问题时才能自己解决。最后说一个细节Realtek 驱动包里的README文件其实写得挺详细的包含了支持的硬件列表、编译选项、已知问题。很多人下载完驱动直接就看autorun.sh忽略了README。我建议花十分钟读一遍里面很多信息能帮你避免不必要的折腾。尤其是当你遇到编译错误时README里的 troubleshooting 部分往往能直接给出答案。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑