我有一台 Ubuntu 20.04 服务器(在我的情况下是本地虚拟机)。如何使用 NFS 从 macOS Catalina 客户端挂载 Linux 服务器上的目录?
答案1
设置 Linux 服务器
按照安装 NFS 服务器Ubuntu 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 服务器对整个互联网开放!)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)。
注意:某些 macOS 软件更新似乎可以覆盖此文件并删除您的更改。我发现自己每年都要回到这个答案一次左右重新应用更改。
通过运行来刷新自动挂载
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 侧栏,以便将来轻松访问。