답변:
$ rpcinfo -p | grep nfs
NFS 서버의 포트 111 (TCP 및 UDP) 및 2049 (TCP 및 UDP).
NFS 잠금 관리자 (포트 4045 TCP 및 UDP) 포트뿐만 아니라 클러스터 및 클라이언트 상태 (이전 포트는 포트 1110 TCP, 후자는 포트 1110 UDP) 용 포트도 있습니다. 교차 게이트웨이에 필요한 서비스에 따라 허용해야 할 포트를 결정할 수 있습니다.
grep nfs
grep을 중단하여 111이 있음을 알았습니다 portmapper
. 알아두면 좋습니다! (그리고 당신이 언급했듯이)
portmapper의 경우 111, nfs의 경우 2049 외에도 마운트 된 포트와 rquotad, 잠금 및 statd를 모두 동적으로 지정할 수 있어야합니다. 이 우수한 NFS 보안 안내서 에서는 시작 스크립트와 커널 모듈 구성을 변경하여 정적 포트를 사용하도록 권장합니다.
방화벽에 대한 섹션 이 있는 위의 가이드 외에도 NFS 강화에 대한 다른 질문에 대한 답변 을 참조하십시오 .
RPCMOUNTDOPTS="--port 34567"
한 다음에 다시 시작 sysctl --system
하고/etc/init.d/nfs-kernel-server restart
이 페이지에서 내 문제에 대한 유용한 지침을 찾았지만 조리법을 따르기가 쉽지 않았습니다. 여기 제 레시피가 있습니다.
TL; DR-고정 후 nfs 포트 (111, 2049)와 마운트 된 포트를 모두 허용해야합니다.
명령:
gksudo gedit /etc/default/nfs-kernel-server
RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="--port 33333"
또는 다른 포트 번호.
이제 다음을 사용하여 nfs를 재설정하십시오.
sudo service nfs-kernel-server restart
다음을 사용하여 도움이되는지 테스트하십시오.
rpcinfo -p | grep "tcp.*mountd"
나에게는 충분하지 않았지만 완전히 다시 시작하면 문제가 해결되었습니다.
( 신용 )
(1) 오래된 규칙을 삭제하거나 수동으로 수행하거나 방화벽에만 사용되는 경우 재설정하십시오.
sudo ufw reset
sudo ufw enable
(2) nfs 및 마운트 된 포트 추가
sudo ufw allow in from 10.0.0.1/20 to any port 111
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333
(로컬 IP로 변경하거나 any
대신 " "로 변경 10.0.0.1/20
)
그것이 전부입니다.
sudo service nfs-config restart
를 다시 시작하기 전에 간단 nfs-kernel-server
합니다.
systemctl
, 그것은이다 systemctl restart nfs-kernel-server.service
.
sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333
그 다음에 (ok, 2 개의 부풀음)이 이어 sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333
집니다. 포트 33333은 위의 예에 따른 것입니다. 답변에 표시된대로 다른 포트를 사용할 수 있습니다.
FERM을 사용하면 Backticks 를 사용 하여 rpcinfo에서 포트를 가져올 수 있습니다 . 예를 들면 다음과 같습니다.
섬기는 사람:
proto tcp {saddr ($CLIENT) {
dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
고객:
proto udp {saddr ($SERVER) {ACCEPT;}} # NFS
(TCP 만 사용하려는 경우 proto tcp
부분 만 필요합니다 ).
레코드의 경우 Windows 2008 R2 서버에서 NFS 공유를 내보내고 클라이언트가 Ubuntu 12.04.4 인 구성에 대해 포트 111, 2049 및 1048에 대한 권한을 추가해야했습니다 .
나는 이것이 누군가를 돕기를 바랍니다.