【NFS】CentOS 7 NFS服务器和客户端设置

NFS server启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS sever 端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。

以前配置的nfs端口一直是通过rpcinfo xx.xx.xx.xx 这个命令查找到需要放行的端口,然后在防火墙中放行这个端口,每次f服务器断电重启之后,都需要重新设置防火墙,我们可以设置固定端口,这样设置固定端口以后即便重启机器也很方便挂载,如果不设置固定端口,机器或服务重启后之前添加的iptables规则就失效了!

下面的是没有设置固定端口时的情况:

# rpcinfo  -p

# rpcinfo nfs_sever_ip

设置固定端口:

编辑 /etc/sysconfig/nfs 文件:

#  vim    /etc/sysconfig/nfs

添加如下内容:

###################

RQUOTAD_PORT=30001

LOCKD_TCPPORT=30002

LOCKD_UDPPORT=30002

MOUNTD_PORT=30003

STATD_PORT=30004

###################

如果 nlockmgr Port 仍然无法修改,则要修改 /etc/sysctl.conf

# cp /etc/sysctl.conf /etc/sysctl.conf.$(date +%F)

fs.nfs.nlm_tcpport=30002

fs.nfs.nlm_udpport=30002

# sed -i '$a fs.nfs.nlm_tcpport=30002\nfs.nfs.nlm_udpport=30002' /etc/sysctl.conf

刷新配置生效:

# sysctl -p

# systemctl restart rpcbind 

# systemctl restart nfs-server 

# systemctl restart nfs-lock 

# systemctl restart nfs-idmap

重启服务后再查看端口:

添加iptables规则:

# yum -y install iptables iptables-services

命令行添加:

# iptables  -A INPUT -p tcp -m tcp  --dport 111 -j ACCEPT

# iptables  -A INPUT -p udp -m udp  --dport 111 -j ACCEPT

# iptables  -A INPUT -p tcp -m tcp  --dport 2049 -j ACCEPT

# iptables  -A INPUT -p udp -m udp  --dport 2049 -j ACCEPT

# iptables  -A INPUT -p tcp -m tcp    --dport 30001:30004 -j ACCEPT

# iptables  -A INPUT -p udp -m udp  --dport 30001:30004 -j ACCEPT

配置文件添加:

# vim /etc/iptables.rules

保存防火墙规则:

# systemctl  restart    iptables

查看防火墙规则:

# iptables -nvL --line

用nfs来存储文件,在客户端节点遇到了问题,用df -h的时候系统直接就卡住了。

搜索发现,网上好多遇到这种问题的。

原来是nfs的server其实已经挂了,但是客户端还存在。所以会出现这种情况!

以前开发时就碰到过nfs客户端卡住的情况,umount -f /mnt umount -l /mnt 提示device is busy,并且尝试访问挂载目录、df -h等操作都会使终端卡住,ctrl+c也不能强行退出。

造成这种现象的原因是nfs服务器/网络挂了,nfs客户端默认采用hard-mount选项,而不是soft-mount。

两者的区别是:

soft-mount: 当客户端加载NFS不成功时,重试retrans设定的次数.如果retrans次都不成功,则放弃此操作,返回错误信息 "Connect time out"

hard-mount: 当客户端加载NFS不成功时,一直重试,直到NFS服务器有响应。hard-mount 是系统的缺省值。在选定hard-mount 时,最好同时选 intr , 允许中断系统的调用请求,避免引起系统的挂起。当NFS服务器不能响应NFS客户端的 hard-mount请求时, NFS客户端会显示:"NFS server hostname not responding, still trying"

参考:

NFS/Troubleshooting (简体中文)

https://wiki.archlinux.org/index.php/NFS/Troubleshooting_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

运维安全之NFS安全

http://drops.xmd5.com/static/drops/tips-1423.html

NFSv3 NFSv3针对防火墙端口开通策略

http://blog.51cto.com/limaomao/1963933

NFS设置固定端口并添加防火墙规则

https://www.centos.bz/2017/12/nfs%E8%AE%BE%E7%BD%AE%E5%9B%BA%E5%AE%9A%E7%AB%AF%E5%8F%A3%E5%B9%B6%E6%B7%BB%E5%8A%A0%E9%98%B2%E7%81%AB%E5%A2%99%E8%A7%84%E5%88%99/

运维安全之NFS安全

http://drops.xmd5.com/static/drops/tips-1423.html

CentOS 7 NFS设置

https://huataihuang.gitbooks.io/cloud-atlas/service/nfs/setup_nfs_on_centos7.html

鳥哥的 Linux 私房菜 -- NFS 伺服器

http://linux.vbird.org/linux_server/0330nfs.php

CentOS 7.x NFS Server 的防火牆設定

http://blog.ilc.edu.tw/blog/index.php?op=printView&articleId=682711&blogId=25793

CentOS 7 NFS服务器和客户端设置

http://blog.huatai.me/2014/10/14/CentOS-7-NFS-Server-and-Client-Setup/

你可能感兴趣的:(【NFS】CentOS 7 NFS服务器和客户端设置)