配置目标
将WSL2默认的NAT网络改成桥接模式,使得外部设备可直接ping通WSL2下的Linux虚拟机ip,并在此基础上,搭建可供外部设备挂载的NFS服务器。
测试平台:Win10+WSL2+Ubuntu20.04
参考链接:
- WSL2开启桥接网络 | 逸思杂陈
- Linux Tips - NFS Server on Windows using WSL (2022) - YouTube
WSL2设置桥接网络
修改Hyper-V虚拟交换机配置
首先关闭wsl,以管理员身份运行PowerShell,输入wsl --shutdown
,然后在Win10任务栏搜索并启动“Hyper-V管理器”,点击右侧“虚拟机交换机管理器”,进入配置页面,将WSL的交换机连接类型改为外部网络即可,注意选择正确的外部网卡。


设置WSL2虚拟机静态IP和域名解析
将WSL2虚拟机修改为桥接网络后,原本基于NAT映射的IP地址将不能使用,所以需要手动配置虚拟机的IP地址和域名解析。
首先是IP地址和默认路由,按照实际网络环境,使用ifconfig和route命令进行配置即可,示例如下:
ifconfig eth0 192.168.0.110 netmask 255.255.255.0
route add default gateway 192.168.0.1
接下来是配置域名解析,首先创建/etc/wsl.conf文件,写入以下内容,这段内容是防止WSL自动生成resolv.conf文件,在原版的/etc/resolv.conf注释中有描述:
[network]
generateResolvConf = false
然后就是修改默认的域名解析,备份并删除/etc/resolv.conf,创建新的/etc/resolv.conf文件,写入以下内容:
最后通过chattr
将/etc/resolv.conf设置为不可修改和删除,以防止某此应用自动修改这个文件(实测启动vscode会导致这个文件被还原,所以增加这步操作):
chattr +i /etc/resolv.conf
如果后续想修改/etc/resolv.conf,需要先执行chattr -i /etc/resolv.conf
,以解除对/etc/resolv.conf的保护。
关于重启后主机网络不可用问题
主机重启后以太网可能不可用,需要在外网网口的网络设置里取消“Hyper-V可扩展的虚拟交换机”选项,并重新配置WSL2的交换机桥接类型为外部网络。

搭建NFS服务器
经过上面的步骤,外部设备已经可以ping通WSL2虚拟机了,接下来在WSL2虚拟机上搭建NFS服务器,以实现挂载服务,这里使用Ubuntu20.04进行演示。
首先安装NFS相关的软件包,有以下包要安装:
apt install nfs-common nfs-kernel-server rpcbind
其中nfs-common提供了作为客户端进行挂载所需的工具,而nfs-kernel-server和rpcbind则提供了搭建NFS服务所需的工具。
接下来创建挂载目录以及修改目录的属性,这里以/root/hisi作为挂载目录进行设置:
mkdir /root/hisi
chown nobody:nogroup /root/hisi
chmod 777 /root/hisi
然后是修改/etc/exports文件,指定NFS的导出目录以及访问者属性:
/root/hisi *(rw,sync,no_subtree_check,no_root_squash,insecure)
最后启动NFS相关的服务:
service rpcbind start
service nfs-kernel-server start
exportfs -a
至此NFS服务已顺利启动了,可以在其他设备上进行挂载测试,以下是一个测试命令:
mount -t nfs -o nolock 192.168.0.110:/root/hisi /mnt