但是不知為何,我從 Mac 上開 AFP / SMB 連進去的效能都不好。(詳情請見這裡)
我想嘗試用 NFS 連線,但是 NFS 連線的說明 Synology 的說明書和線上支援全都語焉不詳,
只說去哪裡設定,問題是該怎麼設定、更重要的是客戶端怎麼設定,全都沒講。
Google 了很久加上 trial & error,最後終於成功啟用 NFS 連線,一勞永逸解決效率低落問題。

現在我開 NAS 上的目錄,和機器內建硬碟效率幾乎沒什麼差別。
以下是我在 Synology DS409slim 上啟動 NFS 的步驟。
過程有點小複雜,需要用 Terminal 連到伺服器上用 vi 修改一個設定檔,
最好是有具備 UNIX 操作的經驗比較容易。
(註:本篇講的方法主要是為了 10.4 的連線需求,
10.5 以後除了我介紹作法以外,還可以用不同的作法來處理。請參照:
http://nedos.net/2007/11/10/nfs-in-mac-os-105-leopard/ )
1. 先介紹我的環境。
我是在家裡使用,家裡的區域網路是 192.168.1.*/255.255.255.0
DS409slim 我給他的 IP 是 192.168.1.10
我工作的主機是一台 2006 年塑膠殼版 iMac,還有一台老 PowerBook G4 跑 Tiger 10.4.11
首先登入管理畫面,在左側選單中尋找「NFS」打開他。然後勾選「啟動 NFS 服務」


2.
接下來,到共用資料夾管理畫面,
你會看到「新增...」那一列工具按鈕最右邊多了一個「NFS權限」,點下去。

3.
新增畫面,一開始設定應該是空的。點選新增,就會出現要你設定連線權限的畫面。

在這個畫面主要是讓你加入允許(或是不允許)對這個分享區做存取的單一主機、網域、或是 IP 區網。
請依照自己的網路設定填寫,建議用 IP 範圍來設定比較方便。
用 IP 設定時,你可以指定單一一個 IP,或是指定整個區域網路。
請注意星號(*)不適用在 IP 設定,若要指定區域網路,
請填入區域網路的「網路號碼」(Subnet ID)和「網路遮罩」(Subnet mask)。
所謂的「網路號碼」,就是把區網內任一台電腦的 IP 和網路遮罩做 AND 邏輯運算。
不曉得怎麼算的話可以用這個 Online計算機。
上圖中我填的是 192.168.1.0/24,其中 192.168.1.0 是我家區網的網路號碼,
後面的 /24 則是網路遮罩的簡短表示式,意思是網路遮罩中有幾個 bit 1,
所以填 192.168.1.0/24 就等同於 192.168.1.0/255.255.255.0。
這邊兩種填法都可,看自己高興。
下面的權限開成「可讀寫」;如果你是要設定整個區網中某幾台電腦不准存取,那就選相反的。
Root squash 隨便要不要改都可;那主要是給 root 使用者連入時的權限設定,平常不會用到。
4.
填完了以後按確定,這時候 NFS 伺服器已經開好了。
但是這時候 Mac 端還是連不上來,還有兩個步驟要做。
先去畫面左邊選單找「終端機」,進去啟動 SSH 服務。
(啟動 Telnet 也可,我只是單純不喜歡 Telnet)。

5.
打開 Mac 的終端機(Terminal.app),用 root 帳號連到 NAS:
ssh -l root 192.168.1.10
密碼就是機器 admin 的密碼,記得替換上你自己的機器的 IP。
接下來要用 vi 修改 /etc/exports 這個檔案(Synology 只有 vi,沒辦法...)
在我的機器上裡面只有一行:
/volume1/Abyss 192.168.1.0/24(rw,no_wdelay,root_squash,insecure_locks,anonuid=1024,anongid=100)
改成
/volume1/Abyss 192.168.1.0/24(rw,insecure,no_wdelay,root_squash,insecure_locks,anonuid=1024,anongid=100)
沒錯就是增加 "insecure" 這個選項。
有了這個選項,NFS server 才會聆聽高位(>1024)以上的通訊埠,Mac 端也才能跟他連線。
如果你不熟悉 vi,請按照以下方法操作:
a. 把游標移到 "rw," 的逗號 "," 上,按下鍵盤上的 i
b. 在鍵盤上輸入「insecure,」打錯字可以按 Backspace 修正。輸入完後按下 ESC。
c. 再把游標移到下一行同一位置(如果有的話),同樣方式加入。
d. 全部修正完畢後,按下 ESC,在鍵盤上輸入「:wq」。就存檔結束。
改好後你可以用 cat 看一下:

上圖中 "Guardian" 就是我 NAS 的主機名稱。
接下來你要把改好的設定啟動,你可以去從管理畫面關閉 NFS 重新啟動,
或是直接在 Terminal 輸入:
/usr/sbin/exportfs -arv
可能會有錯誤訊息,那是無害的錯誤不必理會他。
6.
在 Terminal 中輸入 exit 離開 NAS。關閉 Terminal 之前先檢查一下是否有正確啟動。輸入
showmount -e 192.168.1.10
如果有正確啟動,會顯示類似以下的訊息:
Exports list on 192.168.1.10:
/volume1/Abyss 192.168.1.0/24
特別注意紅字的部份,那就是分享的路徑,請記下來。
理論上這個分享路徑就是 /volume1/{共享資料夾名稱} 這樣的格式。
7.
終於可以掛載 NFS 了。在 Finder 下按 Cmd+K,輸入
nfs://192.168.1.10/volume1/Abyss
如果以上操作沒有錯誤,你應該就可以看到 NFS 掛載成功了!

你可能會懷疑:連線時不需要輸入使用者帳號密碼嗎?
沒錯,不需要。
NFS 是一個「不需要認證」的網路資源分享協定,
我在網路上爬文,看到很多人講說用 nfs://username:passwd@host:/path 這樣的格式,
經實驗證實全都無法連線。
實際上 NFS 的權限設定,是用客戶端機器的 UID 和 GID 對應到遠端機器,
若遠端機器不存在這個 UID/GID,則一律視為匿名連線。
對於所有匿名連線,NFS 會按照 /etc/exports 裡面的 anonuid/anongid 對照來給予權限,
然後使用伺服器上實體目錄的權限來做權限控管。
所以使用 NFS 時務必做好外部的安全防護,不然一台區網上的 NFS 等於是完全沒有防護的。
關於更多 NTS 的資訊,請參考:鳥哥的 Linux 私房菜。
祝各位順利!