外观
命令行代理配置:终端如何走代理
一个高频困惑:客户端开了系统代理,浏览器能上 GitHub,但 git clone、curl、npm 却依然又慢又超时。原因是很多命令行工具不读取系统代理,只认环境变量。本文讲清各系统怎么让终端走代理。
先搞清端口
你需要知道代理客户端的本地监听端口,常见:
- 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/...五、各工具的独立代理设置
有些工具不读环境变量,要单独配。常用的整理如下:
| 工具 | 配置方式 | 详见 |
|---|---|---|
| Git | git config --global http.proxy ... | Git 设置代理 |
| npm | npm config set proxy ... | npm 换源与代理 |
| pip | pip install --proxy ... | pip 镜像与代理 |
| Docker | 守护进程配代理 | Docker 加速 |
| Go | GOPROXY / 环境变量 | 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 等有自己的代理配置,别只靠环境变量。
本文仅供技术学习与研究,请遵守所在国家/地区法律法规。本站不提供任何网络服务。