系统代理与 TUN 模式教程:区别、怎么选、怎么开启
讲清系统代理与 TUN 模式的工作原理与区别,规则、全局、直连三种代理模式怎么选,以及在 Clash Verge Rev 中开启 TUN 模式、让终端与 AI 编程工具走代理的步骤和常见问题。
系统代理只对“愿意读取系统代理设置”的程序生效,主要是浏览器;TUN 模式创建一张虚拟网卡,接管电脑全部流量,终端、编辑器、游戏都会走代理。日常浏览用系统代理即可;用 Claude Code、Codex、Cursor 等工具时开启 TUN 模式。
核心结论
- 系统代理:浏览器可用,终端和部分应用不生效
- TUN 模式:接管全部流量,终端与 AI 编程工具都能用
- 代理模式日常用“规则”,排查问题时才用“全局”
- TUN 与系统代理二选一即可,同时开没有额外好处
两种接管方式
代理客户端要把你的流量送到节点,有两种方式:
| 方式 | 原理 | 生效范围 | 适合 |
|---|---|---|---|
| 系统代理 | 在系统设置里填入代理地址,程序自己决定是否使用 | 浏览器和大部分遵守系统设置的应用 | 日常浏览 |
| TUN 模式 | 创建一张虚拟网卡,在网络层接管流量 | 几乎所有程序,包括终端、编辑器、游戏 | AI 编程、命令行、桌面应用 |
一句话:浏览器能用而终端不能用,就是系统代理的局限,开 TUN 模式解决。
三种代理模式
不管用系统代理还是 TUN,都还要选代理模式:
- 规则:国内网站直连,海外网站走代理。日常一律用这个;
- 全局:所有流量都走代理,国内网站会变慢。只在排查问题时临时使用;
- 直连:不走代理,相当于暂时关闭。
在 Clash Verge Rev 中开启 TUN 模式
Windows:
- 进入“设置”,找到“服务模式”并安装,同意管理员权限请求;
- 安装完成后打开“TUN 模式”开关;
- 关闭“系统代理”开关(可选,避免重复)。
macOS:
- 进入“设置”,打开“TUN 模式”;
- 按提示授权,必要时在“系统设置 → 隐私与安全性”中允许;
- 授权完成后重新打开开关。
详细步骤见 Windows 教程 与 macOS 教程。
验证是否生效
在终端执行:
curl -I https://www.google.com
返回 HTTP/2 200 或其他 HTTP 状态码,说明终端已经走代理。AI 编程工具可以把地址换成对应服务,例如 https://api.openai.com 或 https://api.anthropic.com。
不想开 TUN:用环境变量
只想让某个终端窗口走代理,可以设置环境变量(端口以客户端显示为准,Clash Verge Rev 常见为 7897):
export HTTPS_PROXY=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
Windows PowerShell 写法:
$env:HTTPS_PROXY="http://127.0.0.1:7897"
$env:HTTP_PROXY="http://127.0.0.1:7897"
常见问题
开启 TUN 后无法上网
- 确认同一时间只运行了一个代理客户端;
- 关闭其他 VPN 或加速器软件,它们会争抢虚拟网卡;
- 重启客户端,仍不行就先关闭 TUN,确认系统代理模式能正常使用,再重新安装服务模式。
开启 TUN 后国内网站变慢
检查代理模式是否被切到了“全局”,改回“规则”。
公司或学校内网访问异常
TUN 会接管内网流量。可以在客户端里把内网网段设为直连,或在访问内网时临时关闭 TUN。
DNS 相关设置见 DNS 设置教程。
常见问题
TUN 模式会影响网速吗?
正常情况下影响很小。在规则模式下,国内网站仍然直连,只有需要代理的流量才走节点。
为什么浏览器能用,终端里 git 和 curl 不能用?
浏览器读取系统代理,而终端程序默认不读取。开启 TUN 模式,或在终端设置 HTTPS_PROXY 环境变量即可。
TUN 模式和系统代理要同时开吗?
不需要。TUN 已经接管全部流量,开启 TUN 后可以关闭系统代理。