现在很多软件,需要设置代理才能正常工作,本文记录各种软件设置代理方法,方便工作学习

参考文章
各种常用软件设置代理
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
# HTTP 代理
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 #重新加载service配置文件
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"
# 如果 `NO_PROXY=*`,那么所有请求都将不通过代理服务器

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 构建过程中使用 socks 代理下载依赖包
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
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
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代理切换脚本