
在国内 VPS 上优雅使用代理(Docker + GitHub 一键方案)
一、Docker 使用代理(systemd 级,一键命令,逐行注释)
作用:
docker pulldocker build- CI / 后台服务
不影响你普通 SSH shell 网络
# ================== 代理参数(以后只改这里) ==================
PROXY_USER="YOUR_USER" # 代理用户名(没有就留空)
PROXY_PASS="YOUR_PASS" # 代理密码(没有就留空)
PROXY_HOST="YOUR_PROXY_IP" # 代理服务器 IP 或域名
PROXY_PORT="YOUR_PROXY_PORT" # 代理端口
# ================================================================
# 如果填写了用户名,则拼接 user:pass@
# 如果没有用户名,则不使用认证信息
if [ -n "$PROXY_USER" ]; then
PROXY_AUTH="${PROXY_USER}:${PROXY_PASS}@" # 含认证的代理前缀
else
PROXY_AUTH="" # 无认证
fi
# 创建 Docker systemd 覆盖目录(不存在则创建)
sudo mkdir -p /etc/systemd/system/docker.service.d
# 写入 Docker 的代理配置文件
sudo tee /etc/systemd/system/docker.service.d/proxy.conf >/dev/null <<EOF
[Service]
Environment="HTTP_PROXY=http://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}" # Docker HTTP 代理
Environment="HTTPS_PROXY=http://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}" # Docker HTTPS 代理
Environment="NO_PROXY=localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" # 内网直连
EOF
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 重启 Docker 服务使代理生效
sudo systemctl restart docker
# 查看 Docker 当前生效的代理环境变量(用于验证)
sudo systemctl show --property=Environment docker | sed 's/Environment=//'
验证(任选一个):
docker pull hello-world # 拉取测试镜像
docker pull ghcr.io/library/nginx:latest # 拉海外镜像
二、Shell 永久使用代理(GitHub / curl / 包管理器)
作用:
git clonecurl / wgetpip / npm / go- 每次 SSH 登录自动生效
# ================== 代理参数(以后只改这里) ==================
PROXY_USER="YOUR_USER" # 代理用户名(没有就留空)
PROXY_PASS="YOUR_PASS" # 代理密码(没有就留空)
PROXY_HOST="YOUR_PROXY_IP" # 代理服务器 IP 或域名
PROXY_PORT="YOUR_PROXY_PORT" # 代理端口
# ================================================================
# 判断是否需要拼接认证信息
if [ -n "$PROXY_USER" ]; then
PROXY_AUTH="${PROXY_USER}:${PROXY_PASS}@" # 含认证
else
PROXY_AUTH="" # 无认证
fi
# 如果 bashrc 中不存在标记,则追加代理配置
grep -q "### GLOBAL PROXY BEGIN" ~/.bashrc || cat <<EOF >> ~/.bashrc
### GLOBAL PROXY BEGIN
export http_proxy="http://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}" # HTTP 代理
export https_proxy="http://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}" # HTTPS 代理
export HTTP_PROXY="\$http_proxy" # 兼容大写变量
export HTTPS_PROXY="\$https_proxy" # 兼容大写变量
export ALL_PROXY="socks5://${PROXY_AUTH}${PROXY_HOST}:${PROXY_PORT}" # SOCKS5(Git 常用)
### GLOBAL PROXY END
EOF
# 立即让当前 shell 生效
source ~/.bashrc
验证:
curl https://api.github.com # 测试 GitHub API
curl ifconfig.me # 查看出口 IP(是否为代理 IP)
三、如何判断“真的成功了”(一句话版)
curl ifconfig.me
- 显示 海外 IP → ✅ 代理生效
- 显示 国内 VPS IP → ❌ 没走代理
四、总结一句话
国内 VPS 不装代理,只作为代理客户端使用
Docker 和 Shell 分开配置,稳定、干净、好维护
以后换代理,只改 4 个参数
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









暂无评论内容