1. 设置系统代理
1.1 设置 http 代理
1.1.1 只在当前 shell 生效
export http_proxy="http://<user>:<password>@<proxy_server>:<port>"
export https_proxy="http://<user>:<password>@<proxy_server>:<port>"
export ftp_proxy="http://<user>:<password>@<proxy_server>:<port>"
或
export all_proxy="http://<user>:<password>@<proxy_server>:<port>"
注意:
- 其中 <user>:<password> 不一定需要,如果没有可以不设置,则变为 export http_proxy="http://<proxy_server>:<port>"
- 有些软件识别不了小写版本,可以在再设置一份大写版本 HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY
1.1.2 全局生效
vim /etc/profile #编辑全局配置文件
#TODO -> 在文件末尾添加 1.1.1 中的代理代码,保存后关闭文件
source /etc/profile #试配置文件生效
配置文件实例:
1.2 为 WSL Ubuntu 18.04 LTS 配置 Windows 系统正在使用的 sock5 代理
1、安装 python pip (如果安装失败,关闭终端然后重新打开一个终端,重新安装)
apt install python-pip
2、升级 pip (如果安装失败,关闭终端然后重新打开一个终端,重新安装)
pip install --upgrade pip
3、安装 genpac 工具(如果安装失败,关闭终端然后重新打开一个终端,重新安装)
pip install genpac
4、生成配置
#TODO -> 切换到想存配置文件的路径
genpac --proxy="SOCKS5 127.0.0.1:1080" -o autoproxy.pac --gfwlist-url="https://raw .githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"
5、编辑 /etc/profile 在文件最后添加,具体端口配置和 ss 客户端保持一致。这里可以参考 1.1 的两种设置方法。
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
export ftp_proxy=http://127.0.0.1:1080
6、source /etc/profile 让配置生效
7、使用 curl www .google.com 查看代理是否开启成功。
2. 分别给软件设置代理
经过 1,大部分软件都可以走代理了,但是还是有个别软件走不了代理,需要针对性设置
2.1 为 apt 设置 http 代理
2.1.1 方法1
1、Create a new configuration file named proxy.conf
sudo touch /etc/apt/apt.conf.d/proxy.conf
2、Open the proxy.conf file in a text editor
sudo vim /etc/apt/apt.conf.d/proxy.conf
3、Add the following line to set your HTTP proxy
Acquire::http::Proxy "http://<user>:<password>@<proxy_server>:<port>";
4、Add the following line to set your HTTPS proxy
Acquire::https::Proxy "http://<user>:<password>@<proxy_server>:<port>";
5、Save your changes and exit the text editor
6、Your proxy settings will be applied the next time you run Apt.
7、效果图
2.1.2 方法2
create a new file named proxy.conf under the /etc/apt/apt.conf.d directory, and then add the following lines:
Acquire {
HTTP::proxy "http://<user>:<password>@<proxy_server>:<port>";
HTTPS::proxy "http://<user>:<password>@<proxy_server>:<port>";
}