【Windows11 + WSL2】内网中直接访问 WSL2

前言

最近在 windows + WSL2 开发的时候, 有些 bug 需要去移动端复现调试,当我掏出手机输入 windows ip + 端口, 结果是访问不了,一拍脑袋, WSL 不是直接连的路由器, 无法被内网的其他设备访问到!

于是, 便有了这边配置文档,过程分别为:

  1. 创建虚拟交换机
  2. 指定 WSL2 使用该虚拟交换机

注意:作者环境是:Windows11 + WSL2, Windows10 用户不确定能否成功,可以自行实践一下

创建虚拟交换机

首先, 先确保自己windows 开启了 Hyper-v

开启 Hyper-v

按 windows 键, 搜索 “启用或关闭 Windows 功能”,找到 Hyper-v 勾选 并 重启电脑

image.png

查询网卡信息

管理员权限打开 PowerShell

Get-NetAdapter

找到自己连接网络的网卡,并记录下名字。 我这里是 WLAN

image.png

创建虚拟交换机

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 地址

image.png

到此, 内网其他设备, 就可以通过内网ip来访问到这个 wsl2 服务了

后记

默认情况下, WSL2 的ip 是通过 DHCP 动态分配的, 如果需要固定下来, 可以在路由器管理后台锁定其IP地址

参考 & 鸣谢

WSL2 网络的最终解决方案

使用 Hyper-V 创建和配置虚拟交换机

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYhGl5CB' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片