0%

Linux配置网络代理

网络代理

《Linux配置SNAT上网》一文中,我们了解到,通过SNAT的方式能够让局域网中所有主机都能访问外网。
而网络代理,也能让局域网中所有主机都能访问外网。并且,如果网络代理支持科学上网,那么所有使用这个代理的主机也可以科学上网。

本文我们就来学习一下Linux中常见的网络代理配置方法,参考文档:

已知网络代理的IP和PORT为:192.168.56.1:7890

bash环境网络代理

bash环境网络代理设置,是适用于全局的,因为绝大部分软件都会从环境变量中读取数据,比如curl命令、yum命令、wget命令等等。

临时配置

1
export https_proxy=http://192.168.56.1:7890 http_proxy=http://192.168.56.1:7890 all_proxy=socks5://192.168.56.1:7890 ftp_proxy=http://192.168.56.1:7890 no_proxy=localhost,127.0.0.1,192.168.56.0/24

这里的no_proxy需要注意,不同的软件对于它有不同的处理。最典型的例子:

  • example.com:大部分软件都支持精确匹配和下一级域名匹配,例如还可以匹配subdomain.example.com
  • .example.com:curl剥离前缀.,对于example.com不会使用代理;wget不会剥离前缀.,对于example.com会使用代理
  • 192.168.56.0/24:只有Go和Ruby支持这种CIDR块

详情参考We need to talk: Can we standardize NO_PROXY?

永久生效

1、写入配置内容到.bashrc文件中

1
2
3
4
5
export https_proxy=http://192.168.56.1:7890 
export http_proxy=http://192.168.56.1:7890
export all_proxy=socks5://192.168.56.1:7890
export ftp_proxy=http://192.168.56.1:7890
export no_proxy=localhost,127.0.0.1,192.168.56.0/24

写到.bashrc,无论是登录session还是非登录session,都可以使用这些变量,详情参考bash_profile和bashrc的区别

2、使生效

1
source .bashrc

wget代理

编辑文件/etc/wgetrc,添加内容:

1
2
3
http_proxy = http://192.168.56.1:7890  
https_proxy = http://192.168.56.1:7890
ftp_proxy = http://192.168.56.1:7890

yum代理

编辑文件/etc/yum.conf,添加内容:

1
proxy=http://192.168.56.1:7890

浏览器上网代理

以Firefox浏览器为例:
Edit -> Preferences -> Advanced -> Network
在Connection下点击Settings,manual proxy configuration里设置IP和PORT。

docker pull代理

1、创建docker配置目录

1
mkdir /etc/systemd/system/docker.service.d

2、添加代理配置

1
vim /etc/systemd/system/docker.service.d/http-proxy.conf

写入内容为:

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://192.168.56.1:7890"
Environment="HTTPS_PROXY=http://192.168.56.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.56.200,harbor.voidking.com"

需要注意的是,20.10.18和更早的docker版本,NO_PROXY不支持CIDR,详情参考NO_PROXY does not support CIDR notation

3、重启docker

1
2
systemctl daemon-reload
systemctl restart docker

4、查看docker代理

1
2
systemctl show docker --property Environment
docker info | grep Proxy

docker build代理

docker build时,容器内需要使用pip下载依赖。

1
2
3
4
5
6
docker build \
--network=host \
--build-arg HTTP_PROXY=http://192.168.56.1:7890 \
--build-arg HTTPS_PROXY=http://192.168.56.1:7890 \
-t voidking/demo:v1.0.0 . \
-f Dockerfile_test

pip代理

执行pip命令时直接指定代理

1
pip install xxx --proxy http://192.168.56.1:7890
  • 本文作者: 好好学习的郝
  • 本文链接: https://www.voidking.com/dev-linux-network-proxy/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~