CentOS下搭建NFS服務器總結
環(huán)境介紹:
1. 服務器: 192.168.0.100
2. 客戶機: 192.168.0.101
安裝軟件包:
服務器和客戶機都要安裝nfs 和 rpcbind 軟件包:
yum -y install nfs-utils rpcbind
服務器端配置:
1. 在服務器上創(chuàng)建NFS共享目錄:mkdir /usr/local/test
2. 設置共享目錄的讀寫權限: chmod 666 /usr/local/test
3. 編輯export文件: vi /etc/exports
/usr/local/test/ 192.168.0.101(rw,no_root_squash,no_all_squash,sync)
注意地址和參數(shù)表之間沒有空格。如果下面設置的mountd端口大于1024,需要在參數(shù)表里加入?yún)?shù):insecure
4. 配置生效:
exportfs -r
注:配置文件說明:
/usr/local/test/ 為共享的目錄,使用絕對路徑。
192.168.0.101(rw,no_root_squash,no_all_squash,sync) 為客戶端的地址及權限,地址可以是一個網段(如:192.168.0.0/24),一個IP地址或者是一個域名,域名支持通配符,如:*.hpce.cn,地址與權限中間沒有空格。
權限說明:
rw:read-write,可讀寫;
ro:read-only,只讀;
sync:文件同時寫入硬盤和內存;
async:文件暫存于內存,而不是直接寫入內存;
no_root_squash:NFS客戶端連接服務端時如果使用的是root的話,那么對服務端分享的目錄來說,也擁有root權限。顯然開啟這項是不安全的。
root_squash:NFS客戶端連接服務端時如果使用的是root的話,那么對服務端分享的目錄來說,擁有匿名用戶權限,通常他將使用nobody或nfsnobody身份;
all_squash:不論NFS客戶端連接服務端時使用什么用戶,對服務端分享的目錄來說都是擁有匿名用戶權限;
anonuid:匿名用戶的UID值,通常是nobody或nfsnobody,可以在此處自行設定;
anongid:匿名用戶的GID值。
5. 啟動服務rpcbind、nfs服務:
service rpcbind start
service nfs start
服務器端防火墻設置(NFS 開啟防墻配置):
修改/etc/services文件:
配置rpc,nfsd,rquotad,mountd使用的端口。配置之前先檢查一下是否已經配置過了,已經配過的就不用配置了。沒有配置的,要分配一個在此文件中未被使用的端口號。我的機器默認配置了:rpc、nfsd、rquotad
mountd: 沒有配置。手工加上:
mountd 48620/tcp #rpc.mountd
mountd 48620/udp #rpc.mountd
如果mountd占用端口大于 1024,在文件 /etc/exports里需要加入?yún)?shù)insecure。如: 192.168.0.100(insecure,rw,async,root_squash,no_all_squash)
重啟NFS服務:
service nfs restart
在防火墻配置文件里開放上面配置的端口:
打開文件:vim /etc/sysconfig/iptables
加入紅色部分的內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#rpc
-A INPUT -m state --state NEW -m tcp -p tcp --dport 121 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 121 -j ACCEPT
#nfsd
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
#rquotad
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
#mountd
-A INPUT -m state --state NEW -m tcp -p tcp --dport 48620 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 48620 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
客戶端掛載:
創(chuàng)建掛載目錄: mkdir /usr/local/test
查看服務器拋出的共享目錄信息:
showmount -e 192.168.0.100
Export list for 192.168.0.100:
/usr/local/test 192.168.0.101
如果顯示:rpc mount export: RPC: Unable to receive; errno = No route to host,則需要在服務端關閉防火墻。
為了提高NFS的穩(wěn)定性,使用TCP協(xié)議掛載,NFS默認用UDP協(xié)議:
mount -t nfs 192.168.0.100:/usr/local/test /usr/local/test -o proto=tcp -o nolock
掛載成功后即可訪問共享的NFS文件系統(tǒng)了。
卸載已掛在的NFS
umount /usr/local/test
查看掛載目錄的信息:
fuser -m -v /usr/local/test