WSL2走主机IP地址代理的方式

前言

工作需求导致需要使用到WSL2,git的时候出现网络原因无法拉取。故记录一下走完整个WSL2代理的流程

WSL1 和 WSL2 网络的区别

在 WSL1 时代,由于 Linux 子系统和 Windows 共享了网络端口,所以访问 Windows 的代理非常简单。例如 Windows 的代理客户端监听了 8000 端口,那么只需要在 Linux 子系统中执行如下命令,就可以让当前 session 中的请求通过代理访问互联网。

export ALL_PROXY="http://127.0.0.1:8000"
但是 WSL2 基于 Hyper-V 运行,导致 Linux 子系统和 Windows 在网络上是两台各自独立的机器,从 Linux 子系统访问 Windows 首先需要找到 Windows 的 IP。

具体流程

这里使用到的魔法软件是clash-Verge,可以在GitHub上下载到
clash-verge Github地址
自己配置好代理之后,就可以进行WSL2的代理配置了。

选择好代理,选择全局模型、开启代理,然后在软件的配置页面选择:


image


打开局域网连接,端口配置为默认的7890即可。然后点击局域网连接旁边的网络图标,查看主机的IPV4地址:


image

临时配置

进入WSL2的操作系统当中,执行:

export http_proxy="192.168.0.1:7890"
export https_proxy="192.168.0.1:7890

永久配置

如果你需要永久设置这些环境变量,可以将这些设置添加到shell 配置文件中(如 ~/.bashrc 或 ~/.zshrc),在 WSL 中依次运行:# 将 http 代理地址永久写入WSL的环境变量

echo 'export http_proxy="192.168.0.1:7890"' >> ~/.bashrc 
# 将 https 代理地址永久写入WSL的环境变量
echo 'export https_proxy="192.168.0.1:7890"' >> ~/.bashrc
# 重启环境变量
source ~/.bashrc

测试

测试之前记得打开魔法软件的全局代理和系统代理
然后执行:

# 测试 http 链接
curl -I http://example.com
# 测试 https 链接
curl -I https://example.com 

如下,说明配置成功了,enjoy yourself~~~


image

posted @ 2025-02-20 15:01  笑眯眯办大事  阅读(2307)  评论(0)    收藏  举报