一、说明
代理服务器(Proxy Server)是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。
代理服务器作为连接Internet(广域网)与Intranet(局域网)的桥梁,在实际应用中发挥着极其重要的作用。
Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同。
本文总结了一些常用Windows/Linux程序配置代理服务器的方法。
二、通用代理服务器配置
对于大多数Linux控制台程序,例如Debian或Ubuntu中的apt-get和aptitude命令、git命令、wget命令,这些程序都使用http_proxy和ftp_proxy环境变量来获取代理服务的配置。
Linux上代理的临时设置
# export http_proxy="http://username:password@proxyServer:port/"
# export https_proxy="http://username:password@proxyServer:port/"
# export ftp_proxy="http://username:password@proxyServer:port/"
# export no_proxy="127.0.0.1,192.168.124.0/16,*.example.com"
如果你的代理服务器需要用户名和密码才能访问,需要填写上面的username和passwd部分,否则的话,省略这两部分。
proxyServer为代理服务器的域名(如果能解析)或者IP。
no_proxy 设置你明确不需要走代理的IP 域名 网段之类,用逗号隔开,如网络要求访问外网走代理,访问内网无需走代理的情况。
# export http_proxy="http://proxyServer:port/"
# export https_proxy="http:/proxyServer:port/"
# export ftp_proxy="http://proxyServer:port/"
Linux上代理的永久设置
将代理设置添加到环境文件
# cat >> /etc/profile << EOF
export http_proxy="http://username:password@proxyServer:port/"
export https_proxy="http://username:password@proxyServer:port/"
export ftp_proxy="http://username:password@proxyServer:port/"
export no_proxy="127.0.0.1,192.168.124.0/16,*.example.com"
EOF
# source /etc/profile
Linux上代理的临时取消
# unset http_proxy
# unset https_proxy
# unset ftp_proxy
# unset no_proxy
windows操作系统代理设置
windows cmd代理设置(临时生效)
set http_proxy="http://username:password@proxyServer:port/"
set https_proxy="http://username:password@proxyServer:port/"
set ftp_proxy="http://username:password@proxyServer:port/"
set no_proxy="127.0.0.1,192.168.124.0/16,*.example.com"
windows 上浏览器代理设置
谷歌浏览器访问:chrome://settings/
其他浏览器代理设置,大同小异,无需赘言了!
三、docker相关的代理设置
因为某些原因,国内网络访问 Docker Hub 拉取官方 Docker 镜像时经常超时。怎么解决呢?可以使用 HTTP 代理来加速访问。
国内稍具规模的中大型技术公司应该有正常访问国外网站的代理服务器。
# mkdir -p /etc/systemd/system/docker.service.d
# vim /etc/systemd/system/docker.service.d/http-proxy.conf
###############################################################
[Service]
Environment="HTTP_PROXY=http://username:password@proxyServer:port/"
Environment="HTTPS_PROXY=http://username:password@proxyServer:port/"
Environment="NO_PROXY=localhost,127.0.0.1"
###############################################################
# systemctl daemon-reload
# systemctl restart docker
# docker info | grep -i proxy
打镜像时的代理临时设置
# docker build --help
# docker build \
--build-arg http_proxy="http://username:password@proxyServer:port/" \
--build-arg https_proxy="http://username:password@proxyServer:port/" \
-f Dockerfile \
-t sonatype/nexus3:3.5.2 .
四、参考
https://www.cnblogs.com/klb561/p/9175583.html
docker代理配置
https://blog.frognew.com/2017/01/docker-http-proxy.html
Control Docker with systemd
https://docs.docker.com/config/daemon/systemd/#httphttps-proxy