问题描述
我有一台Ubuntu 20.04服务器(在我的情况下是本地VM)。如何使用NFS从macOS Catalina客户端在Linux服务器上安装目录?
最佳办法
设置Linux服务器
-
按照Ubuntu NFS guide安装NFS服务器:
sudo apt install nfs-kernel-server
-
编辑
/etc/exports
:sudo nano /etc/exports
现在添加类似于以下内容的行:
/home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
-
/home/ubuntu
是要导出的目录 -
172.16.238.0/24
是接受连接的IP地址。 Mac客户端的IP地址应在此范围内。使用*
允许来自任何IP地址。 (但是请注意不要使您的NFS服务器可用于整个Internet!) -
insecure
表示接受来自非特权(较高)端口号的连接 -
rw
表示读写 -
all_squash,anonuid=1000,anongid=1000
强制所有读写由具有UID /GID 1000的用户/组执行(1000是我服务器上的默认ubuntu
用户/组)。在服务器上运行id
以查找您的UID /GID。您需要这些选项,除非您的Ubuntu服务器和Mac客户端对主要用户使用相同的UID /GID。 -
no_subtree_check
是性能的东西
-
-
保存文件并运行
sudo exportfs -vra
重新加载NFS导出。 (我不确定是否需要
-a
选项。)
设置Mac客户端
-
在macOS客户端上,编辑
/etc/auto_master
文件(在auto_master man page
中记录):sudo nano /etc/auto_master
并将以
/net
开头的行更改为以下内容(或在必要时添加):/net -hosts -nobrowse,nosuid,locallocks,nfc,actimeo=1
-
locallocks
在客户端而不是服务器上创建锁。没有此功能,Finder会变得非常缓慢,并且永远需要显示目录。 -
nfc
使UTF-8文件名起作用 -
actimeo=1
将属性缓存超时设置得尽可能短。请注意,将其设置为0
(或添加noac
)会使Finder在服务器上删除文件时不会注意到,因此我们无法使用它。 -
请注意,这里我们不使用
nfsvers=4
。这样,我在Mac上就出现了内核恐慌,因此我恢复了默认设置(NFSv3)。
-
-
通过运行刷新自动挂载
sudo automount -vc
(如果以前尝试安装NFS卷,请先将其卸载,例如:
sudo umount -f /net/fileserver.local/home/ubuntu
) -
在Finder菜单中,选择转到->转到文件夹,然后输入
/net/SERVER_HOST_NAME
,例如/net/fileserver.local
。您应该在其中找到导出的目录,例如在/net/fileserver.local/home/ubuntu
。将该目录拖到Finder侧边栏中,以方便将来使用。