Skip to main content

Proxy config

在 Ubuntu 终端中设置 VPN 代理的完整指南 (适用于 HTTP/HTTPS/SOCKS 代理)

临时设置代理 (仅当前终端会话有效)

# HTTP/HTTPS 代理
export http_proxy="http://username:password@proxy_ip:proxy_port"
export https_proxy="http://username:password@proxy_ip:proxy_port"

# SOCKS5 代理 (如 Shadowsocks/V2Ray)
export all_proxy="socks5://username:password@proxy_ip:proxy_port"

# 验证设置
env | grep -i proxy

永久生效配置 (推荐方案)

# 创建代理配置文件
sudo nano /etc/profile.d/proxy.sh

# 添加以下内容 (按需修改) ▼
# HTTP/HTTPS 代理
export http_proxy="http://proxy_ip:proxy_port"
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy

# SOCKS5 代理
# export all_proxy="socks5://proxy_ip:proxy_port"

# 排除本地地址 (重要!)
export no_proxy="localhost,127.0.0.1,::1,.internal"

APT 包管理器专用代理

sudo nano /etc/apt/apt.conf.d/80proxy

# 添加以下内容 ▼
Acquire::http::Proxy "http://proxy_ip:proxy_port";
Acquire::https::Proxy "http://proxy_ip:proxy_port";

常用应用单独配置

# Git 代理
git config --global http.proxy http://proxy_ip:proxy_port
git config --global https.proxy http://proxy_ip:proxy_port

# Wget 代理
echo "use_proxy = on
http_proxy = http://proxy_ip:proxy_port
https_proxy = http://proxy_ip:proxy_port" > ~/.wgetrc

# SSH 代理 (通过 ProxyCommand)
# 在 ~/.ssh/config 添加 ▼
Host github.com
User git
ProxyCommand nc -X 5 -x proxy_ip:proxy_port %h %p

验证代理连通性

# 检查公网IP
curl -4 ifconfig.co
curl --proxy $http_proxy -4 ifconfig.co

# 测试HTTPS连接
curl -Iv https://www.google.com

# 测试下载速度
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.4-desktop-amd64.iso

高级配置技巧

# 代理自动切换 (根据网络环境)
使用 PAC 文件配置:
export AUTO_PROXY="http://proxy.example.com/proxy.pac"
gsettings set org.gnome.system.proxy autoconfig-url $AUTO_PROXY

# 带认证的代理 (URL编码特殊字符)
username=user@domain
password=P@ssw0rd!
encoded_auth=$(echo -n "$username:$password" | base64)
export http_proxy="http://$encoded_auth@proxy_ip:proxy_port"

# 系统级守护进程代理
sudo systemctl edit docker.service # 示例为Docker服务
[Service]
Environment="HTTP_PROXY=http://proxy_ip:proxy_port"
Environment="HTTPS_PROXY=http://proxy_ip:proxy_port"

常见问题排查

# 查看当前生效代理
env | grep -i proxy

# 检查端口监听
ss -tulnp | grep proxy_port

# 测试代理服务器连通性
telnet proxy_ip proxy_port
nc -zv proxy_ip proxy_port

# 捕获网络请求 (需要root权限)
sudo tcpdump -i any port proxy_port -vvn

快速禁用代理

# 临时禁用
unset http_proxy https_proxy all_proxy

# 永久禁用
sudo rm /etc/profile.d/proxy.sh /etc/apt/apt.conf.d/80proxy

注意事项:

  • 将 proxy_ip 和 proxy_port 替换为实际代理服务器地址
  • 含有特殊字符的密码需要 URL 编码处理
  • 生产环境建议使用 VPN 客户端工具 (如 OpenConnect、WireGuard)
  • 敏感凭证建议使用密钥管理器存储,避免明文保存