GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener la lista de clientes conectados a un servidor NFS dentro de una red local?

Puede encontrar clientes NFS conectados ejecutando lo siguiente en el servidor NFS:

netstat | grep :nfs

NFS funciona sobre UDP y TCP, solo las conexiones TCP abiertas se mostrarán en netstat o ss . Además, como sistema de archivos distribuido, ha tenido (históricamente) una buena cantidad de problemas (estado, caché, bloqueo, notificaciones, seguridad, algunos de los cuales tienen soluciones a través de funciones adicionales de RPC, por ejemplo, rpc.statd ).

En un servidor Linux NFS (ver man rpc.mountd ) las solicitudes de montaje/desmontaje del cliente se registran en /var/lib/nfs/rmtab , como /etc/mtab , por lo que la respuesta debería ser:

cat /var/lib/nfs/rmtab

Si está vacío, entonces tienes un problema con rpc.mountd (por lo que debe verificar los servicios RPC en ejecución), o todos los clientes son NFSv4 que no usan esta función.

En las versiones que he comprobado rmtab se presenta como:

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

es decir, se enumera cada punto de montaje, seguido de los clientes que lo utilizan.

Tenga en cuenta la advertencia en la página del manual:

Sin embargo, este archivo es principalmente ornamental. Primero, el cliente puede continuar usando el identificador de archivo incluso después de llamar al procedimiento UMOUNT de rpc.mountd. Y dos, si un cliente se reinicia sin notificar a rpc.mountd, una entrada obsoleta permanecerá en rmtab.

El /proc/fs/nfsd/client El enfoque (respuesta de @Vsevolod Gromov) en los núcleos más nuevos debería ser mejor en este sentido, pero debido a que solo admite clientes NFSv4, que deberían comportarse mejor.


Desde el kernel de Linux 5.3, puede usar un directorio especial llamado /proc/fs/nfsd/clients .

Puede verificar la versión del Kernel por uname -r comando


Desde netstat no siempre está disponible porque debe ser reemplazado por ss también podrías usar

ss -a|grep nfs


Linux
  1. ¿Cómo obtener de forma segura la versión de Ksh?

  2. ¿Cómo encontrar qué otras máquinas están conectadas a la red local?

  3. ¿Cómo obtener la última versión de Winetricks en Ubuntu?

  4. ¿Cómo detectar el estado de conexión física de un cable/conector de red?

  5. ¿Cómo hago para que mi servidor web Golang se ejecute en segundo plano?

Cómo obtener el tamaño de un directorio en Linux

Cómo usar el comando showmount para enumerar recursos compartidos en un servidor NFS

Cómo averiguar el estado conectado de un cable de red en Linux

Cómo enumerar los miembros de un grupo en Linux

Cómo obtener el mejor rendimiento del servidor Nginx

¿Cómo obtener una lista de los clientes wifi conectados en OpenWrt 10.03?