终端代理配置指南

作者 mcx 日期 2026-06-23
终端代理配置指南

背景

在中国大陆,GitHub、Homebrew、npm 等开发工具的海外源经常无法直连。最干净的解决方案:本地跑一个代理客户端(Clash Verge / ClashX Pro / Surge 等),然后在终端里配置环境变量让所有 CLI 工具自动走代理。

一句话配置

编辑 ~/.zshrc,加入:

1
2
3
4
5
6
7
# 代理
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export all_proxy="http://127.0.0.1:7897"
# 不走代理的地址
export no_proxy="127.0.0.1,localhost,.local,.localdomain"
export NO_PROXY="$no_proxy"

然后 source ~/.zshrc 即可生效。7897 换成你的代理客户端实际端口(Clash 默认 7890/7897,Surge 默认 6152 等)。

原理

终端的工作流程:

1
2
3
4
5
6
7
Tabby / iTerm2 / VS Code Terminal

zsh(读取 ~/.zshrc)

http_proxy / https_proxy 环境变量

OpenCode / Codex CLI / brew / curl / git 自动继承

所有从终端启动的程序都会继承 shell 的环境变量,所以只需配置一次,所有终端和所有 CLI 工具通用

验证

1
2
3
4
5
6
7
8
9
# 看看环境变量是否生效
echo $http_proxy

# 测试 curl 能否通过代理访问外网
curl -I https://github.com

# 测试 brew(之前被墙的)
brew tap mcxen/qx
brew install --cask qx

特殊情况

brew tap 被墙 (HTTPS 克隆失败)

brew tap 默认走 HTTPS 克隆,国内容易被墙。改用 SSH:

1
2
3
git clone [email protected]:mcxen/homebrew-qx.git /opt/homebrew/Library/Taps/mcxen/homebrew-qx
brew trust mcxen/qx
brew install --cask qx

git push 超时

Github 项目 remote 换成 SSH:

1
git remote set-url origin [email protected]:用户名/仓库名.git

VS Code Tasks

如果 VS Code 的 Task Runner 不走终端环境变量,在 .vscode/tasks.json 的 task 配置里加 "options": {"env": {"http_proxy": "..."}}

no_proxy 的作用

no_proxy 保证内网地址不走代理直连:

  • 本地开发服务器(localhost:1420127.0.0.1:3000
  • NAS 内网地址(10.0.0.x
  • 局域网路由器(192.168.x.x

需要额外添加用逗号分隔:

1
export no_proxy="$no_proxy,10.0.0.0/24,192.168.0.0/16"

推荐实践

如果要临时开关代理,在 ~/.zshrc 加两个函数:

1
2
3
4
5
6
7
8
9
10
proxy() {
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export all_proxy="http://127.0.0.1:7897"
echo "Proxy ON"
}
noproxy() {
unset http_proxy https_proxy all_proxy
echo "Proxy OFF"
}

用法:

1
2
proxy     # 开
noproxy # 关

短链接

本文永久链接: b.xpai.uk/proxy