19-11-06更新:放弃 OpenClash 了,因为总会出现这样那样的网络问题。

即使有添加DNS白名单的方法,但一个个添加域名实在耗费精力,而且不知道什么时候就抽风出 DNS 问题——同一个域名有时候可以正常解析,有时无法解析,导致使用体验很差。

有时还会出现网络断连问题,不知道原因。路由器掌管家庭所有设备的网络,还是选择比较成熟稳定的方案为好。

参考

问题描述

在使用 OpenClash 并切换到 Fake-IP 模式后,暴雪游戏《风暴英雄》在登录账号时会提示无法连接服务器,切换到 Redir-Host (兼容)模式后恢复正常。其他暴雪游戏(《守望先锋》)并没有出现无法连接服务器的情况。

排查

  • 首先用 Fiddler 抓了下包,发现风暴英雄在连接类似 xxx.xxx.battlenet.com.cn 的 URL 时出现503错误。
  • 然后查看了 Clash Dashboard 的连接记录,发现 xxx.xxx.battlenet.com.cn 都被正确的划分到了直连组中,排除规则错误的可能。
  • 尝试将模式切换为 Redir-Host,发现能够正常登录。
  • 之后查看了 OpenClash 官方 Wiki,发现 Fake-IP 模式和 Redir-Host 模式的差别在于 DNS 的请求方式,Fake-IP 为了加快响应速度,会预先返回一个保留地址,可能是无法正常登录的原因——风暴英雄拿到立即返回的保留地址后就直接进行连接,导致 xxx.xxx.battlenet.com.cn 的请求 503 错误,无法正常登录。

解决方法

OpenClash 也有现成的解决方案,在 【DNS 设置】中打开 【高级设置】,在 Fake-IP 域名黑名单中填入暴雪的登录用域名 battlenet.com.cn 即可

UWP应用无法直接使用Windows代理,需要使用Fiddler。

准备

步骤

Fiddler

  1. 安装Fliddler后,点击左上角的【WinConfig】。
  2. 在弹出的窗口选择对应的UWP应用,点击【Save changes】保存。

Clash

  1. 如果使用Clash软件代理,在【General】页面点击UWP Lookback行的【EnableLookback.exe】(对,这个是可以点击的)。
  2. 然后同Fiddler的步骤2,选中UWP后保存。