某个 App 不走代理怎么办?系统代理管不到的流量

先说结论

App 不走代理,多因该程序不读取系统代理、流量是 UDP、被分应用代理排除,或旧连接没有重建。先查它的连接有没有进入客户端,再用 TUN、应用内代理或调整分应用名单对症处理。

你遇到的现象

浏览器能正常访问,但某个应用仍然连不上或显示的是本地 IP。

App 不走代理,是梯子排查里最常见也最容易误判的一类:浏览器正常,某个软件却连不上,或者显示的仍是本地 IP。原因通常不在节点,而在这个程序的流量根本没有进入代理客户端。下面先教你判断它有没有走代理,再按原因逐类处理:不读系统代理、UDP 流量、分应用名单、旧连接和程序自己的代理设置。

先判断:这个软件的流量到底有没有进入代理

不要先猜原因,先看事实。有三种办法,从易到难。

办法一:看客户端的连接记录。 打开代理客户端的连接页,同时运行那个软件,看列表里有没有它的目标地址。有的客户端还会显示发起连接的进程名。

办法二:用系统命令看它的连接。 这只适用于系统代理模式。先在任务管理器或活动监视器里找到该软件的进程号,再查它的连接:

Windows 在命令提示符里执行:

netstat -ano | findstr <进程号>

macOS 或 Linux 在终端里执行:

lsof -nP -a -p <进程号> -i

看输出里的远端地址。连向本机的 127.0.0.1 和你的代理端口,说明它用了系统代理;直接连向公网地址,说明没走。端口以你的客户端显示为准。开着 TUN 时,这个办法看不出来,请以客户端记录为准。

办法三:看软件自己显示的信息。 有的软件能显示当前连接的地区或 IP,和你用查询页面查到的出口 IP 对照。

观察结果 说明什么 下一步
连接记录里完全找不到这个软件的连接 流量没有进入客户端 看后面几节,找它不进入的原因
有连接,链路是直连 进了客户端,被规则判成了直连 检查命中的规则,调整规则
有连接,链路是节点,但仍异常 流量走了代理,问题在节点或对方服务 换节点,查对应服务的专门排查
连接反复建立又断开 协议或 UDP 被限制 看 UDP 那一节

哪些流量系统代理管不到

系统代理只是操作系统里的一项设置,程序自己决定要不要遵守。下面这几类程序,常常不遵守或做不到。

程序类型 为什么不走 做法
命令行工具和脚本 默认不读系统代理,只认环境变量 设置环境变量,或开 TUN,见终端代理
游戏和实时语音 主要用 UDP,HTTP 系统代理转发不了 开 TUN,并确认节点支持 UDP
自带代理设置的软件 代理配置独立于系统 在应用内填本地代理
部分 Windows 商店应用 系统默认限制这类应用访问本机回环地址 用客户端自带的回环豁免工具(名称各异),或开 TUN
直接连 IP、自带网络栈的软件 不经过系统设置 开 TUN
在开代理前就已运行的软件 旧连接沿用旧路径 退出重开

找到自己所属的那一行,对应的做法就是下一步。

软件不走代理的第一类原因:它不读系统代理

这类程序需要你明确告诉它代理在哪里,有两种方式。

应用内的代理设置。 多数有此功能的软件,提供“不使用代理”“使用系统代理”“手动代理”之类的选项。确认没有选“不使用代理”,手动代理里填本机的代理客户端:

类型:SOCKS5 或 HTTP
服务器:127.0.0.1
端口:<你的客户端显示的混合端口>

填的是本机客户端的监听地址,不是机场节点的地址。Telegram 是典型的例子,完整排查见Telegram 一直连接中。浏览器里要留意两点:Firefox 有独立的代理设置,可以选择是否跟随系统;代理切换类扩展,可能会覆盖系统代理。

环境变量。 命令行工具读取环境变量:

export https_proxy=http://127.0.0.1:<端口>
export http_proxy=http://127.0.0.1:<端口>

只对当前终端有效,不同工具读取的变量名大小写不尽相同,以该工具的文档为准。

如果软件很多、一个个设置太麻烦,更省事的办法是开 TUN,一次接管全部流量,见TUN 模式。

手机上 App 不走代理:分应用代理把它排除了

手机客户端的分应用代理,有两种相反的模式,搞反了是最常见的原因:

  • 仅代理所选应用:只有名单里的软件走代理,目标 App 必须在名单里。
  • 绕过所选应用:名单里的软件不走代理,目标 App 必须不在名单里。

