TUN 模式与终端代理设置:让游戏、命令行、Git 和 npm 走代理

浏览器能用但命令行、Git、npm、游戏不走代理?本文讲解 TUN 模式的原理与开启方法,以及在不开 TUN 时如何为 PowerShell、Bash、Git、npm 单独设置代理,适合程序员与游戏用户。

发布 约 3 分钟读完难度:高级
TUN 模式与终端代理设置教程封面

核心结论

系统代理只对遵循系统设置的应用生效,命令行、Git、部分游戏需要单独处理。最省事的方法是开启客户端的 TUN 模式接管全部流量;不想开 TUN 时,可以为终端设置 HTTP_PROXY / HTTPS_PROXY 环境变量,为 Git、npm 设置各自的代理配置。端口以客户端设置中显示的混合端口为准。

  • TUN 模式:虚拟网卡接管全部流量,一次解决所有程序
  • 终端:设置 HTTP_PROXY / HTTPS_PROXY 环境变量
  • Git、npm 有独立的代理配置
  • 端口以客户端显示为准,常见为 7890 或 7897
本文目录(10)
  1. 方法一:TUN 模式(推荐)
  2. 在 Clash Verge Rev 中开启
  3. 注意事项
  4. 方法二:为终端和工具单独设置代理
  5. PowerShell(当前窗口生效)
  6. macOS / Linux 终端(当前会话生效)
  7. Git
  8. npm
  9. 两种方法怎么选
  10. 常见问题排查

很多人遇到过这样的情况:浏览器能正常打开 GitHub,但在终端里 git clone 却一直超时;或者游戏完全不走代理。原因是系统代理只对遵循系统设置的应用生效,命令行工具和很多游戏并不读取它。

解决方法有两种:开启 TUN 模式,或者为终端和工具单独设置代理。

方法一:TUN 模式(推荐)

TUN 模式让客户端创建一个虚拟网卡,接管系统的全部流量,所有程序都会经过代理并按规则分流,无需逐个配置。

在 Clash Verge Rev 中开启

  1. 打开设置,找到 TUN 模式开关;
  2. 按提示安装服务模式或以管理员身份运行;
  3. 打开 TUN 模式,保持规则模式不变。

注意事项

  • 开启 TUN 后可以关闭系统代理,避免重复接管;
  • 如果局域网设备(打印机、NAS)访问异常,检查规则中是否包含局域网直连规则;
  • 与其他 VPN 软件同时使用可能冲突,一次只开一个。

模式之间的区别见规则模式、全局模式与 TUN 模式怎么选。

方法二:为终端和工具单独设置代理

不想开启 TUN 时,可以只让需要的工具走代理。下面的端口 7890 仅为示例,请替换为客户端设置中显示的混合端口(不同客户端和版本可能为 7890、7897 等)。

PowerShell(当前窗口生效)

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

macOS / Linux 终端(当前会话生效)

export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

想每次打开终端都生效,可以把这两行写入 ~/.zshrc 或 ~/.bashrc。

Git

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

取消设置:

git config --global --unset http.proxy
git config --global --unset https.proxy

使用 SSH 地址([email protected]:...)克隆时,以上 HTTP 代理设置不生效,需要在 SSH 配置中单独设置,或改用 HTTPS 地址克隆。

npm

npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890

取消设置:

npm config delete proxy
npm config delete https-proxy

两种方法怎么选

对比项 TUN 模式 单独设置代理
覆盖范围 所有程序 只有配置过的工具
配置成本 一次开启 每个工具单独设置
游戏支持 支持 大多数游戏无法设置
对系统影响 较大 很小
推荐人群 游戏用户、希望一劳永逸的用户 只需要终端、Git 走代理的开发者

常见问题排查

  • 设置后仍然超时:确认端口与客户端一致、客户端正在运行且节点可用;
  • 关闭客户端后终端无法联网:清除环境变量或取消 Git、npm 的代理设置;
  • 只有部分请求走代理:检查规则是否把相关域名设为了直连,可以在客户端“连接”页面确认。

更多连接问题见Windows 网络连接常见问题排查;想让特定程序走特定节点,见Clash 自定义分流规则教程。

总结

命令行、Git、游戏不走代理时,最省事的是开启 TUN 模式;只需要部分工具走代理时,为终端设置环境变量、为 Git 和 npm 单独配置代理即可。端口以客户端显示的混合端口为准。

常见问题

Q

开了系统代理为什么命令行还是连不上 GitHub?

大多数命令行工具不读取 Windows 系统代理设置。需要开启 TUN 模式,或为终端单独设置 HTTP_PROXY / HTTPS_PROXY 环境变量。

Q

TUN 模式会影响局域网访问吗?

配置不当时可能影响。大多数机场下发的规则已把局域网地址设为直连;如果打印机、NAS 等访问异常,检查规则中是否有局域网直连规则。

Q

机场适合程序员使用吗?

适合,用于 GitHub、包管理器、文档与 AI 编程工具。建议选择稳定的机场,并按本文方法配置终端与 Git 代理。

本文属于专题

客户端教程

Clash 自定义分流规则教程封面教程 · 进阶教程

Clash 自定义分流规则教程:让指定网站走指定节点

想让 ChatGPT 固定走美国节点、让某个网站强制直连?本文讲解 Clash(Mihomo)规则的语法、匹配顺序与常用规则类型,并演示如何在 Clash Verge Rev 中用覆写(Merge)添加自定义规则而不被订阅更新覆盖。

3 分钟阅读

Windows 网络连接排查封面诊断 · 连接问题

Windows 网络连接常见问题排查

客户端显示已连接却打不开网页、节点全部超时、部分软件不走代理、关闭客户端后无法上网……本文按症状整理 Windows 上最常见的连接问题,并给出逐步排查方法。

4 分钟阅读支柱指南

相同标签的文章