Linux/Proxy

Linux/Proxy

很多 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 代理设置

/root/.docker/config.json

{
        "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 环境变量。


Last update: 2022-07-28 07:58:47 UTC