在Linux下设定系统代理方法
Ubuntu
系统代理
首先,验证代理是否有效:
curl -x http://<proxy-host>:<proxy-port> http://example.com
在.bashrc中添加如下内容以设定代理:
# enable proxy
export http_proxy_value="http://your_proxy.com"
alias proxy_on='export http_proxy=$http_proxy_value; export HTTP_PROXY=$http_proxy_value; export https_proxy=$http_proxy_value; export HTTPS_PROXY=$http_proxy_value; echo "Proxy enabled: $http_proxy_value"'
# disable proxy
alias proxy_off='unset http_proxy; unset https_proxy; unset HTTP_PROXY; unset HTTPS_PROXY; echo "Proxy disabled"'
启用代理:
proxy_on
关闭代理:
proxy_off
验证:
curl http://example.com
注意,这里不能通过ping测试代理生效情况,因为ping走的是ICMP协议,但代理是http(s)。因此,即便设置了代理,也可能无法ping通目标网站。
Docker代理
上面的方法设置的是shell的代理,但docker是系统服务,并不会继承.bashrc中的设定,因此,需要单独为docker配置代理。
sudo mkdir -p /etc/systemd/system/docker.service.d
填入以下内容:
[Service]
Environment="HTTP_PROXY=http://your_proxy.com"
Environment="HTTPS_PROXY=http://your_proxy.com"
Environment="NO_PROXY=localhost,127.0.0.1"
重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证代理情况:
sudo systemctl show --property=Environment docker