
🔥承渊政道: 个人主页
❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》 《cpolar知识学习》
✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介:

异地和朋友联机时,很多人第一反应是找公网 IP、研究路由器端口映射.对支持直接输入服务器地址的游戏来说,事情可以简单一些:让房主和玩家电脑加入同一张星空组网网络,再由玩家输入房主的虚拟IP.本文用OpenTTD做一次两台电脑的实际连接.它免费、Windows 和 macOS 都能运行,客户端有"启动服务器"和"添加服务器"两个明确入口,适合验证异地直连.重点不在游戏本身,而在确认一台异地电脑创建的房间,另一台电脑能否通过虚拟IP加入.OpenTTD默认使用
3979端口,并同时使用TCP和UDP.本次测试不需要公网端口映射,也不需要把服务器发布到互联网列表,只在星空组网内建立一台私有服务器.


目录
- 一、先把两台电脑准备好
- 二、房主电脑启动一个私有服务器
- [三、玩家电脑手动添加房主的虚拟 IP](#三、玩家电脑手动添加房主的虚拟 IP)
- 四、以"进入同一张地图"作为验证结果
- 五、连不上时,按这一顺序检查
- 六、联机结束后收回临时权限
- 七、还有哪些游戏值得尝试
一、先把两台电脑准备好

房主电脑和玩家电脑都安装同一版本的 OpenTTD,并接入同一个星空组网网络.打开成员列表,确认两台设备在线,记录房主的虚拟IP.
下面以房主虚拟 IP 为 192.168.188.1 举例.实际测试时,应填写成员列表中房主设备显示的地址,而不是家里的局域网地址,也不是宽带公网IP.

开始游戏前,顺手检查三件事:
- 两台电脑的 OpenTTD 版本一致,避免因版本或地图资源不兼容而无法加入.
- 玩家设备到房主设备的访问策略已放行 TCP、UDP 3979.如果两台电脑属于不同分组,需要配置玩家组访问房主的这两个端口.
- 房主电脑的系统防火墙允许 OpenTTD 接收 TCP、UDP 3979 的连接.只放行游戏程序或这两个端口,不要关闭整台电脑的防火墙.
可以先从玩家电脑 Ping 一下房主的虚拟 IP.Ping 成功说明基础网络路径可达;它不代表 OpenTTD 服务一定已启动,因此后面仍要以"能否进入游戏"为准.
二、房主电脑启动一个私有服务器
在房主电脑打开 OpenTTD,进入"联机游戏",点击右下角的"启动服务器".创建游戏时给服务器设置一个容易识别的名称,例如"星空组网联机测试",并设置临时密码.
本次只做临时测试时,连接方式选择本地或私有即可,不必发布到互联网服务器列表.创建地图并进入游戏后,房主需要保持OpenTTD 运行;关闭游戏或退出服务器,玩家就无法继续连接.

这一步容易和"搜索局域网"混淆.搜索局域网依赖游戏自己的自动发现;本文不依赖它.即使自动发现列表为空,只要服务器正在运行、虚拟 IP 路径和端口可达,玩家仍可手动添加服务器.
三、玩家电脑手动添加房主的虚拟 IP
在第二台电脑同样打开 OpenTTD,进入"联机游戏",点击底部的"添加服务器".弹出的输入框中填写房主虚拟 IP 和端口:
text
192.168.188.1:3979
点击"确定"后,服务器会出现在列表中.选中该服务器,右侧会显示游戏信息;再点击"进入游戏",输入房主设置的密码即可加入.

服务器列表出现后但还没进入地图,说明客户端已经能访问到房主的 OpenTTD 服务;真正进入地图、选择公司或旁观席位后,才算完成了联机验证.
四、以"进入同一张地图"作为验证结果
玩家成功加入后,两台电脑会处在同一张地图中.可以各自创建公司协作,也可以让玩家以旁观者身份进入.截图时保留游戏地图、服务器名称或已加入状态即可;成员名称、聊天内容和设备真实名称可按需要打码.

相比 Ping 或端口检测,"进入同一张地图"更能说明测试完成:它同时验证了设备在线、虚拟 IP 路径、访问策略、系统防火墙和 OpenTTD 服务状态.
五、连不上时,按这一顺序检查
| 现象 | 优先检查 |
|---|---|
| "添加服务器"后列表没有服务器 | 房主是否仍在运行服务器;虚拟 IP 和 3979 是否填写正确 |
| Ping 不通房主虚拟 IP | 两台设备是否在线、是否加入同一网络、分组访问策略是否允许访问 |
| 能 Ping 通,但添加服务器失败 | 房主防火墙是否放行 OpenTTD 及 TCP、UDP 3979;服务器是否已真正启动 |
| 列表中能看到服务器,进入游戏失败 | 游戏版本、密码、地图资源或服务器人数限制 |
| 可以加入但体验卡顿 | 两端网络质量、房主上行和实际连接路径;先减少其他下载任务再测试 |
Windows 的 Test-NetConnection 主要验证 TCP,不能单独拿它判断 OpenTTD 的 UDP 通信是否正常.对于这次测试,最可靠的判断标准仍是客户端能否进入同一张地图.
六、联机结束后收回临时权限
如果只为朋友临时联机,可以把参与者放进单独的"游戏联机"分组,只允许他们访问房主的 TCP、UDP 3979.游戏结束后删除临时成员或收回这条规则.
文件共享、远程桌面、SSH 和其他系统服务不应因为一起玩游戏就自动开放.OpenTTD 的服务器密码也只用于本次房间,测试完成后可以关闭服务器或更换密码.
七、还有哪些游戏值得尝试

OpenTTD 只是为了把步骤讲清楚.早期电脑上常见的《流星蝴蝶剑》《红色警戒》《反恐精英》(CS)等,都有过局域网联机的使用场景;如果当前安装的版本仍提供"局域网""创建房间"或"输入主机地址"等入口,也可以按本文的思路测试.
Steam 上的《饥荒联机版》则更偏向创建房间或运行专用服务器,配置方式和 OpenTTD 不完全相同.它同样可以作为异地联机的后续场景,但要按游戏、Steam 和服务器自身的要求配置,不能把 OpenTTD 的端口或加入方式直接套过去.
无论测试哪一款游戏,先确认它支持的联机形式:是局域网自动发现、直接输入 IP,还是专用服务器和平台邀请.能直接输入房主地址的游戏最容易验证;只依赖局域网自动发现的游戏,房间是否会跨网络显示则取决于它自己的实现.

🚀真正的勇者不是流泪的人,而是含泪奔跑的人!
敬请期待下一篇文章内容
每日心灵鸡汤: 人生最难的,不是行动而是做决定!
人的一生,最难的往往不是思考,不是开始,也不是行动,而是决定.这一生,总会遇到一些无助、迷茫、进退两难的时刻.身边可能有很多人,但真正到了需要做决定的时候,却发现好像没有一个人,能够真正站在你的处境里,和你认真商量这件事,帮你看清现实、权衡得失、判断方向.这也是DLL存在的意义:不替你做决定,而是帮你做出更好的判断.
