WSL设置内网访问
文章来源:https://www.yuque.com/hhun/code/wsl_interface
获取虚拟机ip及端口转发
因为每次都会用wsl2虚拟机分配一个ip所以使用windows自带的端口转发命令netsh可以实现在获取了虚拟机ip之后转发至wsl2进而进行访问。
注意:WSL2不能设置为固定IP,否则会出现很多不可意料的问题。
【WSL子系统服务器管理】可以批量管理转发端口:点击下载
WSL每次重启后IP都会发生变化,每次启动WSL后,需要在宿主机清空WSL端口映射,并且添加WSL端口映射。
1、获得虚拟机ip
用管理员身份打开PowerShell输入命令 arp -a
回车
如图所示虚拟机ip为 172.25.140.5
(每次启动都会变)
2、设置端口转发(需要管理员权限运行)
输入命令
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.25.140.5
listenport=【宿主机Windows平台监听端口】
listenaddress=【宿主机Windows平台监听IP,*或0.0.0.0为所有IP】
connectport=【wsl2平台监听端口】
connectaddress=【wsl2平台ip】
3、然后查看下端口转发状态
输入命令
netsh interface portproxy show all
如图所示端口转发成功
4、然后查看本机的局域网ip地址
输入CMD命令 ipconfig /all
找个在局域网的电脑访问一下本机的局域网ip地址 192.168.31.51
测试即可。
不成功的话可能需要配置下入站规则试试。
5、删除端口转发格式
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=0.0.0.0 或 netsh interface portproxy delete v4tov4 listenport=80 listenaddress=*
注意:写的是 0.0.0.0
删的时候也需要是 0.0.0.0
进行对应,不然会提示找不到文件。
配置入站规则
设置–>更新和安全–>Windows安全中心–>防火墙和网络保护–>高级设置—>入站规则–>新建规则–>端口–>TCP,特定本地端口–>允许连接
本地端口 21, 22, 80, 8080, 888, 8888
设置外网访问WSL
宿主机端口转发WSL端口
并且配置了入站规则后
在路由器上转发宿主机端口 21, 22, 80, 8080, 888, 8888
<< 上一篇
下一篇 >>