nfsv3을 사용하는 Linux에서 다음 명령은
showmmount -d
내 nfs 서버에 원격 클라이언트가 마운트된 디렉터리를 표시합니다. 원격 마운트 디렉토리가 있는 nfs4의 경우 showmount 명령은 아무것도 표시하지 않습니다. 내 로컬 컴퓨터에서 어떤 원격 클라이언트가 nfs 서버를 사용하고 있는지 어떻게 알 수 있나요?
답변1
NFSv4는 tcp/2049 포트만 사용하므로 다음 명령을 사용하여 서버에 연결된 nfs 클라이언트를 간단히 확인할 수 있습니다.
ss -tano state established sport nfs
답변2
해결책을 찾으세요.
netstat -ta | grep nfsd|grep ESTA|awk '{print $5}'|cut -d : -f 1
또는
ss -rta | grep nfsd|grep ESTA|awk '{print $5}'|cut -d : -f 1
연결된 모든 클라이언트를 보여줍니다.
열린 디렉터리와 사용된 파일을 표시하려면 내 클라이언트가 215로 식별된다고 가정하고 이전 procfs를 쿼리할 수 있습니다.
cd /proc/fs/nfsd/clients/215
파일이 3개 보이네요
ctl info states
파일 정보에서 클라이언트의 IP, 사용된 포트, 호스트 이름을 볼 수 있습니다.
clientid: ******************
address: "192.168.0.2:850"
status: confirmed
name: "Linux NFSv4.2 myclient.host.example"
minor version: 2
Implementation domain: "kernel.org"
Implementation name: "Linux 6.1.12 #1 SMP PREEMPT_DYNAMIC Sat Feb 18 16:45:16 CET 2023 x86_64"
Implementation time: [0, 0]
callback state: UP
callback address: 192.168.0.2:0
파일 상태에는 사용 중인 파일, 권한 및 기타 정보가 표시됩니다.
고양이 나라
- ***********: { type: open, access: r-, deny: --, superblock: "00:18:4627", filename: "video/My vacations.mp4", owner: "open id:******************" }
- *********************: { type: deleg, access: r, superblock: "00:18:4627", filename: "video/My vacations.mp4" }