本文撰写时基于的系统和版本是 Ubuntu 22.04, 如果你使用其他版本或其他发行版,则下文提到的部分步骤与你的实际情况可能有所出入。

在 WSL2 中配置环境时,依赖下载经常因为网络问题极其缓慢甚至失败。在整合了各方资料及个人实践后,我总结了在 WSL2 中通过 Clash Verge 设置代理的方法,供大家参考。

在 Clash 客户端内的操作

打开客户端的局域网连接开关。
记录下客户端内的端口,如这里是 7897. 一般默认端口为 7897

修改 .bashrc

使用文本编辑器编辑 .bashrc,在文件末尾根据第 1 步记录的数据,加入三行内容:

1
nano ~/.bashrc
1
2
3
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export http_proxy="http://$host_ip:[端口]"
export https_proxy="http://$host_ip:[端口]"

如图所示,修改完后保存即可。

使 root 用户保留先前设置的环境变量

在使用 sudo 执行命令时,之前设置的环境变量并不会生效,需要进一步设置。
输入 sudo visudo

取消相应行的注释 (删除行首的 #) 即可.

如果你使用 Ubuntu 20.04, 加入以下内容并保存。

1
Defaults env_keep="http_proxy https_proxy"

测试

输入 source ~/.bashrc 使文件修改生效。

可以通过输入 echo $http_proxy 验证修改是否成功。
输入 wget www.google.com, 可以发现连接成功,至此大功告成,如图所示。

参考资料

为 WSL2 一键设置代理 (zhihu.com)
sudo保持前用用户的env环境变量 (chenyudong.com, 已失效)