# 某个 App 不走代理，系统代理和 TUN 模式差在哪

> 来源 https://jichangtuijianweb.co/kepu/app-bu-zou-daili/，更新于 2026 年 9 月 20 日。机场推荐网（https://jichangtuijianweb.co/）原创内容。
> 分类 排障。

某个 App 不走代理，多半是它不读系统代理。系统代理只在系统里登记一个地址，读不读由程序自己定，也带不了 UDP；TUN 模式建一张虚拟网卡，所有程序的流量都要从它经过。

电脑上的代理客户端有两种接管流量的办法。[系统代理](https://jichangtuijianweb.co/cidian/#system-proxy)是在操作系统里登记一个本机地址和端口，Clash Verge Rev 的名词解释说得明白，程序自发去读这份信息，再把请求交过来，而且它不能代理 UDP 流量。[TUN](https://jichangtuijianweb.co/cidian/#tun) 是客户端建一张虚拟网卡，改系统路由，把所有流量引到这张网卡上，TCP 和 UDP 一起拦下，程序这边不需要任何配置。

某个 App 不走代理，头一个要问的就是它读不读系统代理。浏览器几乎都读，别的程序各有各的脾气。Clash Verge Rev 在首页给 TUN 写的说明也是这个意思，它适用于特殊不遵循系统代理设置的应用。

## 先去连接页找它的进程名

动设置之前，先确认它到底有没有进代理。[Clash Verge Rev](https://jichangtuijianweb.co/kehuduan/clash-verge-rev/) 左侧的连接页，列出当前每一条连接的主机、规则、进程和链路。让那个 App 重新联一次网，比如刷新一下，再到连接页里找它的进程名。

找不到它，说明它的流量根本没进内核，下面按类型对号入座。找到了，规则和链路那两栏写着 DIRECT，说明它读了代理，只是分流规则把它放去了直连。这种情况切到全局模式试一次就能确认，处理办法写在[连不上的排查顺序](https://jichangtuijianweb.co/kepu/lianbushang-paicha/)讲个别网站的那一节。

## 按 App 的类型对号入座

| App 类型 | 读不读系统代理 | 让它走代理的办法 |
|---|---|---|
| 浏览器 | 读 | 开系统代理，装了代理扩展的看扩展设置 |
| 命令行工具 | 多数不读，认环境变量 | 给终端设环境变量，或开 TUN |
| 游戏、语音通话 | 常常不读，数据多走 UDP | 开 TUN |
| 微软商店里的应用 | 读了也连不上本机端口 | 用 UWP 工具解除限制，或开 TUN |
| Windows 更新等系统服务 | 读的是另一份 WinHTTP 设置 | 单独设 WinHTTP，或开 TUN |
| 自带代理选项的软件 | 看它自己的设置 | 在软件里填本机地址和端口 |

### 命令行工具认的是环境变量

curl、pip 这类工具不看系统代理，看的是终端里的环境变量。Clash Verge Rev 能替你生成这几行，先在设置页的 Verge 基础设置里选好复制环境变量类型，有 Bash、CMD、PowerShell 等几种，再右键任务栏的托盘图标，选复制环境变量，粘进终端执行。v2rayN 的托盘右键菜单里也有一项，叫复制终端代理命令至剪贴板。

手动写也不难，PowerShell 里是下面两行，端口换成你客户端的。

```
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
```

环境变量只在当前这个终端窗口里有效，关掉就没了。Git、npm 这类工具另有自己的代理配置项，要长期生效就在它们自己的配置里写。

### 游戏和语音，交给 TUN

游戏和语音通话的数据大量走 UDP，系统代理带不了，很多游戏也压根不读系统代理，只能开 TUN。Clash Verge Rev 的开关在设置页系统设置分组的虚拟网卡模式，界面提示写着 TUN 模式需要安装服务模式或管理员模式，旁边有安装服务的按钮。它的说明还写了一句，启用时无须打开系统代理。[v2rayN](https://jichangtuijianweb.co/kehuduan/v2rayn/) 7.24.9 的开关在主界面底部状态栏，叫启用 Tun。

### 微软商店的应用被沙盒挡着

从微软商店装的应用有沙盒，读了系统代理也够不着本机的代理端口。Clash Verge Rev 设置页里 Clash 设置那一组有个 UWP 工具，说明写着 Windows 8 开始限制 UWP 应用直接访问本地主机的网络服务，用这个工具可以绕过。点开后勾选要走代理的应用，保存即可。v2rayN 的设置菜单里也有一项专门解除 UWP 应用的回环限制，作用相同。开 TUN 也能绕开这道限制。

### Windows 更新读的是 WinHTTP

Windows 里有两份代理设置。你在设置里看到的、客户端写的是一份，系统服务常用的 WinHTTP 是另一份。微软的文档写明，Windows 更新检查更新时要用 WinHTTP，自动更新服务只认用 netsh 命令配置的代理或者网络里的自动发现。以管理员身份运行命令提示符，下面三条分别是查看、从系统代理导入、恢复直连。

```
netsh winhttp show proxy
netsh winhttp import proxy source=ie
netsh winhttp reset proxy
```

导入以后要记得这件事。客户端一关，走 WinHTTP 的服务就连不上网了，用完执行第三条恢复。只是偶尔需要，开 TUN 更省心。

### 自带代理选项的软件，在软件里填

Clash Verge Rev 在 macOS 常见问题里拿 Telegram 举过例子，App Store 版的它不理会系统代理，文档建议在应用自己的设置里填代理，端口用 7897，也可以换成官网下载的版本。很多软件的设置里都有网络或代理一栏，地址填 `127.0.0.1`，端口填客户端的混合代理端口。mihomo 文档写明混合端口同时支持 HTTP(S) 和 SOCKS5，软件让你选类型，选哪个都行。

## TUN 开着还是漏，再查三处

第一处还是连接页。TUN 下能在连接页找到它，规则却是 DIRECT，就给它单独写一条按进程匹配的规则。mihomo 的规则文档里有 PROCESS-NAME，Clash Verge Rev 订阅卡片右键的编辑规则里能直接选这个类型，内容填连接页里看到的进程名，策略选代理组。

第二处是程序自己解析域名、只拿一个 IP 去连。这样的连接到了内核手里只剩一个 IP，域名规则一条都匹配不上。mihomo 的嗅探功能就是为这种连接准备的，`parse-pure-ip` 的说明是对所有未获取到域名的流量进行强制嗅探。v2rayN 在参数设置里有开启流量探测，作用相同。嗅探和 DNS 的关系，[DNS 泄露](https://jichangtuijianweb.co/kepu/dns-xielou/)那篇有更多细节。

第三处是别的软件在抢路由。游戏加速器、公司的 VPN 都要改系统路由，和 TUN 同时开会互相打架。Clash Verge Rev 的 Windows 常见问题还记了一种情况，开了 TUN 以后整台电脑的网络出毛病，文档把原因归到多张网卡或网段与配置冲突上，处理方法是删掉系统里用不上的虚拟网卡。

## 安卓上没有系统代理，只有分应用

手机上的代理客户端都以 VPN 的身份运行，相当于一直开着 TUN。Android 开发者文档写明，不设允许名单或禁止名单时，所有应用的流量都走 VPN。所以在安卓上，问题通常反过来，是想让某些 App 别走代理。

[v2rayNG](https://jichangtuijianweb.co/kehuduan/v2rayng/) 的入口在设置里的 VPN 设置，叫分应用代理。界面上的说明写得很清楚，常规模式下勾选的应用使用代理、未勾选的直连，绕行模式下勾选的应用直连、未勾选的使用代理。国内 App 多的手机用绕行模式，勾的东西少。

[Clash Meta for Android](https://jichangtuijianweb.co/kehuduan/clash-meta-for-android/) 的入口在设置的网络页，访问控制模式有三个选项，意思分别是全部应用都走、只让勾选的走、勾选的不走，想排除国内 App 就选第三个，界面上写作不允许已选择的应用，选好以后到访问控制应用包列表里勾。这一页的选项在 Clash 运行时改不了，要先停下再改。

同一页还有一个开关叫允许应用绕过，说明是允许其他应用绕过 VPN。Android 文档对这个机制的描述是，打开以后，应用可以把自己绑定到某个具体的网络上，直接从那张网出去。某个 App 在手机上死活不走代理，看一眼这个开关是不是开着。

## 常见问题

### 游戏开着系统代理还是走直连，怎么办

开 TUN 模式。游戏的数据大量走 UDP，Clash Verge Rev 的名词解释里，系统代理一项注明不能代理 UDP，不少游戏也根本不读系统代理。TUN 用虚拟网卡把 TCP、UDP 一并接过来，在 Clash Verge Rev 里得先装好服务，或者以管理员身份启动它。

### Telegram 不走系统代理，怎么让它走代理

在 Telegram 自己的设置里填代理。Clash Verge Rev 的 macOS 常见问题提到，App Store 版的 Telegram 不理会系统代理，可以在它的设置里手动填，地址 127.0.0.1，端口用客户端的 7897，也可以改用官网下载的版本。

### 安卓上怎么让国内 App 不走代理

用客户端的分应用功能把它们排除在外。v2rayNG 在设置的 VPN 设置里有分应用代理，打开绕行模式后，勾选的应用直连。Clash Meta for Android 在设置的网络页里有访问控制模式，选不允许已选择的应用，再到应用包列表里勾上。

### 开了 TUN 模式，系统代理还要不要开

不用。Clash Verge Rev 界面上的说明是 TUN 模式接管系统所有流量，启用时无须打开系统代理。两个都开也能用，读系统代理的程序会先把请求交给代理端口，其余程序的流量由虚拟网卡接走。

### Windows 更新不走代理是怎么回事

它读的是另一份代理设置。微软文档写明 Windows 更新检查更新时要用 WinHTTP，WinHTTP 的代理和你在系统设置里看到的那一份是分开的。用管理员命令提示符运行 netsh winhttp show proxy 能看到它当前的设置，或者直接开 TUN。

## 参考来源

- [Clash Verge Rev 文档，名词解释里的系统代理与 TUN](https://www.clashverge.dev/guide/term.html)
- [Clash Verge Rev 文档，Windows 常见问题](https://www.clashverge.dev/faq/windows.html)
- [Clash Verge Rev 文档，macOS 常见问题](https://www.clashverge.dev/faq/macos.html)
- [Clash Verge Rev 文档，其他问题里的命令行代理](https://www.clashverge.dev/faq/other.html)
- [Clash Verge Rev 仓库 v2.5.2 的中文界面文字](https://github.com/clash-verge-rev/clash-verge-rev/tree/v2.5.2/src/locales/zh)
- [v2rayN 7.24.9 的中文界面文字](https://github.com/2dust/v2rayN/blob/7.24.9/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx)
- [mihomo 文档，混合端口](https://wiki.metacubex.one/config/inbound/port/)
- [mihomo 文档，域名嗅探](https://wiki.metacubex.one/config/sniff/)
- [mihomo 文档，按进程匹配的规则](https://wiki.metacubex.one/config/rules/)
- [Microsoft Learn，netsh winhttp](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/netsh-winhttp)
- [Microsoft Learn，Windows 更新客户端如何选择代理](https://learn.microsoft.com/en-us/troubleshoot/windows-server/installing-updates-features-roles/windows-update-client-determines-proxy-server-connect)
- [Android 开发者文档，VPN 的分应用与绕过](https://developer.android.com/develop/connectivity/vpn)
- [Clash Meta for Android 的中文界面文字](https://github.com/MetaCubeX/ClashMetaForAndroid/blob/main/design/src/main/res/values-zh/strings.xml)
- [v2rayNG 的中文界面文字](https://github.com/2dust/v2rayNG/blob/master/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml)
