我正在通过 wsl2(kali linux)使用 openvpn 连接到 VPN。我遇到的问题如下:我无法通过浏览器访问网络中的站点,因为 wsl2 使用 windows API 跟踪 URL,而 windows 未连接到 VPN。我如何通过 wsl2 访问浏览器中的站点?
详细信息:我的要求是使用我的桌面浏览器连接到托管在远程服务器上的站点,但通过 WSL 路由连接,因为我通过使用 WSL 的 VPN 连接到服务器所在的网络。
答案1
我在这里先简单说一下,也许能帮你入门。稍后我会回来补充一些细节。
我不认为这很容易,但我确实思考这是可能的。我还没有从 WSL 内部进行过 openvpn 连接,但我认为我可以直观地看到流程。
困难的部分在于您要将 WSL2(Hyper-V)虚拟 NIC 连接到 VPN,因此 WSL2 和 VPN 端点之间的所有流量都经过加密,Windows NIC 无法接入它(即使它正在“托管”虚拟网络)。
好消息是是一种从 Windows “接入” WSL 网络的方法,尽管有点“黑客”。再次重申,我只是在这里列出我认为的基本内容可能工作。我稍后会回来提供更多详细信息。
socat
是一种网络工具,可让您通过多种不同的链接类型重定向网络流量。有趣的是,其中一个链接是 stdio。我已使用 socat 命令成功连接到 WSL2 stdio wsl
。(参见本答案中的“选项 3”)。
我希望您可以在 WSL1 实例中设置代理服务器,并通过 stdio 将端口映射到在 WSL2 实例中运行的 socat。然后,Windows 浏览器将连接到代理服务器并能够通过 WSL2 VPN 隧道传输出去。
甚至有一个socat
为 Windows 编译的版本可能会进一步简化这一过程,但我还没有尝试过。
就像我在一开始所说的那样——这并不容易。
暂时没时间了。你认为这是你想走的路吗?