#

 NFS運作原理

NFS功能繁多,因此需使用大量的port來協助其運作,因此不能使用固定的port

而不使用固定的port的話,該如何讓client端知道該透過哪些port來與server連接?

此時就需要遠端程序呼叫 (RPC) 來做幫忙,client端會透過固定的port(111)來向RPC詢問NFS server端所提供的服務是使用哪些port,如此client端就能與server端完成連線了

 NFS Server 設定

1.編輯開機執行檔

#vi /etc/rc.conf
加入以下幾行
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_enable="YES"
mountd_flags="-r"

2.編輯欲開放之目錄

#vi /etc/exports
加入格式如下
/usr/src /usr/local     -maproot=root   192.168.0.0


只要有修改過/etc/exports就要使用以下指令重啟mountd
# kill -HUP `cat /var/run/mountd.pid`
若client端mount時出現以下訊息 
[tcp] 140.128.9.113:/home/nfs: Permission denied
可能的原因是server端開放之目錄的目錄權限沒有讓other可讀可寫
使用chmod修改即可
若client端mount時出現以下訊息 
[tcp] 140.128.9.113:/usr/home/nfs: RPCPROG_NFS: RPC: Program not registered
可能的原因是server端的/etc/hosts.allow將rpcbind的連線deny掉了
將client端的ip加入allow即可

註1:記得注意server端開放之目錄的目錄權限要讓other可以讀寫 註2:記得要確認/etc/hosts.allow內的rpcbind是否有阻擋client端連線

3.啟動RPC port map

# rpcbind
# nfsd -u -t -n 4
# mountd -r

 NFS Client 設定

1.編輯開機執行檔

#vi  /etc/rc.conf
加入以下幾行
nfs_client_enable="YES"
nfs_client_flags="-n 4"

2.執行NFS指令

#/sbin/nfsiod -n 4

3.掛上欲Share的目錄

mount NFS_Server:/分享目錄 /要掛在哪裡
ex:
#mount 140.128.9.ABC:/Backup /mnt

註: 軟連結不能mount ex: /home

4.寫入/etc/fstab 開機就mount上

#vi /etc/fstab
加入以下幾行
freebsd 5.x
140.128.9.ABC:/Backup /mnt nfs rw 0 0 (以tab隔開)

mount ip寫法