1、開啟portmap和nfs服務service portmap start
     service nfs start
     chkconfig --level nfs 35 on
     chkconfig --level protmap 35 on
2、將要共用的目錄寫到exports檔中 假設共用的目錄為 /sharedisk/
     vim /etc/exports
     在exports文件中添加
     /sharedisk    192.168.0.0/24(rw,no_root_squash,async)
     #表示將/sharedisk這個目錄共用給192.168.0.*這些客戶機,括弧中的參數設置意義為:
view source
 
print?
ro                     該主機對該共用目錄有唯讀許可權
rw                    該主機對該共用目錄有讀寫許可權
root_squash       客戶機用root用戶訪問該共用資料夾時,將root用戶映射成匿名使用者
no_root_squash  客戶機用root訪問該共用資料夾時,不映射root用戶
all_squash          客戶機上的任何使用者訪問該共用目錄時都映射成匿名使用者
anonuid             將客戶機上的用戶映射成指定的本地用戶ID的用戶
anongid             將客戶機上的用戶映射成屬於指定的本地用戶組ID
sync                  資料同步寫入到記憶體與硬碟中
async                資料會先暫存於記憶體中,而非直接寫入硬碟
insecure            允許從這台機器過來的非授權訪問

3、重啟nfs 或者使用exportfs命令使設置生效
     重啟nfs:
     service nfs restart
     用exportfs
     exportfs -rv
     #exportfs用法
     -a :全部mount或者unmount /etc/exports中的內容 
     -r :重新mount /etc/exports中分享出來的目錄 
     -u :umount 目錄 
     -v :將詳細的資訊輸出到螢幕上
    這樣nfs的伺服器端就設置好了。

4、在用戶端掛載該目錄:
     在本地創建掛載的目錄 
     mkdir /sharedisk
     mount -t nfs 192.168.0.10:/sharedisk  /sharedisk
     #將伺服器192.168.0.10上的/sharedisk/ 路徑掛載到本地
     此時,如果伺服器端的防火牆有開著的話,將會提示錯誤,如:
     mount: mount to NFS server '192.168.0.10' failed: System Error: No route to host.
     這個主要是因為防火牆的問題導致的 防火牆上開放對應埠即可
     由於nfs服務需要開啟 mountd,nfs,nlockmgr,portmapper,rquotad這5個服務,需要將這5個服務的埠加到iptables裡面
     而nfs 和 portmapper兩個服務是固定埠的,nfs為2049,portmapper為111。其他的3個服務是用的隨機埠,那就需要先把這3個服務的埠設置成固定的。
5、查看當前這5個服務的埠並記錄下來 用rpcinfo -p
    把顯示 nfs  2049, portmapper  111, 以及剩下的三個服務的埠隨便選擇一個記錄下來
    mountd  976
    rquotad  966
    nlockmgr  33993

6、將這3個服務的埠設置為固定埠,修改/etc/service,添加以下內容(埠號必須在1024以下,且未被佔用)
     vim  /etc/services 
     在檔的最後一行添加:
     mountd  976/tcp
     mountd  976/udp
     rquotad  966/tcp
     rquotad  966/udp
     nlockmgr 33993/tcp
     nlockmgr 33993/udp
     保存並退出。  
附帶nfs服務埠的設置
[root@localhost]# vi /etc/sysconfig/nfs 
# Port rquotad should listen on.
RQUOTAD_PORT=966
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=33993
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=33993
# Port rpc.mountd should listen on.
MOUNTD_PORT=976
 
其中 portmapper nfs 服務埠是固定的分別是 111 2049
另外 rquotad nlockmgr mountd 服務埠是隨機的。由於埠是隨機的,這導致防火牆無法設置。
這時需要配置/etc/sysconfig/nfs 使 rquotad nlockmgr mountd 的埠固定。
找到以下幾項,將前面的#號去掉。
7、重啟下nfs服務。  service nfs restart
8、在防火牆中開放這5個埠
     編輯iptables設定檔   
     vim /etc/sysconfig/iptables
     添加如下行:
view source
 
print?
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 976 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 966 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 33993 -j ACCEPT     
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 976 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 966 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 33993 -j ACCEPT

 

保存退出並重啟iptables
service iptables restart
重新執行步驟4掛載即可
8、nfs安全設置方面
hosts.allow和hosts.deny設置
hosts.allow設置:
portmap: ip
hosts.deny設置:
portmap:ALL

轉自http://j3j5.com/post-28.html

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料