按顺序检查:

  1. 确认当前是哪种模式。
  2. 看目标 App 在不在名单里,按上面的规则判断位置对不对。
  3. 如果这个 App 会跳到浏览器去完成登录,那个浏览器也要在代理一侧。
  4. 改完后重新连接 VPN,再完全关闭并重启目标 App。

另外,客户端被系统省电策略停掉,也会表现为某些 App 突然不走代理,要去系统设置里给它放开后台运行的权限。

游戏、语音和视频通话:UDP 流量的特殊情况

实时类软件的主要流量是 UDP。系统代理一般是 HTTP 代理,只能转发基于 TCP 的请求,管不到 UDP,所以游戏和语音软件很容易不走代理。

  1. 开启 TUN 模式,让 UDP 也被接管。
  2. 向机场确认节点和协议是否支持 UDP 转发,不支持的话,TUN 开了也没用。
  3. 看这个软件本身是否有专门的网络设置,部分软件有“使用代理”或“使用 UDP”的选项。

需要说明的是,梯子并不是为游戏优化的工具,两者的区别见梯子和加速器。选梯子没有任何延迟测试数据,这里不给延迟标准。

开了 TUN 代理不生效:旧连接、规则和 TUN 本身

软件不读系统代理时,TUN 是最直接的办法。但开了 TUN 仍然不生效,要依次排除三件事:

  1. 旧连接。软件在开启之前就建立了连接,会沿用旧路径。把软件完全退出,在客户端连接页里断开所有连接,再重新启动。
  2. 规则。在连接记录里找到这个软件的连接,看命中的是哪条规则。如果被判成直连,检查规则里有没有针对该软件或其域名的直连条目。规则的组织方式见规则模式、全局模式、直连模式。
  3. TUN 本身。权限不足、驱动或虚拟网卡冲突,会让 TUN 看似开启实则无效。排查见TUN 模式开不了怎么办。

还有一类情况和代理无关:个别应用检测到系统存在代理或 VPN,就拒绝运行。这是对方的限制,选梯子不提供规避检测的办法,只能在使用这类应用时暂时关闭梯子。

下一步:先判断,再选最省事的办法

App 不走代理的问题,按下面的顺序通常能很快定位:

  1. 先用连接记录判断软件有没有进入客户端。
  2. 只有一两个软件有问题:在应用内设置代理,或用环境变量。
  3. 软件很多、类型杂:开 TUN,一次接管。
  4. 手机上:检查分应用代理的模式和名单。
  5. 游戏、语音:TUN 加上确认节点支持 UDP。

如果你经常要处理这类问题,选购和选客户端时要看三件事:客户端是否支持 TUN、是否有分应用功能、节点是否支持 UDP。可以用客户端选择工具按系统挑,再到机场推荐里筛选;没想好就用选梯子向导。

页面底部的机场数据块不涉及各个 App 的适配情况。某个软件走不走代理,主要取决于客户端与系统设置,而不是机场。

这篇没有覆盖的

  • 本文不提供任何具体 App 的适配结论,各软件的代理行为随版本变化,需要你自己验证。
  • 命令输出的格式随系统和版本略有不同,文中示例只用于说明思路,端口以你的客户端显示为准。
  • 检测到代理或 VPN 就拒绝运行的应用,属于对方的限制,本文不教任何规避检测的做法。

选梯子推荐榜目前排在前面的机场

下面是推荐榜的前几名。名次不是测速名次;价格与线路按资料原样列出,付款前到官网结账页面再核对一遍。

推荐名次机场推荐档资料里的价格线路
1无忧链接首推合¥6/月 · 40GB/月(按年付费)IPLC
2暮光加速重点推荐年付¥109(约¥9.1/月) · 70GB(按年付费)IEPL
3微风网络重点推荐¥27/月 · 200GB(按月付费)IEPL
4飞猫云重点推荐约¥7/月起(年付¥84) · 50GB(按年付费)IPLC
5Firefly重点推荐约¥8/月起 · 60GB(按年付费)IPLC
6灵动云优先考虑年付¥99(约¥8.3/月) · 70GB(按年付费)IEPL
7隐形人优先考虑年付¥109(约¥9.08/月) · 80GB(按年付费)纯专线
8梯子云优先考虑年付¥89(约¥7.4/月) · 60GB(按年付费)IEPL

查看完整机场推荐榜

接着读

文中出现的术语

还没定下来买哪家?

机场推荐榜把 28 家机场的价格、流量、线路和资料来源放在了一起;想省事可以用选梯子向导按用途筛一遍,或者直接看便宜机场、性价比机场和专线机场。