NFS server啟動(dòng)時(shí)會(huì)隨機(jī)啟動(dòng)多個(gè)端口并向RPC注冊(cè)片迅,這樣如果使用iptables對(duì)NFS sever 端口進(jìn)行限制就會(huì)有點(diǎn)麻煩,可以更改配置文件固定NFS服務(wù)相關(guān)端口截汪。
以前配置的nfs端口一直是通過(guò)rpcinfo xx.xx.xx.xx 這個(gè)命令查找到需要放行的端口,然后在防火墻中放行這個(gè)端口,每次f服務(wù)器斷電重啟之后佑稠,都需要重新設(shè)置防火墻叨粘,我們可以設(shè)置固定端口猾编,這樣設(shè)置固定端口以后即便重啟機(jī)器也很方便掛載,如果不設(shè)置固定端口升敲,機(jī)器或服務(wù)重啟后之前添加的iptables規(guī)則就失效了答倡!
下面的是沒(méi)有設(shè)置固定端口時(shí)的情況:
# rpcinfo ?-p
# rpcinfo nfs_sever_ip
設(shè)置固定端口:
編輯 /etc/sysconfig/nfs 文件:
# ?vim? ? /etc/sysconfig/nfs
添加如下內(nèi)容:
###################
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
###################
如果 nlockmgr Port 仍然無(wú)法修改,則要修改?/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
重啟服務(wù)后再查看端口:
添加iptables規(guī)則:
# 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
保存防火墻規(guī)則:
# systemctl ?restart ? ?iptables
查看防火墻規(guī)則:
# iptables -nvL --line
用nfs來(lái)存儲(chǔ)文件驴党,在客戶端節(jié)點(diǎn)遇到了問(wèn)題瘪撇,用df -h的時(shí)候系統(tǒng)直接就卡住了。
搜索發(fā)現(xiàn),網(wǎng)上好多遇到這種問(wèn)題的倔既。
原來(lái)是nfs的server其實(shí)已經(jīng)掛了恕曲,但是客戶端還存在。所以會(huì)出現(xiàn)這種情況渤涌!
以前開(kāi)發(fā)時(shí)就碰到過(guò)nfs客戶端卡住的情況佩谣,umount -f /mnt?umount -l?/mnt?提示device is busy,并且嘗試訪問(wèn)掛載目錄实蓬、df -h等操作都會(huì)使終端卡住茸俭,ctrl+c也不能強(qiáng)行退出。
造成這種現(xiàn)象的原因是nfs服務(wù)器/網(wǎng)絡(luò)掛了安皱,nfs客戶端默認(rèn)采用hard-mount選項(xiàng)调鬓,而不是soft-mount。
兩者的區(qū)別是:
soft-mount: 當(dāng)客戶端加載NFS不成功時(shí)酌伊,重試retrans設(shè)定的次數(shù).如果retrans次都不成功腾窝,則放棄此操作,返回錯(cuò)誤信息 "Connect time out"
hard-mount: 當(dāng)客戶端加載NFS不成功時(shí),一直重試腺晾,直到NFS服務(wù)器有響應(yīng)燕锥。hard-mount 是系統(tǒng)的缺省值。在選定hard-mount 時(shí)悯蝉,最好同時(shí)選 intr , 允許中斷系統(tǒng)的調(diào)用請(qǐng)求归形,避免引起系統(tǒng)的掛起。當(dāng)NFS服務(wù)器不能響應(yīng)NFS客戶端的 hard-mount請(qǐng)求時(shí)鼻由, NFS客戶端會(huì)顯示:"NFS server hostname not responding, still trying"
參考:
NFS/Troubleshooting (簡(jiǎn)體中文)
https://wiki.archlinux.org/index.php/NFS/Troubleshooting_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
運(yùn)維安全之NFS安全
http://drops.xmd5.com/static/drops/tips-1423.html
NFSv3 NFSv3針對(duì)防火墻端口開(kāi)通策略
http://blog.51cto.com/limaomao/1963933
NFS設(shè)置固定端口并添加防火墻規(guī)則
運(yùn)維安全之NFS安全
http://drops.xmd5.com/static/drops/tips-1423.html
CentOS 7 NFS設(shè)置
https://huataihuang.gitbooks.io/cloud-atlas/service/nfs/setup_nfs_on_centos7.html
鳥(niǎo)哥的 Linux 私房菜 -- NFS 伺服器
http://linux.vbird.org/linux_server/0330nfs.php
CentOS 7.x NFS Server 的防火牆設(shè)定
http://blog.ilc.edu.tw/blog/index.php?op=printView&articleId=682711&blogId=25793
CentOS 7 NFS服務(wù)器和客戶端設(shè)置
http://blog.huatai.me/2014/10/14/CentOS-7-NFS-Server-and-Client-Setup/