daf*_*ydd 19 rhel file-server centos nfs firewalld
我还没有找到有关此的灌篮文档,所以让我们开始吧。
在 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
Run Code Online (Sandbox Code Playgroud)
但是,如果我showmount从客户端,我仍然有问题。
[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Run Code Online (Sandbox Code Playgroud)
现在,我如何确定这是防火墙问题?简单。关闭防火墙。服务器端:
[root@<server> ~]# systemctl stop firewalld
Run Code Online (Sandbox Code Playgroud)
和客户端:
[root@<client> ~]# showmount -e <server>.localdomain
Export list for <server>.localdomain:
/export/home/<server> *.localdomain
Run Code Online (Sandbox Code Playgroud)
重启firewalld。服务器端:
[root@<server> ~]# systemctl start firewalld
Run Code Online (Sandbox Code Playgroud)
和客户端:
[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Run Code Online (Sandbox Code Playgroud)
所以,让我们去镇上,通过调整来自 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:
Run Code Online (Sandbox Code Playgroud)
这一次,我从客户端收到了稍微不同的错误消息:
[root@<client> ~]# showmount -e <server>.localdomain
rpc mount export: RPC: Unable to receive; errno = No route to host
Run Code Online (Sandbox Code Playgroud)
所以,我知道我在正确的轨道上。话虽如此,为什么我在任何地方都找不到关于此的权威教程?我不可能是第一个解决这个问题的人!
firewall-cmd我缺少哪些条目?
哦,还有一张纸条。/etc/sysconfig/nfs到目前为止,我在 CentOS 6 客户端和 CentOS 7 服务器上的文件未修改。如果可能的话,我宁愿不必更改(和维护!)它们。
小智 47
这应该足够了:
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)
小智 6
配置 NFS 服务器后,我们应该启用并启动三个服务:
并在服务器防火墙上允许这些服务:
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpcbind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)