IPXWrapper 完整指南:4 个 DLL 加 1 条注册表,在 Win11 上恢复老游戏局域网联机
2026/8/24 16:30:08 网站建设 项目流程

IPXWrapper 完整指南:4 个 DLL 加 1 条注册表,在 Win11 上恢复老游戏局域网联机

【免费下载链接】ipxwrapper项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper

《红色警戒2》或《魔兽争霸2》在 Win10/11 上进入多人游戏后,房间列表空空如也——从 Vista 开始,Windows 彻底移除了 IPX/SPX 协议,老游戏写死的 IPX 调用在新系统上没有对应实现。IPXWrapper 是开源的协议兼容层:把 4 个 DLL 放进游戏目录、导入一条注册表,它就把游戏发出的 IPX 请求封装成 UDP 包传输,让你在 Win11 上重新搜到主机、完成联机。

部署前 2 分钟:4 个 DLL 各自拦截什么

IPXWrapper 的四个文件构成一条拦截链。游戏调用的 WinSock 1.x 接口先被wsock32.dllmswsock.dll这两个"替身"截住,转发给真正干活的核心ipxwrapper.dll;走旧版 DirectPlay 接口的游戏(DirectPlay 8 之前)则由dpwsockx.dll把服务注册指向我们的实现。内部机制一句话概括:IPX 报文被套进 UDP 数据包,经局域网广播或单播送到对方机器,对方拆包还原后交还给游戏进程——全程对游戏透明,双方都不需要改任何代码。

对你来说,这决定了两件事:DLL 必须和游戏 exe 放在同一目录,Windows 才会优先加载游戏目录下的文件;而这是端到端方案,只装一台机器无效,所有联机方的电脑都要装。

三步完成安装:复制 DLL、核对位数、导入注册表

第一步:拿到四个 DLL。下载发布版压缩包,或自行编译源码(需要 win-builds.org 的 MinGW 工具链、GNU Make、NASM、Perl 和 WinPcap 头文件;Linux 下交叉编译时设置HOST=i686-w64-mingw32)。也可以从仓库获取源码:

git clone https://gitcode.com/gh_mirrors/ip/ipxwrapper

编译完成后得到wsock32.dllmswsock.dlldpwsockx.dllipxwrapper.dll四个文件。

第二步:确认系统位数。打开"设置 → 系统 → 关于",查看"系统类型"。

第三步:导入对应注册表文件。64 位系统双击导入仓库根目录的directplay-win64.reg,32 位系统导入directplay-win32.reg。这条注册表登记了 DirectPlay 服务提供者——纯 WinSock 游戏没有它也能跑,但 DirectPlay 游戏缺了它,服务枚举会直接失败。

三个容易踩的坑:

  • 不要把 DLL 放进系统目录。放进系统目录既可能被安全软件拦截,也会让其他程序加载到这些替身。
  • 如果安全软件把某个 DLL 隔离了,游戏会直接启动失败。重新复制四个文件,并把游戏目录加入信任白名单。
  • 局域网内每一台参与联机的电脑都要重复以上三步,包括对方机器的注册表导入。

完成安装后,同一局域网内互相搜索主机应该已经可见。走 UDP 广播的默认模式支持 SPX,覆盖绝大多数场景,不需要任何额外设置。

按联机场景选模式:默认广播、DOSBox 服务器、真实 IPX

📡 三种模式一次选对。选错模式是"搜不到主机"最常见的原因之一,对照下表决定:

场景模式如何启用限制
同一局域网对战默认 UDP 广播安装即生效,无需配置无法穿越 NAT
异地互联网联机,或与 DOSBox 里的 DOS 游戏互通DOSBox UDP 封装ipxconfig 中选择该模式,填写服务器地址与端口不支持 SPX
对端是只认真实 IPX 帧的老设备真实 IPX 封装安装 WinPcap 后在 ipxconfig 中选择该模式并指定网卡不支持 SPX

结论明确:能走默认模式就不要折腾。涉及 SPX 面向连接通信的游戏(例如暗黑破坏神)只能用默认模式。

