我家那台老电脑,去年装了帝国时代2决定版,本来想跟大学室友重温一下当年局域网联机的感觉。结果从第一次点进多人游戏开始,就没顺利连上过一回。要么是搜不到房间,要么是好不容易挤进一个,刚点了准备就掉线。折腾了整整一个周末,我几乎把能试的办法都试了,最后才弄明白,问题根本就不在一个地方。
先说网络环境。我家是电信100M光纤,路由器是前年买的某国产品牌入门款。宽带本身没问题,下载能跑到满速,看视频也不卡。可帝国时代2的多人联机走的是P2P连接,特别依赖NAT类型。我打开路由器后台,发现NAT类型是中等,不是全锥形。这就意味着别人发来的数据包在网关那里可能被拦了一部分。游戏里显示“无法连接到主机”,很多时候就是NAT穿透失败。后来我查了资料,电信宽带在家用路由器下默认是对称NAT,而帝国时代2需要至少开放UDP端口3478和2302。我的路由器没做过端口转发,游戏数据自然进不来。
然后是版本问题。这一点特别坑。我一开始在Steam上买的微软商店版,室友是在老玩家群里下的盗版,版本号差了两位。双方虽然都能打开游戏,但一个在Steam服务器上找房间,另一个在游侠对战平台用IP直连,完全不在同一个网络环境里。后来我买了HD版,又发现HD版和决定版的多人模式根本是两套代码,连聊天频道都不互通。最后我只能让室友也去买了决定版,老老实实走Steam的联机服务。
防火墙也来凑过热闹。Windows自带的Defender防火墙,默认把帝国时代2的程序列入了阻止名单。我一开始根本没意识到,因为游戏能启动,单人战役正常玩,只有点多人游戏时提示“无法初始化网络服务”。我试着把整个游戏文件夹加入白名单,还手动放行了所有帝国时代2相关进程的TCP和UDP端口,情况才稍微好转。可问题又来了,腾讯管家和安全卫士同时开着,它们自带的网络防火墙跟Windows防火墙一起拦截,就连Steam的好友语音都弄丢了。最后我把多余的杀毒软件全卸了,只留系统自带的,世界安静了。
运营商跨网也是个隐患。我和室友一个在北方用联通,一个在南方用电信。虽然都是宽带,但跨运营商连接时延迟直接飙到200毫秒以上。游戏里的ping值看着还行,实际进游戏后一遇到战斗就卡顿,丢包率超过百分之二十。后来我用了一个加速器,把两边的节点都拉到上海,延迟才降到50毫秒以下。但加速器本身也不是万能的,免费的加速器高峰期经常掉线,尤其是周末晚上,服务器根本挤不进去。

还有一个容易被忽略的问题,就是Steam平台本身。我的账号是在国外注册的,区域设置和网络节点经常自动跳到海外服务器。帝国时代2的联机匹配是根据Steam服务器区域来划分的,我有时候在游戏里看到一大堆俄语和葡萄牙语房间,就是因为节点跑到了欧洲。手动把Steam下载区域改成中国之后,房间列表才正常了一些。但即便如此,有时候点进一个房间还是会有“连接超时”的提示,这种多半是房主自身网络条件太差,或者他开了不允许加入的防护设置。
后来我折腾累了,干脆用IP直连的方式,让室友做主机,把他的IPv4地址发给我。这又牵扯出另一个麻烦:我家宽带没有公网IP。电信默认给的是内网IP,通过运营商的大网转发才能上网。帝国时代2的IP直连需要一个真实公网地址,否则另一头发来的连接请求根本找不到我家的路由器。我打电话给电信客服,申请了公网IP,对方让他在路由器里做端口映射,把自己电脑的IP设成DMZ主机。这一套操作下来,我终于能连进室友开的房间了。
可没过两天,游戏更新了一个小版本,又连不上了。这次是游戏自己的服务器出了问题,官方论坛上一片骂声,说亚洲服务器不稳定,很多玩家都是“连接失败”或者“云端同步失败”。遇到这种情况,只能干等着,我尝试重启游戏,重开Steam,都不管用。后来换了一个加速器的香港节点,居然又进去了。原来加速器不仅加速了与游戏服务器的连接,还顺便规避了一些运营商对特定端口的封锁。
现在回想起来,帝国时代2多人连不上网,根本不是一个单一原因造成的。从NAT类型、版本匹配、防火墙设置,到运营商跨网、没有公网IP、游戏服务器状态,任何一个环节掉链子都会让联机变成一场噩梦。我花了两天时间把所有坑都踩了一遍,最后总结出来一句:想顺顺利利玩一盘,你先得把自己家里的网络条件折腾明白,再确认所有人用的都是同一个正版版本,开好防火墙的例外端口,最好再配一个稳定的加速器。否则,你只能对着“无法连接主机”的提示干瞪眼。