现在很多软件,需要设置代理才能正常工作,本文记录各种软件设置代理方法,方便工作学习
参考文章
各种常用软件设置代理
linux代理加速
yum设置代理
注意: 如果被代理软件和代理软件不在同一个机器,需要代理软件开启允许局域网代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| +--------+ | | | router | | | +-+---+--+ ^ ^ | | Allow LAN | | +---------+ | +---------+ | | | proxy | Unproxied traffic | +--------> | | | +---------+ | | | | | | proxy taffic | | +--+----+-------+ | | |docker daemon | | | +---------------+
|
检查代理是否有效
1 2 3
| curl -x 127.0.0.1:10809 cip.cc curl -x 127.0.0.1:10809 www.google.com
|
apt 代理
Apt 不会用 HTTP Proxy 环境变量. 它使用独立的配置文件。
在 /etc/apt/apt.conf.d/ 创建新的配置文件:
1 2 3 4 5 6 7
| sudo vim /etc/apt/apt.conf.d/proxy.conf
Acquire { HTTP::proxy "http://127.0.0.1:10809"; HTTPS::proxy "http://127.0.0.1:10809"; }
|
docker 设置代理
docker 拉取镜像设置代理
除了上文中使用socks5代理,也可以使用http代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| vim /usr/lib/systemd/system/docker.service
在[service]下面添加,端口和IP根据自己修改 Environment="HTTP_PROXY=http://10.0.0.1:7890" Environment="HTTPS_PROXY=http://10.0.0.1:7890" Environment="NO_PROXY=localhost,127.0.0.1,*.aliyuncs.com,*.mirror.aliyuncs.com"
systemctl daemon-reload systemctl restart docker
方式2 创建 dockerd 相关的 systemd 目录,这种 .d 目录下的配置将覆盖默认配置 sudo mkdir -p /etc/systemd/system/docker.service.d sudo vim /etc/systemd/system/docker.service.d/proxy.conf
[Service] Environment="HTTP_PROXY=http://127.0.0.1:10809/" Environment="HTTPS_PROXY=http://127.0.0.1:10809/" Environment="NO_PROXY=127.0.0.1,localhost,192.168.*,*.example.com"
sudo systemctl daemon-reload sudo systemctl restart docker
检查确认环境变量已经正确配置:
sudo systemctl show --property=Environment docker
|
docker内部容器访问网络设置代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| vim ~/.docker/config.json { "proxies": { "default": { "httpProxy": "http://10.0.0.1:10809", "httpsProxy": "http://10.0.01:10809", "noProxy": "localhost,127.0.0.1,.example.com" } } }
在容器运行阶段,如果需要代理上网,只需要加上环境变量,比如使用 docker-compose 的话, 其配置文件里的环境变量,增加下面三部分即可。
environment: - http_proxy="192.168.1.11:10809" - https_proxy="192.168.1.11:10809" - no_proxy="localhost,127.0.0.1,.example.com"
|
Docker Build 代理
虽然 docker build 的本质,也是启动一个容器,但是环境会略有不同
用户级配置无效。在构建时,需要注入 http_proxy 等参数。
1 2 3 4 5
| docker build . \ --build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \ --build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \ --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \ -t your/image:tag
|
设置环境变量使某些程序走代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| export http_proxy="http://127.0.0.1:10809" # http 流量走的代理 export https_proxy="http://127.0.0.1:10809" export no_proxy=127.0.0.1,localhost,192.168.* # 不进行代理的网段
如果运行了一个 bash 脚本,即便终端执行了上面的命令,默认脚本不会走代理。因为环境变量仅在当前终端有效; 可以编辑脚本文件,在里面开头,放上上面的三行,就可以让脚本在执行时,也走代理。
取消代理 unset http_proxy https_proxy no_proxy
有验证的代理: export http_proxy="Username:Password@proxy-server-ip:10809" export https_proxy="Username:Password@proxy-server-ip:10809"
|
Maven
1 2
| MAVEN_OPTS="-DsocksProxyHost=socks5 -DsocksProxyPort=7070" mvn clean package
|
yum设置代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 全局设置 假设我们想要为 /etc/yum.repos.d/ 下的所有仓库设置代理,则可以修改 /etc/yum.conf 文件,在该文件尾部添加如下一行: proxy=http://ip:port
特定仓库 比如CentOS-Base.repo中有三个仓库:base、updates和extras。我们只想给base仓库设置代理, 则只需要在对应的仓库后面添加一行,如下: [base] name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 proxy=http://ip:port
|
git 设置代理
1 2 3 4 5 6 7 8 9 10 11
| socks5代理 git config --global http.proxy socks5://127.0.0.1:7890 git config --global https.proxy socks5://127.0.0.1:7890
http代理 git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890
查看全局设置 git config --global --list
|
pip设置代理
linux
1 2 3 4
| vim /etc/profile: export http_proxy='http://代理服务器IP:端口号' export https_proxy='http://代理服务器IP:端口号' source /etc/profile
|
windows
在C:\User\用户目录下,新建pip文件夹,然后在该文件夹下新建pip.ini文件。填写如下内容:
1 2 3 4 5
| [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple proxy = http://XXXX.com:port [install] trusted-host=pypi.tuna.tsinghua.edu.cn
|
Linux设置代理脚本
为了方便一些常见的代理切换,我写了一个简单的脚本。
linux代理切换脚本