在前面的一篇文章(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