마운트된 NFS 공유의 파일에 액세스하는 중 중단됨

마운트된 NFS 공유의 파일에 액세스하는 중 중단됨

NFS 공유를 생성 중입니다. NFS 서버와 NFS 클라이언트를 구성했습니다.

내 공유는 어제까지 잘 작동했는데 지금은 작동하지 않는 것 같습니다.

NFS 구성의 모든 단계를 재설정했지만 여전히 작동하지 않습니다.

내 문제는 (어제까지 잘 작동했던)을 사용하여 마운트된 폴더에 액세스하려고 할 때 cat /mnt/nfs1.txt화면에 아무것도 표시되지 않는다는 것입니다. 그리고 그것은 들어올려지거나 무너지는 것처럼 보였습니다.

root@ela-native:~# cat /mnt/nfs1.txt

그 이후에는 화면에 아무 것도 나타나지 않으며 종료하려면 터미널을 닫아야 합니다.

내가 뭘 잘못했나요?

편집 1

내 nfs 구성 단계는 다음과 같습니다.

NFS 서버:

sudo apt-get install nfs-kernel-server

sudo mkdir /var/nfs/general

sudo nano /etc/exports

  /var/nfs/general *(rw,sync,no_root_squash,no_subtree_check)

sudo exportfs -a

sudo service nfs-kernel-server start

NFS 클라이언트:

sudo apt-get install nfs-common

sudo mount 172.21.215.101:/var/nfs/general /mnt

그리고 를 실행하면 mount -t nfs다음과 같은 결과를 얻습니다.

root@ela-native:/home/salini# mount -t nfs
172.21.215.101:/var/nfs/general on /mnt type nfs (rw,vers=4,addr=172.21.215.101,clientaddr=192.168.164.78)

나도 시도해 showmount -e 172.21.215.101봤어

clnt_create: RPC: Port mapper failure - Timed out 

편집 2

나는 less /var/log/boot.log그것을 서버 시스템에서 시도했고 내 이해에 따르면 nfs 서버에 버그가 있다고 생각합니다.

[ESC[0;1;31mFAILEDESC[0m] Failed to start Automatically refresh installed snaps.


 [ESC[0;1;31mFAILEDESC[0m] Failed to mount /mnt/nfs/var/nfs.
    See 'systemctl status mnt-nfs-var-nfs.mount' for details.
   [ESC[0;1;33mDEPENDESC[0m] Dependency failed for Remote File Systems.
             Starting Permit User Sessions...
             Starting LSB: VirtualBox Linux kernel module...
             Starting LSB: Set the CPU Frequency Scaling governor to "ondemand"...
             Starting LSB: Speech Dispatcher...
             Starting LSB: automatic crash report generation...
             Starting LSB: Apache2 web server...
             Starting LSB: daemon to balance interrupts for SMP systems...
    [ESC[0;32m  OK  ESC[0m] Mounted /mnt/nfs/home.

여기서 문제가 무엇입니까?

편집 3

나는 sudo ufw status numbered그랬고 sudo netstat -nlp | grep :111. 이해합니다:

root@wsm-ela-inc6:/home/test# sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 514/tcp                    ALLOW IN    Anywhere                  
[ 2] 514/udp                    ALLOW IN    Anywhere                  
[ 3] 514/tcp (v6)               ALLOW IN    Anywhere (v6)             
[ 4] 514/udp (v6)               ALLOW IN    Anywhere (v6)             

root@wsm-ela-inc6:/home/test# sudo netstat -nlp | grep :111
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      3062/rpcbind    
tcp6       0      0 :::111                  :::*                    LISTEN      3062/rpcbind    
udp        0      0 0.0.0.0:111             0.0.0.0:*                           3062/rpcbind    
udp6       0      0 :::111                  :::*                                3062/rpcbind    

편집 4

나는 그랬다:

sudo ufw allow from 192.168.1.0/24 to any port 2049

sudo ufw allow from 192.168.1.0/24 to any port 111

다시 시도했지만 showmount다시 터미널에서 이것을 제공합니다.

clnt_create: RPC: Port mapper failure - Timed out

나도 그것을 시도 sudo service portmap restart하고 그것을 얻었다 portmap: unrecognized service. 저도 해봤는데 sudo service statd restart잘 되더군요. 그런 다음 다시 시도했지만 showmount여전히 같은 문제가 발생했습니다.

편집 5

나는 또한 netstat이것을 시도하고 얻었습니다:

    tcp        0      0 wsm-ela-inc6.csez:52630 maa03s29-in-f2.1e:https ESTABLISHED
tcp        0      0 wsm-ela-inc6.csez.z:nfs wsm-ela-inc6.csez.z:890 ESTABLISHED
tcp        0      0 wsm-ela-inc6.csez:34388 stackoverflow.com:https ESTABLISHED
tcp        0      0 wsm-ela-inc6.csez:35504 maa05s06-in-f8.1e:https TIME_WAIT  
tcp        0      0 wsm-ela-inc6.csez.z:890 wsm-ela-inc6.csez.z:nfs ESTABLISHED
tcp        0      0 wsm-ela-inc6.csez:39524 maa03s22-in-f2.1e:https TIME_WAIT  
tcp        0      0 wsm-ela-inc6.csez:shell 192.168.164.78:58982    ESTABLISHED
tcp        0      0 wsm-ela-inc6.csez:34414 stackoverflow.com:https ESTABLISHED
tcp        0      0 wsm-ela-inc6.csez:34438 stackoverflow.com:https ESTABLISHED

답변1

클라이언트와 서버 모두에서 방화벽을 비활성화하면 mount 및 showmount 명령이 제대로 작동하는 것으로 나타났습니다.

서버와 클라이언트에서 방화벽을 비활성화하려고 시도했는데 모든 것이 정상으로 돌아왔습니다. 일반적으로 클라이언트와 서버가 신뢰할 수 있는 동일한 네트워크에 있지 않은 경우 NFS를 둘 사이에서 실행하는 것은 좋은 생각이 아닙니다. 특히 멍청한 방화벽에서는 제대로 작동하지 않기 때문입니다. 신뢰할 수 있는 동일한 네트워크에 있는 경우 다른 시스템에서 들어오는 트래픽에 대해 각 시스템에 대한 보다 포괄적인 권한이 계속 작동할 수 있습니다.

답변2

다음 포트에서 tcp/udp를 사용하도록 허용해 보세요.

111
875
2049
20048
34729
49465

방화벽을 완전히 켜는 대신.

관련 정보