在前面的一篇文章(https://www.cnblogs.com/zyxnhr/p/10660431.html)中,已經介紹了nfs的安裝掛載使用,但是存在兩個問題
一、 防火牆
在nfs和nfs的守護進程rpcbind起來后,會由幾個端口,防火牆需要打通,才能是客戶端訪問
[root@node1 ~]# rpcinfo -p > nfs.txt
[root@node1 ~]# vim nfs.txt
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 40657 mountd 100005 1 tcp 46458 mountd 100005 2 udp 52413 mountd 100005 2 tcp 53785 mountd 100005 3 udp 60260 mountd 100005 3 tcp 44574 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 44067 nlockmgr 100021 3 udp 44067 nlockmgr 100021 4 udp 44067 nlockmgr 100021 1 tcp 44186 nlockmgr 100021 3 tcp 44186 nlockmgr 100021 4 tcp 44186 nlockmgr
但是在重新啟動這兩個服務后,會發現端口都發生變化
[root@node1 ~]# service rpcbind restart
[root@node1 ~]# service nfs restart
[root@node1 ~]# rpcinfo -p
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 12792 mountd 100005 1 tcp 42422 mountd 100005 2 udp 2212 mountd 100005 2 tcp 31979 mountd 100005 3 udp 5090 mountd 100005 3 tcp 38716 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 19191 nlockmgr 100021 3 udp 19191 nlockmgr 100021 4 udp 19191 nlockmgr 100021 1 tcp 34774 nlockmgr 100021 3 tcp 34774 nlockmgr 100021 4 tcp 34774 nlockmgr
這樣的的防火牆原先配置開放的端口就會失效,nfs客戶端就無法使用nfs
1.1 解決一
根據端口,再次打開新的端口限制,但是不可取
1.2 解決二
固定端口,把端口寫進配置文件,每次重啟使用固定的端口
[root@node1 ~]# vim /etc/sysconfig/nfs
RQUOTAD_PORT=30001 LOCKD_TCPPORT=30002 LOCKD_UDPPORT=30002 MOUNTD_PORT=30003 STATD_PORT=30004
[root@node1 ~]# rpcinfo -p
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 30003 mountd 100005 1 tcp 30003 mountd 100005 2 udp 30003 mountd 100005 2 tcp 30003 mountd 100005 3 udp 30003 mountd 100005 3 tcp 30003 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 30002 nlockmgr 100021 3 udp 30002 nlockmgr 100021 4 udp 30002 nlockmgr 100021 1 tcp 30002 nlockmgr 100021 3 tcp 30002 nlockmgr 100021 4 tcp 30002 nlockmgr
把這些端口開放,在再起啟動,偶不會影響
開放端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 30002 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 30003 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 30004 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 30001 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 30001 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 30002 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 30003 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 30004 -j ACCEPT
1.3 解決三
直接開放源的網卡端口
-A INPUT -s 客戶端IP/32 -i eth0 -j ACCEPT
重啟防火牆:
[root@node1 ~]# service iptables restart
客戶端連接
二,權限開了rw,但是客戶端依然沒有寫權限
[root@node1 ~]# vim /etc/exports
/home/data/sharedir 客戶端IP(rw,sync,no_root_squash)
客戶端寫數據
[root@test ~]# cd /home/data/www/
[root@test www]# touch 111
touch: cannot touch `111': Permission denied
查看服務端本文件夾的權限,發現對於其他用戶,是沒有寫權限的
[root@node1 ~]# chmod o+w /home/data/www/ -R
再次測試,已經可以成功寫入
[root@test www]# touch 111
[root@test www]# ll
-rw-r--r--. 1 root root 0 Apr 16 17:20 111