아직 이에 대한 슬램덩크 문서를 찾지 못했으므로 시작해 보겠습니다.
CentOS 7.1 호스트에서 나는 경험했습니다.linuxconfig 작업 방법, 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 명령을 사용하는 방법...
[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 서버의 파일은 수정되지 않았습니다. 가능하다면 변경(및 유지 관리)할 필요가 없습니다.
답변1
이것으로 충분합니다:
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
답변2
NFS 서버를 구성한 후에는 세 가지 서비스를 활성화하고 시작해야 합니다.
- nfs-server.service
- rpcbind서비스
- nfs-mountd.service (그냥 시작하세요)
또한 서버 방화벽에서 다음 서비스를 허용합니다.
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpcbind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload
답변3
방금 이것을 발견했습니다. SELinux가 로그인 중 ~/.ssh/authorized_keys 읽기를 차단하는 문제가 발생했을 때 작동했습니다! 먼저 ~/.ssh/authorized_keys 파일이 올바르게 채워졌는지, 해당 권한과 해당 폴더의 권한이 올바르게 설정되었는지 확인하세요. 그런 다음 SSH 대상 호스트에서 "setenforce 0"을 실행하고 비밀번호를 입력하지 않고 해당 호스트에 로그인할 수 있지만 동일한 대상 호스트에서 "setenforce 1"을 입력한 후에 로그인할 수 없는 경우 다음 방법으로 문제를 해결할 수 있습니다. :
setebool -P use_nfs_home_dirs 1
인용하다:https://cassjohnston.wordpress.com/2015/06/12/selinux-nfs-home-directories/
답변4
나는 nfsv4를 사용하고 있으며 귀하의 영역이 "공개"이고 기본 포트 2049 및 4001을 사용한다고 가정하면 이러한 라인을 잘 처리합니다.
firewall-cmd --permanent --add-service=nfs --zone=public
firewall-cmd --permanent --add-service=mountd --zone=public
firewall-cmd --permanent --add-service=rpc-bind --zone=public
firewall-cmd --permanent --add-port=4001/udp --zone=public
firewall-cmd --permanent --add-port=4001/tcp --zone=public
firewall-cmd --permanent --add-port=2049/tcp --zone=public
firewall-cmd --permanent --add-port=2049/udp --zone=public
firewall-cmd --reload
제가 잊어버린 한 가지 중요한 사실은 mountd에 대한 정적 포트를 설정하여 showmount -e
공유를 보는 데 사용할 수 있다는 것입니다. 저는 개인적으로 34777을 사용합니다
root 1873 1 0 21:11 ? 00:00:00 /usr/sbin/rpc.mountd -p 34777
따라서 방화벽에서 포트를 엽니다.
firewall-cmd --permanent --add-port=34777/udp --zone=public
firewall-cmd --permanent --add-port=34777/tcp --zone=public
마운트 포트의 구성은 배포 버전과 다릅니다. 일부는 /etc/sysconfig를 사용하고 일부는 /etc/default를 사용하며 일부는 스크립트 편집이 필요합니다. 배포판 설명서를 확인하세요.