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