Skip to content

命令行代理配置:终端如何走代理

一个高频困惑:客户端开了系统代理,浏览器能上 GitHub,但 git clonecurlnpm 却依然又慢又超时。原因是很多命令行工具不读取系统代理,只认环境变量。本文讲清各系统怎么让终端走代理。

先搞清端口

你需要知道代理客户端的本地监听端口,常见:

  • HTTP 代理:http://127.0.0.1:7890
  • SOCKS5 代理:127.0.0.1:1080(或 7891)

下面命令里的端口请替换成你自己的。

一、Linux / macOS 终端

临时(当前会话有效)

bash
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:1080

# 取消
unset http_proxy https_proxy all_proxy

永久(写进 shell 配置)

把上面 export 写进 ~/.bashrc~/.zshrc。更实用的是定义开关函数,需要时才开:

bash
# 加到 ~/.zshrc 或 ~/.bashrc
proxy_on() {
  export http_proxy=http://127.0.0.1:7890
  export https_proxy=http://127.0.0.1:7890
  export all_proxy=socks5://127.0.0.1:1080
  echo "✅ 代理已开启"
}
proxy_off() {
  unset http_proxy https_proxy all_proxy
  echo "❌ 代理已关闭"
}

之后终端里输入 proxy_on / proxy_off 即可切换。

二、Windows PowerShell

powershell
# 临时(当前窗口有效)
$env:HTTP_PROXY  = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"

# 取消
Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY

写成 PowerShell 配置里的函数(编辑 $PROFILE):

powershell
function proxyOn {
  $env:HTTP_PROXY  = "http://127.0.0.1:7890"
  $env:HTTPS_PROXY = "http://127.0.0.1:7890"
  Write-Host "✅ 代理已开启"
}
function proxyOff {
  Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY -ErrorAction SilentlyContinue
  Write-Host "❌ 代理已关闭"
}

三、Windows CMD

bat
:: 临时
set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890

:: 取消
set http_proxy=
set https_proxy=

四、单个命令临时走代理

不想设环境变量,只让某一条命令走代理:

bash
# curl
curl -x http://127.0.0.1:7890 https://github.com

# wget
wget -e use_proxy=yes -e https_proxy=127.0.0.1:7890 https://github.com/...

五、各工具的独立代理设置

有些工具不读环境变量,要单独配。常用的整理如下:

工具配置方式详见
Gitgit config --global http.proxy ...Git 设置代理
npmnpm config set proxy ...npm 换源与代理
pippip install --proxy ...pip 镜像与代理
Docker守护进程配代理Docker 加速
GoGOPROXY / 环境变量GOPROXY 配置

六、验证

bash
# 看出口 IP 是否变成节点地区
curl https://api.ip.sb/geoip

# 单独测代理端口是否可用
curl -x http://127.0.0.1:7890 https://github.com -I

小结

  • 系统代理 ≠ 终端代理:命令行大多要单独设环境变量。
  • Linux/macOS 用 proxy_on/off 函数,Windows 用 $PROFILE 函数,一键切换最方便。
  • Git / npm / Docker 等有自己的代理配置,别只靠环境变量。

本文仅供技术学习与研究,请遵守所在国家/地区法律法规。本站不提供任何网络服务。

本站为技术学习交流站点,与 GitHub, Inc. 无任何隶属或官方关系。所有内容仅供技术研究与学习,请遵守所在国家/地区的法律法规。