Ubuntu

從 macOS 客戶端在 Ubuntu Linux 伺服器上掛載 NFS 卷

  • March 26, 2021

我有一個 Ubuntu 20.04 伺服器(在我的例子中是一個本地虛擬機)。如何使用 NFS 從 macOS Catalina 客戶端掛載 Linux 伺服器上的目錄?

設置 Linux 伺服器

  1. 按照Ubuntu NFS 指南安裝 NFS 伺服器:
sudo apt install nfs-kernel-server
  1. 編輯/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是性能的東西
  1. 保存文件並執行
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 軟體更新似乎可以覆蓋此文件並刪除您的更改。我發現自己必須每年一次左右回到這個答案,重新應用更改。
  1. 通過執行刷新自動掛載
sudo automount -vc

(如果您之前嘗試掛載 NFS 卷,請先將其解除安裝,如下所示sudo umount -f /net/fileserver.local/home/ubuntu:) 3. 在 Finder 菜單中,選擇 Go -> Go to Folder,然後輸入/net/SERVER_HOST_NAME,例如/net/fileserver.local

您應該在那裡找到您導出的目錄,例如 at /net/fileserver.local/home/ubuntu。將此目錄拖到 Finder 側邊欄,以方便日後訪問。

引用自:https://serverfault.com/questions/716350