瀏覽器早就走代理了,終端裡 git clone 還是龜速——因為絕大多數命令列工具不讀系統代理設定,它們只認環境變數和自己的配置檔案。這篇把常用工具一次配齊。預設 Clash Verge 混合埠 7897,改過埠的自行替換。

在 PowerShell 和 bash 中設定代理環境變數並驗證生效
環境變數是通用方案,當前會話立即生效

通用方案:環境變數

PowerShell(Windows)

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

bash / zsh(macOS、Linux)

export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export all_proxy="socks5://127.0.0.1:7897"

只對當前終端會話生效,關窗即失效——這通常是優點:不影響其他程式。驗證是否生效:

curl -I https://www.google.com   # 返回 HTTP/2 200 即成功

做成一鍵開關

每次手敲太麻煩,寫進 shell 配置做成別名。bash/zsh 在 ~/.bashrc~/.zshrc 里加:

alias pon='export http_proxy=http://127.0.0.1:7897 https_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897'
alias poff='unset http_proxy https_proxy all_proxy'

PowerShell 在 $PROFILE 里加對應 function。之後 pon 開、poff 關。

只認自家配置的工具

git

git config --global http.proxy http://127.0.0.1:7897
# 取消:
git config --global --unset http.proxy

注意這隻管 HTTPS 協議的倉庫;SSH 協議([email protected])要在 ~/.ssh/config 裡配 ProxyCommand,或者乾脆換 HTTPS 地址。

npm / pnpm

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

pip

pip install package --proxy http://127.0.0.1:7897

或者直接吃環境變數,無需單獨配置。

docker

分兩處:docker pull 走的是守護程序,要在 Docker Desktop 的 Settings → Resources → Proxies 裡填;容器內構建時的代理則通過 --build-arg HTTP_PROXY=… 傳入。兩處別配混。

更省事的選擇:TUN 模式

不想逐個工具伺候,開 TUN 模式後所有命令列流量自動進代理,上面的配置全部可以省掉。代價是全域性生效——想精細控制哪個工具走不走,還是環境變數靈活。也可以反向操作:TUN 全域性接管 + 程序直連規則排除個別工具。

常見坑:環境變數寫了 localhost 而不是 127.0.0.1。部分工具會把 localhost 解析成 IPv6 的 ::1,而核心預設只監聽 IPv4,表現為「配了代理反而全斷」。統一寫 127.0.0.1 最穩。