多网卡机器额外做一步:指定主接口。默认情况下 IPXWrapper 工作在系统所有网卡上,如果你同时连着多个网络,广播会发到错误的网段。用 ipxconfig 图形工具把"主接口"设为你要联机的网卡,并在系统设置中禁用其他网卡;部分游戏还要求在它自己的设置里同样选中该网卡。

用 ipxwrapper.ini 接管配置,用 debug 日志定位问题

🔍 想让配置跟着游戏目录走、便于多台机器复制,就在游戏 exe 旁边放一份名为ipxwrapper.ini的文件——只要它存在,ipxconfig.exe 写入注册表的全部设置都会被忽略。仓库根目录的ipxwrapper.ini.example给出了完整模板,所有选项默认注释,按需取消注释。最小可用示例:

; 走 DOSBox 服务器时填写这两行 ; dosbox server address = 服务器地址 ; dosbox server port = 213 ; 高频小包导致丢包时开启(要求所有玩家均为 0.7.1 及以上版本) ; coalesce packets = yes ; 启动时自动创建 Windows 防火墙例外 ; firewall exception = yes ; 日常运行设为 none,排查问题时设为 debug ; logging = none

关于logging:联机测试阶段把它设为debug,游戏目录下会生成日志,定位"搜不到主机"这类问题效率很高;注意 debug 级别会拖慢大多数游戏的运行速度,确认联机稳定后改回none

装好之后如果出问题,按下表自查,从上到下依次排除:

现象可能原因处理
游戏无法启动某个 DLL 缺失或被安全软件隔离重新复制全部四个 DLL,把游戏目录加入白名单
能看到房间但进不去Windows 防火墙拦截入站广播在 ini 中开启firewall exception = yes,或手动放行 UDP 端口
对战中途卡顿、掉线游戏高频发送小包导致丢包所有玩家统一开启coalesce packets = yes(0.7.1 起支持)
多网卡机器搜不到主机广播发到了错误的网段指定主接口(primary interface),禁用多余网卡
跨 NAT / 异地连不上默认广播无法穿越 NAT改用 DOSBox 服务器模式

验证工具与配套资源

  • 命令行验证工具:tools/目录下提供了ipx-send(构造并发送 IPX 报文)、ipx-recv(接收)、ipx-echo(回显测试)、list-interfaces(列出本机网卡)、dptool(测试 DirectPlay 服务)等程序,比反复开关游戏来验证收发状态高效得多。
  • 自动化测试:tests/是完整的测试套件,需要一台 Linux 加一台 Windows(DirectPlay 测试还需再加两台 Windows),用两条固定 IPv4 的以太网互联,配置方法见readme.dev.txt
  • 兼容性名单:readme.txt 的 Compatibility 一节列出了已验证可用的二十余款游戏,包括红警2、暗黑破坏神、星际争霸1 时代的作品如魔兽争霸2、英雄无敌3、全歼(Total Annihilation)、车神(Carmageddon)、主题医院等。
  • 版本演进:changes.txt记录了每次变更——0.7.0 加入 DOSBox 服务器支持,0.7.1 加入数据包合并(packet coalescing)与ipxwrapper.ini按目录加载配置。

📋 部署核对清单

按顺序逐项打勾,全部完成后即可开始联机:

  • 四个 DLL(wsock32.dllmswsock.dlldpwsockx.dllipxwrapper.dll)已复制到游戏 exe 所在目录
  • 已按系统位数导入directplay-win64.regdirectplay-win32.reg
  • 局域网内所有联机方的电脑均完成以上两步
  • 联机场景已对照模式表选定,多网卡机器已指定主接口并禁用多余网卡
  • 如需异地或 DOSBox 互通,已在 ipxconfig 或 ini 中填写服务器地址与端口
  • 联机测试时logging = debug已开启并生成日志,确认稳定后改回none
  • 出现异常时已按排错表逐项排查,并用tools/下的工具验证收发

【免费下载链接】ipxwrapper项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询