1. 临时设置 sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8000/" update 2. 永久设置 创建/etc/apt/apt.conf
touch /etc/apt/apt.conf 写入如下内容:
Acquire::http::Proxy "http://yourproxyaddress:proxyport"; 如果proxy需要密码,则格式如下:
Acquire::http::Proxy "http://username:password@yourproxyaddress:proxyport"; Reference: https://www.jianshu.com/p/fdae9cb5181b
https://askubuntu.com/questions/257290/configure-proxy-for-apt
1. 代理服务 1.1 获取Windows主机ip并使用其代理 可以在wsl中安装代理软件,但如果win主机上也有代理软件的话,会感觉有点乱。这里让wsl使用主机的代理。
我使用的代理软件是clash,这里首先要确保clash允许局域网
确认完clash支持局域网后,我们来看如何从wsl中获取win主机的ip地址。 在Windows主机上,我们可以用ipconfig命令来查看本地的ip地址
ipconfig 如图所示,命令行输出了在wsl网络中Win主机的ip地址。(wsl和windows处于一个网络中,这里得到的是windows在这个网络中的ip地址)。
如果我们想使用windows的代理,那么可以使用如下命令(在wsl中):
export ALL_PROXY="http://172.28.48.1:7890" 这里, 172.28.48.1是Windows在这个网络中的ip地址,7890是代理接口。
通过访问google查看是否代理成功: 1.2 使用脚本自动获取ip地址并设置代理 通过1.1我们知道,可以在Windows主机中获取其在wsl网络中的ip地址,那我们是否可以在wsl中获取到这个地址呢?
cat /etc/resolv.conf 得到类似下面的输出:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf: # [network] # generateResolvConf = false nameserver 172.28.48.1 这里的nameserver,是不是就和我们在Windows下获取到的ip地址是一样的。
我们通过一个脚本来自动获取到这个ip地址,并将其设置为代理地址:
#!/bin/bash host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ") # 获取ip地址 echo $host_ip # 输出ip地址 export ALL_PROXY="http://$host_ip:7890" # 设置代理,7890为我的代理端口 curl -I https://www....