Centos
NFS 伺服器和防火牆
我還沒有找到關於這個的灌籃文件,所以讓我們開始吧。
在 CentOS 7.1 主機上,我已經完成了 linuxconfig HOW-TO,包括
firewall-cmd
條目,並且我有一個可導出的文件系統。[root@<server> ~]# firewall-cmd --list-all internal (default, active) interfaces: enp5s0 sources: 192.168.10.0/24 services: dhcpv6-client ipp-client mdns ssh ports: 2049/tcp masquerade: no forward-ports: rich rules: [root@<server> ~]# showmount -e localhost Export list for localhost: /export/home/<user> *.localdomain
但是,如果我
showmount
來自客戶端,我仍然有問題。[root@<client> ~]# showmount -e <server>.localdomain clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
現在,我如何確定這是防火牆問題?簡單的。關閉防火牆。伺服器端:
[root@<server> ~]# systemctl stop firewalld
和客戶端:
[root@<client> ~]# showmount -e <server>.localdomain Export list for <server>.localdomain: /export/home/<server> *.localdomain
重啟防火牆。伺服器端:
[root@<server> ~]# systemctl start firewalld
和客戶端:
[root@<client> ~]# showmount -e <server>.localdomain clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
所以,讓我們去鎮上,通過調整來自 RHEL 6 NFS 伺服器的 iptables 命令 HOW-TO …
[root@ ~]# firewall-cmd \ > --add-port=111/tcp \ > --add-port=111/udp \ > --add-port=892/tcp \ > --add-port=892/udp \ > --add-port=875/tcp \ > --add-port=875/udp \ > --add-port=662/tcp \ > --add-port=662/udp \ > --add-port=32769/udp \ > --add-port=32803/tcp success [root@<server> ~]# firewall-cmd \ > --add-port=111/tcp \ > --add-port=111/udp \ > --add-port=892/tcp \ > --add-port=892/udp \ > --add-port=875/tcp \ > --add-port=875/udp \ > --add-port=662/tcp \ > --add-port=662/udp \ > --add-port=32769/udp \ > --add-port=32803/tcp \ > --permanent success [root@<server> ~]# firewall-cmd --list-all internal (default, active) interfaces: enp5s0 sources: 192.168.0.0/24 services: dhcpv6-client ipp-client mdns ssh ports: 32803/tcp 662/udp 662/tcp 111/udp 875/udp 32769/udp 875/tcp 892/udp 2049/tcp 892/tcp 111/tcp masquerade: no forward-ports: rich rules:
這一次,我從客戶端收到一條略有不同的錯誤消息:
[root@<client> ~]# showmount -e <server>.localdomain rpc mount export: RPC: Unable to receive; errno = No route to host
所以,我知道我走在正確的軌道上。話雖如此,為什麼我在任何地方都找不到關於此的權威教程?我不可能是第一個必須弄清楚這一點的人!
firewall-cmd
我缺少哪些條目?哦,還有一個注意事項。
/etc/sysconfig/nfs
到目前為止,我在 CentOS 6 客戶端和 CentOS 7 伺服器上的文件未修改。如果可能的話,我寧願不必更改(和維護!)它們。
這應該足夠了:
firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --reload
配置 NFS 伺服器後,我們應該啟用並啟動三個服務:
- nfs-server.service
- rpcbind.service
- nfs-mountd.service(只需要啟動)
並且還允許在伺服器防火牆上提供這些服務:
# firewall-cmd --permanent --add-service=nfs # firewall-cmd --permanent --add-service=rpcbind # firewall-cmd --permanent --add-service=mountd # firewall-cmd --reload