很多 Linux 程序支持 HTTP_PROXY 和 HTTPS_PROXY env 环境变量这种通用方式设置 HTTP 代理。
export HTTP_PROXY=http://127.0.0.1:1080
export HTTPS_PROXY=http://127.0.0.1:1080
一些程序还支持特有的参数或配置文件方式设置代理。
代理地址协议类型: socks5://, http://
curl
支持 http_proxy (注意必须小写), HTTPS_PROXY, ALL_PROXY 等环境变量设置访问某种协议url时使用的代理。注意 http_proxy 必须小写,其他环境变量名大小写均可。
也可以使用 -x 参数设置代理。
curl -I https://ipinfo.io -x http://127.0.0.1:1080
lynx
vim /etc/lynx-site.cfg
http_proxy:http://127.0.0.1:1080
npm
npm -g config set proxy http://127.0.0.1:1080
npm -g config set https-proxy http://127.0.0.1:1080
git
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
apt
vim /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://127.0.0.1:1080/";
yum (CentOS & RedHat)
vim /etc/yum.conf
[main]
proxy=http://127.0.0.1:1080/
#proxy_username=username
#proxy_password=paswword
gem (ruby)
gem install -p http://127.0.0.1:1080/ rails
For permanent setting:
vi ~/.gemrc
http_proxy: http://127.0.0.1:1080/
docker
docker systemd 代理设置
适用于 docker pull 等 cli 操作。
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:1080"
Environment="HTTPS_PROXY=http://127.0.0.1:1080"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
设置 NO_PROXY 环境变量为不使用代理连接的 IP 和 hostname 列表,以逗号分割。(匹配 hostname 规则类似 dnsmasq,即除非以 "." 开头,否则 hostname 也匹配子域名。可以使用 * 匹配域名的某个分段部分)
dockerd代理的修改实际上是改systemd的配置,因此需要重载systemd并重启dockerd才能生效。
systemctl daemon-reload
systemctl restart docker
systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80 HTTPS_PROXY=https://proxy.example.com:443 NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp
注: WSL2 等环境下 systemd 不可用 (无 pid=0 process),测试直接设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量即可。
docker container 代理设置
{
"proxies":{
"default":{
"httpProxy": "http://127.0.0.1:1080",
"httpsProxy": "http://127.0.0.1:1080",
"noProxy": "*.test.example.com,.example2.com"
}
}
}
设置后新创建的 container 默认会自动设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量。