NFS 프로토콜을 통해 디렉토리를 공유하는 openbsd 서버가 있습니다. 클라이언트에 새 버전의 우분투를 설치한 후에도 여전히 NFS 디렉토리를 마운트하지만 (임의의) 시간이 지나면 nautilus, ls 명령 등이 완전히 정지됩니다. NFS 디렉터리를 마운트 해제할 때까지 파일 시스템에 액세스할 수 없습니다.
정보를 찾아봤지만 도움이 되지 않았습니다.
내 서버는 정리 없이 pf를 실행하고 양쪽에서 NFSv3을 사용하며 rpcinfo 등은 잘 작동합니다. 정보를 위해 내 네트워크는 wireguard를 통해 통신합니다.
누군가 나에게 무엇을 찾아야 할지, 어디를 봐야 할지 말해 줄 수 있나요?
감사해요.
고쳐 쓰다
문제를 발견한 것 같아요. 어느 시점에서 클라이언트는 플래그가 포함된 패킷을 보냅니다.에프서버로(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
나열된 대로 서버가 수신하는 모든 포트에 대한 규칙이 있습니다.tcp
udp
rpcinfo -p