我有一台 Windows 10 计算机,通过以下方式连接到互联网px-代理使用 localhost 和端口 1234 无需登录即可正常工作;PowerShell & Co. 可以成功连接到互联网。现在我在 WSL2 上使用 Ubuntu 20.04 LTS,从那里我无法连接到互联网。
我试过
> more etc/resolv.conf
nameserver 8.8.8.8
- 导出代理设置
.bashrc
(也尝试使用端口 4000):
> tail .bashrc
...
export http_proxy="123.456.78.9:1234";
export https_proxy="123.456.78.9:1234";
- 配置
/etc/apt/apt.conf/proxy.conf
(也尝试使用端口 4000):
> more /etc/apt/apt.conf.d/proxy.conf
Acquire {
HTTP::proxy "http://123.456.78.9:1234";
HTTPS::proxy "http://123.456.78.9:1234";
}
netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=123.456.78.9
和组合。我确定了主机的 IP...
> ipconfig
...
Ethernet adapter vEthernet (WSL):
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 123.456.78.9
Subnet Mask . . . . . . . . . . . : abc.abc.abc.a
Default Gateway . . . . . . . . . :
...与 WSL2 Ubuntu 相匹配:
> ip route
default via 123.456.78.9 dev eth0
123.456.78.9/10 dev eth0 proto kernel scope link src xyz.xyz.ba.b
现在我对各种可能性感到迷茫,不确定我是否在这里做了一些明显错误的事情,或者我是否忽略了什么。提前感谢您的任何提示!:)
答案1
终于,我明白了 :)
因此,要通过 WSL2 上的 Ubuntu 发行版的代理访问互联网:
首先,获取宿主机的ip地址:
> ipconfig
...
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . : reddog.microsoft.com
IPv4 Address. . . . . . . . . . . : 987.654.32.1
Subnet Mask . . . . . . . . . . . : xyz.xyz.xyz.z
Default Gateway . . . . . . . . . : 11.111.111.1
etc/resolv.conf
保持原样- 将主机的 IP 地址和代理运行的端口添加到 .bashrc:
export http_proxy="987.654.32.1:1234"
export https_proxy="987.654.32.1:1234"
- 添加代理和端口
/etc/apt/apt.conf.d/proxy.conf
:
Acquire::http::Proxy "http://987.654.32.1:1234/";
Acquire::https::Proxy "http://987.654.32.1:1234/";
- 最后,在端口 1234 上向 Windows 防火墙添加适当的规则(否则,WSL2 无法与代理通信)。这里要小心!
答案2
在你的~/.profile
尝试中
WINDOWS_IP=$(powershell.exe -Command '(Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias "vEthernet (WSL)").IPAddress | Write-Host')
export http_proxy="http://${WINDOWS_IP}:3128"
export https_proxy=$http_proxy
检查端口