我在 WSL 内部设置了 NAS。最简单的部分是服务器。无论出于什么原因,Windows 或 Linux 都不想与网络的其余部分很好地协作。我能够让 samba 在我的 NAS 内部工作,但这只允许我通过本地主机访问。我有一个裸机 NAS,我想将存储安装在我的虚拟 NAS 上,但我不知道如何从本地主机外部进行连接。我首先尝试了 samba,因为我熟悉它,因为它是我在裸机 NAS 上运行的。我无法让它工作,很快就放弃了,因为我不想与主机操作系统争夺它已经拥有的服务的端口转发。所以我切换到 NFS,认为 Windows 不会关心非 Microsoft 系统。好吧,我设置了端口转发规则,我允许 111、2049 和为 NFSv3 和 v4 自定义分配的端口通过防火墙,这时我遇到了障碍。在 WSL 内部安装 ZFS 比这更容易。
尝试过的端口
111 TCP/UDP
2049 TCP
20048 TCP/UDP(用于 mountd)
使用的命令
New-NetFirewallRule -DisplayName "WSL2 Port Bridge NFSv3 mountd" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 20048
netsh interface portproxy add v4tov4 listenport=20048 listenaddress=192.168.50.3 connectport=20048 connectaddress=(wsl hostname -I)
netstat -ano
在 Windows 上监听端口时,只返回 v4 和 v6 端口,因为监听时没有重复(除了 v4 和 v6 的一个)
rpcinfo -p
并netstat -natp
返回 WSL 实例正在监听这些端口
但是当我尝试 telnet 和 showmount -e 以及远程 Linux 机器上的 NFSv4 版本时,我遇到了连接超时。我是否漏掉了某个步骤?我遵循了https://learn.microsoft.com/en-us/windows/wsl/networking进行设置。我尝试过 wsl --shutdown 并启动。我不知道它应该可以工作,但实际上却不行(我尝试过镜像模式,但它在我的 Windows 版本中不受支持)
我的问题是,有谁知道如何让 NFS 工作,或者如何将目录从 WSL 内部共享到网络的其余部分(而不是本地主机,就像我说的我的 smb 服务运行良好)?
更新:仍然没有弄清楚。我认为这是一个 Windows 问题。我可以看到数据包通过 wireshark 传入,但在 WSL 虚拟接口上,我没有看到它们被重新传输到 WSL 客户机