问题表现
众所周知,星际2 随着网易和暴雪的短暂交恶而关服,且不再有希望重启国服。
然而在使用 Surge 作为网关时,国际服星际2 却无法登陆————其他的战网游戏都没有问题,战网可以正常登陆,OW 可以正常登陆和游玩,只有 SC2 无论是哪个区服,都会提示:当前的连接的伺服器无效。切换了自建的 N 个不同地区的节点,结果一致。
于是又尝试使用那些游戏加速器,结果发现也是完全一样的表现,这就非常的神奇了。
继续仔细观察,发现登陆的时候有几个 http 请求是失败的,但是把 url 拉出来直接请求却是可以成功的,太迷惑了。
域名分别是
level3.blizzard.com
以及blizzard.gcdn.cloudn.co.kr
意外收获
最终突发奇想,修改 PC 的 DHCP 设置,把网关和 DNS 改成了纯国内的正常宽带出口,居然是可以登陆的,那就说明一定是 surge 这边的问题。
经过进一步的排查,发现了另一个可疑的请求: nydus.battle.net
以及 kr.logon.battle.net
, 有时候会在请求管理器里面出现他们的失败请求。
但是我很确定我的代理是能正常访问这些域名的,突然想起来 stun 服务器相关的事情就是要配置 always-real-ip 来解决兼容性问题,因此死马当活马医,为它增加了相关的配置,没想到真的有用。
解决方案
在 surge 的配置中增加以下内容
1 | # under [General] |
或者将其配置为独立的 sgmodule
1 | #!name=[Macsed] Always Real IP For SC2 |