前言
最近在 windows + WSL2
开发的时候, 有些 bug 需要去移动端复现调试,当我掏出手机输入 windows ip + 端口, 结果是访问不了,一拍脑袋, WSL 不是直接连的路由器, 无法被内网的其他设备访问到!
于是, 便有了这边配置文档,过程分别为:
- 创建虚拟交换机
- 指定 WSL2 使用该虚拟交换机
注意:作者环境是:Windows11 + WSL2, Windows10 用户不确定能否成功,可以自行实践一下
创建虚拟交换机
首先, 先确保自己windows 开启了 Hyper-v
开启 Hyper-v
按 windows 键, 搜索 “启用或关闭 Windows 功能”,找到 Hyper-v
勾选 并 重启电脑
查询网卡信息
管理员权限打开 PowerShell
Get-NetAdapter
找到自己连接网络的网卡,并记录下名字。 我这里是 WLAN
创建虚拟交换机
New-VMSwitch -Name <switch-name> -NetAdapterName <netadapter-name>
上面 <switch-name>
位置填一个自定义的名字, 后面的 <netadapter-name>
则需要填自己网卡的名字
我自己的为:
New-VMSwitch -Name WSLBridge -NetAdapterName WLAN
指定 WSL2 使用该虚拟交换机
先进入个人目录,并创建 .wslconfig
文件
cd $env:USERPROFILE
键入 .wslconfig
文件内容如下
[wsl2]
networkingMode=bridged # 桥接模式
vmSwitch=WSLBridge # 你想使用的网卡, 这里用的上面 <switch-name> 填的名字
ipv6=true # 启用 IPv6
保存后, 重启下 wsl
# 关闭
wsl --shutdown
# 启动
wsl
然后进入 wsl, 查看当前wsl的虚拟机网卡
ifconfig
# 如果 ifconfig not found, 那就安装下 net-tools
sudo apt install net-tools -y
于是,便能看到 WSL2 中有一个 eth0 的网卡,其 ip 地址为自己内网网段的 ip 地址
到此, 内网其他设备, 就可以通过内网ip来访问到这个 wsl2 服务了
后记
默认情况下, WSL2 的ip 是通过 DHCP 动态分配的, 如果需要固定下来, 可以在路由器管理后台锁定其IP地址
参考 & 鸣谢
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END