NFS 客户端 (ubuntu) 在使用 openbsd 服务器/FIN_WAIT_2 一段时间后冻结

NFS 客户端 (ubuntu) 在使用 openbsd 服务器/FIN_WAIT_2 一段时间后冻结

我有一个 openbsd 服务器通过 NFS 协议共享目录。在客户端安装新版本的 ubuntu 后,我仍然挂载 NFS 目录,但在一段时间(随机)之后:nautilus、ls 命令等完全冻结。在卸载 NFS 目录之前,我无法访问我的文件系统。

我寻找信息但没有任何帮助。

我的服务器运行 pf (不带清理),我在两侧使用 NFSv3,rpcinfo 等工作正常。有关信息,我的网络通过wireguard进行通信。

有人可以告诉我要寻找什么或去哪里寻找吗?

谢谢。

更新

我想我发现了问题。在某个时刻,客户端发送带有标志的数据包F到服务器(tcpdump 结果):

12:16:45.022393 192.168.100.2.998 > 192.168.100.1.2049: F 141:141(0) ack 117 win 1284 <nop,nop,timestamp 3929122361 2338823414> (DF)

并被卡住,因为以下数据包是:

12:16:45.022470 192.168.100.1.2049 > 192.168.100.2.998: . ack 142 win 1030 <nop,nop,timestamp 2338823422 3929122361>
12:17:45.187125 192.168.100.2.998 > 192.168.100.1.2049: . ack 117 win 1284 <nop,nop,timestamp 3929182521 2338823422> (DF)
12:17:45.187153 192.168.100.1.2049 > 192.168.100.2.998: . ack 142 win 1030 <nop,nop,timestamp 2338823542 3929182521>
12:18:45.849519 192.168.100.2.998 > 192.168.100.1.2049: . ack 117 win 1284 <nop,nop,timestamp 3929243193 2338823542> (DF)
12:18:45.849548 192.168.100.1.2049 > 192.168.100.2.998: . ack 142 win 1030 <nop,nop,timestamp 2338823664 3929243193>
12:19:47.294335 192.168.100.2.998 > 192.168.100.1.2049: . ack 117 win 1284 <nop,nop,timestamp 3929304637 2338823664> (DF)
12:19:47.294359 192.168.100.1.2049 > 192.168.100.2.998: . ack 142 win 1030 <nop,nop,timestamp 2338823786 3929304637>

这样的线条无限期地出现......

事实上,连接保持在FIN_WAIT_2。在客户端:

client$ netstat -an | grep 2049
tcp        0      0 192.168.100.2:998       192.168.100.1:2049      FIN_WAIT2 

并在服务器上:

vps$ doas pfctl -s states | grep 2049 
all tcp 192.168.100.1:2049 <- 192.168.100.2:998       ESTABLISHED:FIN_WAIT_2

答案1

检查是否pf阻止某些内容很简单:只需添加log到(所有?)block规则并使用tcpdump -neti pflog0来查看会发生什么。

接下来,确保服务器上所有与 NFS 相关的端口(rpcinfo -p为您提供列表)都可以从客户端访问(例如nc -z <server_ip> 2049)。

第三,确保Linux使用与服务器相同的协议(OpenBSD默认使用UDP,但这可以通过-t在运行时添加标志nfsd*来更改)和保留端口(即<1024),我不这样做思考默认情况下是这样。

我的情况

我成功地在 OpenBSD 服务器和 Linux 客户端 (Debian 11.6) 之间使用 NFS,跨越防火墙,在客户端上使用以下设置:

/etc/auto.master:

+auto.master
/nfs    /etc/auto.nfs

/etc/auto.nfs:

music    -fstype=nfs,vers=3,rw,soft,rsize=32768,wsize=32768,noatime,timeo=1200,retrans=10,proto=tcp,resvport,nolock,noacl 10.17.18.10:/shared/media/music

在防火墙上,我对服务器侦听的所有端口都有规则,如pass所列。tcpudprpcinfo -p

相关内容