GoodbyeDPI WinDivert 驱动加载失败:完整 5 分钟分步排查与修复指南
【免费下载链接】GoodbyeDPIGoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)项目地址: https://gitcode.com/GitHub_Trending/go/GoodbyeDPI
双击启动器,黑窗口一闪而过,或者日志停在Error opening filter: ...这一行——十有八九是 WinDivert 驱动没有加载成功。GoodbyeDPI 依赖这个驱动完成数据包捕获与改写,驱动起不来,整个程序就没法工作。别慌:先读出错误码,再按本文的路径走,大多数情况 5 分钟内就能恢复。
驱动初始化逻辑在 src/goodbyedpi.c#L310 的init函数里:WinDivertOpen失败后,程序会用GetLastError()取出错误码并打印对应提示。所以排查的第一步永远是读Error opening filter:后面的那个数字——不同数字指向不同的修复路径。
先读错误码:症状速查表
| 错误码 | 程序提示(节选) | 最可能原因 | 跳转小节 |
|---|---|---|---|
| 2 | WinDivert32.sys or WinDivert64.sys not found | 驱动文件缺失 | 第 1 节 |
| 654 | incompatible version of the WinDivert driver is currently loaded | 旧版驱动残留 | 第 2 节 |
| 5 | Access is denied | 未以管理员身份运行 | 第 3 节 |
| 1275 | blocked by security software / virtualization | 安全软件拦截、虚拟化环境 | 第 3 节 |
| 577 | invalid digital signature | 签名验证未通过 | 第 4 节 |
| 1753 | Base Filtering Engine service has been disabled | BFE 系统服务被停 | 第 5 节 |
💡 如果窗口一闪就关看不到输出,请在管理员命令行里手动运行
goodbyedpi.exe,错误码会直接打在终端里。
驱动文件缺失(错误码 2)
首次安装翻车,最常见的原因就是这个:程序目录里根本没有驱动文件。
如何确认是文件缺失
两个依据,缺一不可:
- 日志中出现提示
The driver files WinDivert32.sys or WinDivert64.sys were not found. - 在程序所在目录执行
dir WinDivert*.sys,列不出任何匹配文件。
修复步骤
- 从 WinDivert 官方发布渠道获取与 GoodbyeDPI 匹配的版本(当前主流为 v1.4)。
- 把
WinDivert32.sys和WinDivert64.sys拷入goodbyedpi.exe所在目录。 - 重新启动程序。
验证:终端不再出现 not found 提示,程序正常进入抓包循环。
旧版驱动版本冲突(错误码 654)
系统里残留着一份半死不活的旧版 WinDivert 驱动时,新驱动无法接管,就会报 654。
如何确认是版本冲突
日志提示很直白:An incompatible version of the WinDivert driver is currently loaded.——这说明同名驱动以旧版本被系统加载着。
彻底卸载旧版驱动
以管理员身份在命令行执行(这正是程序自带的提示给出的命令):
sc stop windivert & rem 停止旧版驱动服务 sc delete windivert & rem 删除旧版服务项 sc stop windivert14 & rem 停止 v1.4 残留服务 sc delete windivert14 & rem 删除 v1.4 残留服务项如果注册表HKLM\SYSTEM\CurrentControlSet\Services下还有WinDivert相关键,手动删掉,然后重启再试。
验证:再次运行,错误码不再是 654。
拒绝访问或被安全软件拦截(错误码 5 / 1275)
如何确认是权限或拦截问题
- 码 5 且提示
Access is denied:你八成没有用管理员身份运行。 - 码 1275:提示会明确说是被安全软件拦截,或所处虚拟化环境不支持加载驱动。
修复步骤
码 5:右键启动器选"以管理员身份运行",或在快捷方式属性里把"始终使用提升权限级别运行"勾上。
码 1275:在安全软件的排除项中加入 GoodbyeDPI 安装目录和goodbyedpi.exe(Windows Defender:病毒和威胁防护 → 管理设置 → 排除项)。
⚠️ 排除范围只圈定 GoodbyeDPI 的安装目录,不要整个盘符放行,也不要顺手永久关闭实时防护。
验证:错误码消失,程序能正常打开捕获过滤器。
驱动签名验证失败(错误码 577)
这个错误意味着系统因签名校验不过而拒绝加载驱动,多发于老版本系统。
如何确认
提示里带有invalid digital signature字样;也可以用签名工具人工核验驱动文件:
signtool verify /v WinDivert64.sys & rem 查看驱动签名校验信息按系统版本修复
- Windows 7:先安装 KB3033929 更新(补上 SHA-256 签名支持)再运行。
- Windows Server 2016:需要在 BIOS 中关闭安全启动。
- 其他 Win10/11:可临时开启测试签名
bcdedit /set testsigning on后重启,桌面右下角会出现"测试模式"水印。
⚠️ 测试签名模式会降低系统安全等级,只建议临时排障使用,用完记得
bcdedit /set testsigning off关闭。
验证:驱动加载成功,577 不再出现。
特殊环境:虚拟机、企业策略与 BFE 服务
- 虚拟化:Hyper-V 虚拟机给网卡勾选"启用 MAC 地址欺骗";VirtualBox 可把虚拟网卡混杂模式设为"全部允许"。若宿主机本身不支持驱动,只能在物理机上运行。
- 企业域机器:组策略若启用了驱动签名强制或白名单,需联系管理员将 WinDivert 加入批准列表,本机无法绕过。
- 错误码 1753:说明"Base Filtering Engine"服务(BFE)被手动停了,打开
services.msc将其设为自动并启动即可。
一键修复:可直接整段复制的管理员命令链
@echo off :: 1. 检查驱动文件是否已就位 if not exist WinDivert64.sys (echo 请先将 WinDivert*.sys 放入本目录 & exit /b 1) :: 2. 清理旧版驱动服务(对应第 2 节的四条命令) sc stop windivert >nul 2>&1 sc delete windivert >nul 2>&1 sc stop windivert14 >nul 2>&1 sc delete windivert14 >nul 2>&1 :: 3. 确保 BFE 服务在运行 sc query BFE | find "RUNNING" >nul || sc start BFE :: 4. 启动 GoodbyeDPI start "" goodbyedpi.exe存成fix.bat,以管理员身份运行即可。
⚠️ 安全提示:
WinDivert*.sys必须来自 WinDivert 官方发布,不要拿来路不明的第三方压缩包里的 sys 文件——那等于给系统装了一个不受控的内核驱动。
一次实战复盘:办公电脑上走了三步
我帮同事在一台 Win10 办公电脑上恢复 GoodbyeDPI,先后踩了三个坑:第一遍报错 2,放好驱动文件;第二遍变 654,清掉 windivert14 残留;第三遍变 1275,排查发现是公司终端安全软件拦截了驱动加载,加完排除项才跑通。前后不到 10 分钟。经验是:按 2 → 654 → 1275 的顺序修,基本不用回头。
排查决策树与预防措施
| 错误码 | 一句话修复 | 确认修好的信号 |
|---|---|---|
| 2 | 放入 WinDivert*.sys | 日志不再提示 not found |
| 654 | sc 停删 windivert / windivert14 | 654 不再出现 |
| 5 | 管理员身份运行 | 捕获过滤器正常打开 |
| 1275 | 安全软件加排除项 | 1275 不再出现 |
| 577 | KB3033929 / 关安全启动 / 测试签名 | 驱动加载成功 |
| 1753 | 启动 BFE 服务 | 无 BFE 相关提示 |
预防措施:
- 升级 GoodbyeDPI 后,核对 WinDivert 版本是否同步、驱动文件是否在程序目录。
- 动手改系统配置前先建一个还原点,出错可回滚。
- 部署后定期看一眼程序日志,出现
Error opening filter立即处理,别等用户投诉。
版本与补丁请前往项目官方仓库渠道获取最新版。下期预告:《GoodbyeDPI 配置指南:基于 SNI 的动态分流策略》,有相关痛点可以先留言。
【免费下载链接】GoodbyeDPIGoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)项目地址: https://gitcode.com/GitHub_Trending/go/GoodbyeDPI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考