从 macOS 客户端在 Ubuntu Linux 服务器上挂载 NFS 卷

从 macOS 客户端在 Ubuntu Linux 服务器上挂载 NFS 卷

我有一台 Ubuntu 20.04 服务器(在我的情况下是本地虚拟机)。如何使用 NFS 从 macOS Catalina 客户端挂载 Linux 服务器上的目录?

答案1

设置 Linux 服务器

  1. 按照安装 NFS 服务器Ubuntu NFS 指南

    sudo apt install nfs-kernel-server
    
  2. 编辑/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是一种性能问题
  3. 保存文件并运行

    sudo exportfs -vra
    

    重新加载 NFS 导出。(我不确定该-a选项是否必要。)

设置 Mac 客户端

  1. 在 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 软件更新似乎可以覆盖此文件并删除您的更改。我发现自己每年都要回到这个答案一次左右重新应用更改。

  2. 通过运行来刷新自动挂载

    sudo automount -vc
    

    (如果您之前尝试挂载 NFS 卷,请先将其卸载,如下所示sudo umount -f /net/fileserver.local/home/ubuntu:)

  3. 在 Finder 菜单中,选择前往 -> 前往文件夹,然后输入/net/SERVER_HOST_NAME,例如/net/fileserver.local

    您应该在其中找到导出的目录,例如/net/fileserver.local/home/ubuntu。将此目录拖到 Finder 侧栏,以便将来轻松访问。

相关内容