常用代理配置
在开发过程中,由于众所周知的原因,不可避免的要使用代理,而各个软件使用代理的方式不尽相同,本文对常用软件的代理设置进行简单的整理。
Shell
最方便的就是直接在命令行里面设置代理,这样设置后大部分在命令行里执行的程序,设置方式如下:
1
2export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
也可以将上述命令写入 ~/.bashrc
文件中自动执行
为便于书写,这里统一使用
猫猫头
软件的默认端口 7890,实际使用时根据代理服务端口进行相应修改即可
Docker
Docker 使用代理主要分为以下几种情形:
- docker 本身通过代理来下载镜像
- docker build 构建镜像时执行的命令使用代理进行访问
- docker run 运行容器时容器内部使用 host 主机的代理进行访问
接下来对这几种情况的代理配置逐一说明
1. Docker 本身代理配置
在执行docker pull时,是由守护进程dockerd来执行。因此,代理需要配在dockerd的环境中。而这个环境,则是受systemd所管控,因此实际是systemd的配置。
1 | sudo mkdir -p /etc/systemd/system/docker.service.d |
在这个proxy.conf文件(可以是任意*.conf的形式)中,添加以下内容:
1 | [Service] |
重启生效
1 | sudo systemctl daemon-reload |
2. Docker build 代理配置
1 | docker build \ |
3. Docker run 代理配置
docker run 使用主机代理
Wget
wget 通常用来下载文件,部分时候也会用到代理。wget 通过代理访问主要有以下三种方式:
直接设置系统环境变量
修改配置文件:
编辑配置文件:
1
vim ~/.wgetrc
写入以下内容即可:
1
2
3http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890
use_proxy=on使用
-e
参数1
wget -e "http_proxy=http://127.0.0.1:7890" -e "https_proxy=http://127.0.0.1:7890" https://google.com
Microsoft Store
这个要单独拉出来讲一讲(点名批评),因为这个玩意他不但不走系统代理,而且在开系统代理之后会连接不上服务器。
1 | CheckNetIsolation.exe loopbackexempt -a -p=S-1-15-2-1609473798-1231923017-684268153-4268514328-882773646-2760585773-1760938157 |