注意:Surge 更改了方式,目前已不需要此模块。

前言

很多应用在开启时会检测是否开启代理,如果开启则无法正常使用,这里记录一下如何解决此类问题。

跳过代理

有的应用只需要设跳过代理即可解决。

首先打开 Surge工具-最近请求,查找目标 APP 的 域名,然后在首页-更多设置中将其添加入跳过代理的列表中。

https://pic.imgdb.cn/item/632d754916f2c2beb183432a.jpg

如果此种方法不能解决,可尝试以下两种方法。

兼容模式

对于第一种方法无法解决的 APP ,可以打开 Surge 的兼容模式,位置在首页-更多设置-兼容性-Tun-Only。这种方法设置简单,然而存在一定问题。

部分应用在启动时会检查是否配置了代理,如果检查到代理就会停止工作(如浦发银行)。这是一种不专业的做法,代理既不会降低安全性,也是在企业网络下一种常见的配置。

Surge 在启动时,为了实现多种复杂功能,会同时配置虚拟代理设置和虚拟 VPN,从而引发上述应用的反代理检查。(部分同类应用没有此问题是因为只配置了虚拟 VPN)

该问题可通过开启 Surge 的兼容性模式 VIF Only 解决,但是开启后会导致 HTTP 相关高级功能失效,不推荐。

Surge 手册

如果希望更好地解决可使用第三种方法。

快捷指令

此方法其实是创建一个自动化的快捷指令,在每次打开特定应用时打开兼容模式,关闭应用时再关闭兼容模式,因为 Surge 模块的优先级比配置更高,因此使用模块控制兼容模式的开关,然后通过 API 控制模块的开关。

1. 打开 Surge HTTP API 功能

首先打开 SurgeAPI 功能。在配置文件 General 下加入如下设置:

1
2
[General]
http-api = 你的密码@127.0.0.1:7170

2. 创建模块

创建一个模块控制兼容模式的开关,可以建立本地模块也可使用外部链接。

模块内容如下:

1
2
3
4
5
6
#!name=TUN Only
#!desc=开启 Tun Only 兼容模式,解决某些 APP 不能正常连接的问题
#!system=ios

[General]
compatibility-mode = 3

3. 新建快捷指令

创建打开和关闭应用的快捷指令,步骤如下:

https://pic.imgdb.cn/item/632d783916f2c2beb1875ca5.jpg

选择 App -已打开,然后选择目标应用,点击下一步后 添加操作,搜索 URL,并选择 获取URL内容,然后填入相关内容。

https://pic.imgdb.cn/item/632d7a5916f2c2beb189c64e.jpg

https://pic.imgdb.cn/item/632d7a6c16f2c2beb189dc58.jpg

这里:

  • URL 填“http://127.0.0.1:7170/v1/modules”

  • 方法选择 POST

  • 头部这里添加文本,键填入 X-Key,文本填写密码

  • 添加新的请求体,类型选择布尔值,键填写模块名称,值设置为 True

    上述参数可自由更改,配置文件中的端口以及密码需要和快捷指令中相对应。

最后把运行前询问关闭。这样打开应用的快捷指令就设置完毕了,然后再添加一个关闭应用的快捷指令,只需要在选择 APP 后把 已打开改为已关闭即可。

  • *最后:**如果嫌设置麻烦也可以使用其他应用如 Qx,网上也有大佬收集了可能会跳出代理提示的应用并整理成了模块可直接引用,不过不支持买单吧这类 APP,链接地址如下:

VirgilClyne 的 GitHub

参考

本文内容全部来源于以下博客: