无需指定Windows IP ,一劳永逸的 WSL2 代理服务器配置
为了复现一篇论文的实验结果,我需要在 Linux 环境下配置深度学习的开发环境,为此需要配置 WSL 的网络代理以实现科学上网。
网络上绝大部分教程都是获取 Windows 主机的 IP 并通过配置全局变量进行代理的方式,这种方式配置最大的问题是一旦网络环境改变, IP 地址也会发生改变,还需要重新配置。不过文章WSL2 中访问 Windows 的代理的最简易方案中则提到了一种利用 Windows 自带的 mDNS 实现建议配置的方法,经过测试在 Win 11 的 WSL2 上稳定可用。
准备工作
首先,需要得到你的代理工具的端口并打开其局域网功能,在代理工具中一般都能查看。我使用的是 Clash ,其默认端口为
7890
。你还需要找到你的主机名称(电脑名称),推荐以下两种方法
- Win 11 下打开
设置\系统\系统信息\设备规格
,设备名称即为主机名称 - 控制台输入
systeminfo
,输出的主机名即为主机名称
- Win 11 下打开
测试 mDNS 是否可用
在 WSL 中执行
1 | ping <你的主机名>.local |
能够收到返回包则继续接下来的步骤,否则说明你的 Windows 版本不支持 mDNS 。
修改全局变量配置代理
用以下命令打开 .bashrc
:
1 | sudo vim .bashrc |
使用 vim 在第一行插入:
1 | export HTTP_PROXY="http://<你的主机名>.local:<端口>" |
这里我的端口就是 7890
,主机号就是前文查到的字符串。
测试
自此, WSL 的代理就一劳永逸配置好了,重启也不用担心失效了。为了测试是否成功,在 Windows 主机中打开代理工具。再打开 WSL ,输入以下指令:
1 | wget google.com |
成功通过代理返回 HTML 则说明代理成功了。
不建议使用
ping
测试,因为有些网页不允许被ping
通。因此使用wget
即可。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alrisha!