配置WSL2的Ubuntu接受外部设备访问

发布于:2025-09-06 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、简介

        WSL2的网络模式默认是“NAT”模式,即网络地址转换模式。WSL2实例ubuntu会通过windows主机的网络简介访问互联网,同时与windows形成一个内部私有网络。这种模式下,windows主机相当于一个网关负责WSL2与外部网络的通信转发

        NAT模式的特点

        网络隔离性

        WSL2会获得一个私有IP,通常是172.X.X.X,仅能被windows主机直接访问

        外部设备无法直接访问WSL2的IP

        互联网访问

        WSL2可通过windows主机的网络正常访问互联网,无需额外配置

        Windows主机也可以直接访问WSL2

        动态IP特性

        WSL2重启后,其私有IP可能会变化,导致依赖固定IP的服务器需要重新配置。

        根据上述特性,外部设备是无法访问WSL2的IP的,但是有时候又需要外部设备访问,例如外部设备NFS到Ubuntu上。此时就需要进行特殊配置。

         操作环境如下:

        WSL2,win10版本

        ubuntu,20.04

        注:如果WSL2是win11版本,还可以使用镜像模式。但是win10版本的WSL2是不支持的

二、桥接

       配置桥接

        打开网络连接,可以看到本地网卡WSL的网卡

        按着ctrl同时选中“以太网”和wsl,然后右键,选择“桥接

        成功后,会在列表里多一个“网桥”的选项,右键“网桥”

        双击“Internet 协议版本4”,配置网络

        设置IP地址DNSIP地址要设置为与外部设备相同的网段

        强制WSL2使用网桥IP

        在windows中使用如下指令关闭WSL

wsl --shutdown

        重新启动wsl,在Ubuntu中手动配置IP,执行如下指令:

sudo ip addr flush dev eth0  # 清除原有 IP
sudo ip addr add 192.168.3.101/24 dev eth0  # 与网桥同网段
sudo ip route add default via 192.168.3.1 dev eth0  # 网关与网桥一致

        执行前的IP如下

        执行命令后

        可以看到IP已经变成我们设置的值。

        此时外部设备就已经可以ping通ubuntu了。

三、固定ubuntu IP

        WSL在每次重启后,IP都会变化,导致之前配置的ip又变回了默认值,如果想让外部设备连接就需要再执行一遍上面的步骤。

        通过脚本来自动配置。

        在ubuntu中创建一个sel_wsl_ip.sh的脚本,内容如下:

sudo ip addr flush dev eth0
sudo ip addr add 192.168.1.101/24 dev eth0  # 替换为你的目标 IP
sudo ip route add default via 192.168.1.1 dev eth0

        确定该脚本的位置。

        赋予执行权限

chmod +x set_wsl_ip.sh

        然后编辑~/.bashrc。在文件最下方添加如下指令

/home/qwer/set_wsl_ip.sh

        保存后退出。

        立即生效

source ~/.bashrc

        可以看到,脚本生效了。

        重新打开终端

        也是生效的。


网站公告

今日签到

点亮在社区的每一天
去签到