客户端教程问题解答Claude 专题

系统代理和 TUN 模式有什么区别?该开哪个?

系统代理只对遵守系统代理设置的软件生效,TUN 模式通过虚拟网卡接管几乎所有流量。本文对比两者的覆盖范围、权限、UDP 支持与兼容性,并解释 Claude Code、Codex 等命令行工具为什么常需要 TUN。

直接答案

日常只用浏览器,开系统代理就够了;需要让命令行工具、游戏或不读取系统代理的软件走代理时,开 TUN 模式。Claude Code、Codex 等 CLI 工具通常不读取系统代理设置,最省事的做法是开启 TUN,或者在终端里单独设置代理环境变量。

目录

两者的区别在于「谁来决定走不走代理」。系统代理是在系统设置里登记一个代理地址,软件自己决定是否读取;TUN 模式是在系统里创建一张虚拟网卡,把流量从网络层面接过来,不管软件是否配合。

所以日常只用浏览器、微信这类会读取系统代理的软件,开系统代理就够了;如果命令行工具、游戏或某些桌面软件「开了代理还是连不上」,就需要开 TUN 模式。

两者对比

对比项系统代理TUN 模式
工作方式在系统设置中登记 HTTP 代理地址创建虚拟网卡,接管网络流量
覆盖范围只对读取系统代理设置的软件生效几乎所有软件的流量
需要权限普通权限即可通常需要管理员权限或服务模式
UDP 流量基本不涉及可以接管 UDP
命令行工具多数不生效通常直接生效
兼容性问题少偶尔与其他 VPN、虚拟机网卡冲突
适合场景浏览器日常使用CLI 工具、游戏、不支持代理设置的软件

CLI 工具为什么常需要 TUN

在终端中运行的 Claude Code、Codex CLI、git、npm 等程序,通常不会读取 Windows 或 macOS 的系统代理设置,而是看终端里的代理环境变量。于是会出现浏览器能打开 claude.ai,终端里却连接超时的情况。

解决方法有两种:

  1. 开启 TUN 模式:一次设置,所有终端和程序都生效,最省事。Clash Verge Rev 的设置方法见 TUN 模式教程。
  2. 设置环境变量:只对当前终端会话生效,适合不想开 TUN 或没有管理员权限的情况。

bash 或 zsh 中:

export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890

PowerShell 中:

$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"

示例中的 7890 只是常见端口,不同客户端和版本的默认值不同,以你客户端设置里显示的代理端口为准。关闭终端后环境变量失效,需要重新设置。Claude Code 和 Codex 的具体网络配置可分别参考 Claude Code 网络设置与 Codex CLI 代理设置。

该开哪个

  • 只用浏览器访问网页和 AI 网页版:系统代理。
  • 使用 Claude Code、Codex、Gemini CLI 等命令行工具:TUN,或系统代理加终端环境变量。
  • 玩游戏、使用语音软件:TUN。
  • 公司电脑没有管理员权限:系统代理加环境变量。
  • 电脑上同时装了其他 VPN 或虚拟机:先用系统代理,需要 TUN 时注意关闭其他虚拟网卡。

总结

  • 系统代理靠软件自觉读取,TUN 从网络层接管流量。
  • 浏览器用系统代理即可,CLI 工具、游戏通常需要 TUN。
  • 不开 TUN 时,可以在终端设置 HTTP_PROXY 和 HTTPS_PROXY,端口以客户端设置为准。
  • 开启 TUN 需要管理员权限,分流仍由客户端规则决定。

常见问题

系统代理和 TUN 可以同时开吗?

可以,多数情况下也不会冲突。开启 TUN 后,流量已经被虚拟网卡接管,系统代理是否开启影响不大。如果出现无法上网,先关闭其中一个排查。

开了 TUN 之后国内网站会变慢吗?

正常情况下不会。TUN 只负责接管流量,是否走代理仍由客户端的分流规则决定,国内域名按规则直连。如果国内网站明显变慢,检查是否误选了全局模式,或 DNS 设置是否正确。

开 TUN 为什么需要管理员权限?

TUN 需要在系统中创建虚拟网卡并修改路由表,这属于系统级操作。Clash Verge Rev 通常会提示以管理员身份运行或安装服务模式,按提示操作即可。

搜索文章、品牌、AI 工具、客户端与问题

提示:直接输入 Claude、Codex、IEPL、订阅失败 等关键词。也可以打开 搜索页。