即使开启了系统代理,在终端(Terminal / PowerShell)中运行 curl、brew 或 git push 时,仍然经常遭遇超时或连接被拒。这是因为绝大多数 CLI 工具出于性能与安全性考虑,默认不会自动读取操作系统的 GUI 代理配置。
本文系统梳理终端环境下的三大核心代理配置方案。
⚡ 开发者首选低延迟专线速查
- 🥉 极速新锐 No.3 SOGO 云:直达官方通道 · 券码
sss777· 亚太 32ms 起 · 终端极速跟手 - 🥈 综合力荐 No.2 光速云:直达官方通道 · 券码
AMM· 15元150GB · 千兆高带宽拉取大仓库 - 👑 主推 No.1 星岛梦:直达官方通道 · 券码
nmw888· 企业级专线长连接保活
一、终端 Shell 环境变量(HTTP/HTTPS/SOCKS5)
在您的 Shell 配置文件(如 macOS/Linux 的 ~/.zshrc 或 ~/.bashrc,Windows PowerShell 用户可在 $PROFILE)中加入以下快捷函数:
# 假设本地客户端(Clash / Surge / Sing-box)的 HTTP 监听端口为 7890,SOCKS5 为 7890
function 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:7890"
echo "⚡ 终端环境代理已配置 (127.0.0.1:7890)"
}
function proxy_off() {
unset http_proxy
unset https_proxy
unset all_proxy
echo "🚫 终端环境代理已关闭"
}
# 验证当前终端出口 IP 与归属地
function proxy_test() {
curl -s https://ipinfo.io | grep -E '"ip"|"country"|"org"'
}
配置完成后,执行 source ~/.zshrc。在需要拉取海外源时输入 proxy_on 即可秒级开启。
二、Git SSH ([email protected]) 端口 22 超时解决方案
执行 git clone [email protected]:... 走的是 SSH 协议(端口 22),环境变量中的 http_proxy 对其无效。
编辑本地 ~/.ssh/config 文件,添加如下代理转发指令:
Host github.com
User git
# macOS / Linux 使用 nc 命令通过本地 SOCKS5 转发
ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
# Windows 用户可改用 connect 命令:
# ProxyCommand connect -S 127.0.0.1:7890 %h %p
测试连通性:
ssh -T [email protected]
# 返回 Hi username! You've successfully authenticated... 即表示配置成功
三、Docker Daemon 与容器镜像拉取代理
拉取 Docker Hub 官方镜像时,Docker 服务端并不读取当前用户的终端环境变量,需配置系统级的 Systemd 守护进程代理:
- 创建或编辑
/etc/systemd/system/docker.service.d/http-proxy.conf:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
- 重新加载并重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
至此,所有 docker pull 操作均可畅享专线满速下载。
