个人原创,如有转载,请注明出处。

——by realasking

Windows 11上访问局域网NAS的NFS不能用Windows自带的NFS Client,用该方法需要加域,用ACTIVE DIRECTORY,配置非常复杂。网传的改注册表中的uid和gid的方法现在已经失效,况且改为root的gid和uid并不安全。2008年的nfs v4.1 client for windows项目在2012年后也再无更新,现在基本处于难以使用状态。

经过多日搜索,目前找到了以下方法,不过访问效率不是很高。

1.安装Windows自带的NFS Client功能,因为它的一些工具我们需要。

2.从github下载并安装winfspnfs-win,这是第三方的nfs驱动。

3.重启电脑。

4.查找NAS上具有NFS共享访问权限的用户uid和gid,这个gid必须是用户的基本组id,不是NFS组的gid。
比如我自己的uid是1000,gid是100,这个100是users组的gid,users组是我的用户realasking的基本组。

5.打开Windows终端,在启动的powershell窗口中查看Windows电脑的用户名,就是提示符中>前、users\后的内容。

6.输入命令showmount -e NAS的IP,找到NFS共享目录。

7.打开文件管理器,在此电脑上单击右键,点击映射网络驱动器。

8.在文件夹中输入:

\\nfs\windows电脑的用户名=NAS上的用户uid.NAS上的用户gid@NAS的IP\NFS共享目录

9.选择一个盘符,然后点击确定。

只是做到这样,还是不够的,还要让wsl也能正常使用nas,做法是:

  1. 执行命令:

sudo vi /etc/wsl.conf

输入以下内容后保存:

[boot]
systemd=true
  1. 重启电脑或wsl
  2. 在wsl中执行以下命令安装和启用nfs client:
sudo apt install nfs-client nfs-common
sudo systemctl enable --now nfs-client.target
  1. 执行以下命令:

mkdir /mnt/z

  1. 输入命令showmount -e NAS的IP,找到NFS共享目录。
  2. 执行命令sudo vi /etc/fstab,加入以下内容:
NAS的IP:NFS共享目录 /mnt/z nfs _netdev,noauto,x-systemd.automount,x-systemd.mount-timeout=10,timeo=14,x-systemd.idle-timeout=1min 0 0

然后重启电脑就行了。