挂载/执行 showmount 时终端挂起

挂载/执行 showmount 时终端挂起

我正在创建 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 numberedsudo 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 并不是一个好主意 - 尤其是因为它不能很好地与愚蠢的防火墙配合使用。如果它们在同一个受信任的网络上,那么在每个系统上对来自另一个系统的输入流量进行更全面的许可可能会让事情保持正常。

相关内容