使用 netsh 实现 WSL2 与 内网 网络资源互通

在基于 Windows 的开发环境中,Elastic 官方推荐使用 WSL2 进行开发。但与 WSL1 不同,WSL2 引入了虚拟化网络栈,即便开启类似镜像网络模式,也无法实现与宿主机网络的完全统一。

如果你所在的网络环境中 VPN 限制了非宿主机(例如 WSL2 虚拟机)的访问能力,那么在 WSL2 中连接公司内部资源就会遇到困难。为了解决这个问题,可以借助 Windows 的 netsh 工具,设置端口转发,实现 WSL2 间接访问 VPN 资源。


设置端口转发

使用以下命令将本地端口请求转发至目标资源所在的 IP 和端口:

netsh interface portproxy add v4tov4 listenport=9209 listenaddress=127.0.0.1 connectport=9209 connectaddress=<目标IP>

替换 <目标IP> 为实际需要访问的内网资源地址。

示例说明:

netsh interface portproxy add v4tov4 listenport=9209 listenaddress=127.0.0.1 connectport=9209 connectaddress=192.168.1.100

该命令的作用是:

  • Windows 会监听 127.0.0.1:9209
  • 当收到请求时,会自动转发到 192.168.1.100:9209
  • 这相当于把 Windows 设置成了一个“端口中继器”或“网络网关”

这样,WSL2 通过访问 localhost:9209 就可以间接连接到内网资源,从而绕开 VPN 对非宿主机的访问限制。


查看所有端口转发规则

netsh interface portproxy show all

输出示例如下:

Listen on ipv4:             Connect to ipv4:
Address         Port        Address         Port
--------------- ----------  --------------- ----------
127.0.0.1       9209        192.168.1.100   9209

删除转发规则

若不再需要某个转发规则,可以使用以下命令删除:

netsh interface portproxy delete v4tov4 listenport=9209 listenaddress=127.0.0.1

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