我有一个具有文件夹权限的NFS服务器,如下所示。有50个客户端需要在同一网络中连接到此服务器。我想知道查找命令的是什么,这些命令是从服务器访问此服务器的客户端。
NFS服务器配置文件如下所示。
[root@server ~]# cat /etc/exports
/home/guests *(rw,sync)
/india *(rw,sync)
以下是共享文件夹列表
[root@server ~]# showmount -e
Export list for server.sanith.com:
/india *
/home/guests *
出于测试目的,我现在已将一个客户端连接到服务器。以下输出来自“client2”机器。
[root@client2 ~]# showmount -e 192.168.1.10
Export list for 192.168.1.10:
/india *
/home/guests *
[root@client2 ~]# mount -t nfs 192.168.1.10:/india /test
[root@client2 ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.10:/india on /test type nfs (rw,vers=4,addr=192.168.1.10,clientaddr=192.168.1.12)
我尝试使用showmount -a
和showmount -d
,但不确定哪些邮件没有列出连接的客户端机器。
[root@server ~]# showmount -a
All mount points on server.sanith.com:
[root@server ~]# man showmount
[root@server ~]# showmount -d
Directories on server.sanith.com:
[root@server ~]# netstat -an | grep 192.168.1.10:2048
[root@server ~]# netstat -an | grep 192.168.1.10:2049
[root@server ~]# cat /var/lib/nfs/rmtab
[root@server ~]#
注意:在此测试期间,服务器上会暂时禁用防火墙。 请指教。
答案 0 :(得分:5)
通过在NFS服务器上运行以下命令,可以找到已连接的NFS客户端:
netstat | grep :nfs
答案 1 :(得分:2)
netstat -a | grep nfs
这对我在Ubuntu GNOME 16.04上有用。
答案 2 :(得分:1)
由于netstat
并非总是可用,因此将ss
替换,您也可以使用
ss -a|grep nfs
答案 3 :(得分:1)
NFS可同时在UDP和TCP上运行,只有打开的TCP连接将显示在netstat
或ss
中。另外,作为分布式文件系统,它(历史上)应有problems PDF 的应有份额(状态,缓存,锁定,通知,安全性-其中一些通过额外的RPC功能具有解决方案,例如rpc.statd
)。
在Linux NFS服务器上(请参见man rpc.mountd
),客户端安装/卸载请求记录在/var/lib/nfs/rmtab
中,就像/etc/mtab
一样,因此答案应该是:
cat /var/lib/nfs/rmtab
如果为空,则说明rpc.mountd
有问题(因此您应该检查RPC服务是否正在运行),或者所有客户端都是不使用此功能的NFSv4。
在我检查过的rmtab
版本中,显示为:
10.1.2.0/24:/path/to/export1:0x000...flags
10.1.2.10:/path/to/export1:0x0000...flags
10.1.2.22:/path/to/export1:0x0000...flags
10.1.2.0/24:/path/to/export2:0x000...flags
10.1.2.22:/path/to/export2:0x0000...flags
10.1.2.99:/path/to/export2:0x0000...flags
即列出了每个安装点,然后是使用它的客户端。
请注意手册页中的警告:
但是,此文件主要是装饰性的。第一,即使调用rpc.mountd的UMOUNT过程,客户端也可以继续使用文件句柄。还有两个,如果客户端在没有通知rpc.mountd的情况下重新启动,则过时的条目将保留在rmtab中。
在这方面,较新的内核中的/proc/fs/nfsd/client
方法(@Vsevolod Gromov的答案)应该更好,但是因为只有supports NFSv4 clients应该表现得更好。
答案 4 :(得分:0)
从Linux内核5.3开始,您可以使用名为/proc/fs/nfsd/clients
的特殊目录。
您可以通过uname -r
命令检查内核版本