NFS服务器中的showmount问题

想要查看挂载了NFS服务器export目录的客户端信息,运行命令showmount -a,发现没有返回任何信息。

查阅资料发现

The showmount command does not display the names of NFS Version 4 clients.
查看UNIX在线手册页: http://www.unix.com/man-page/all/1m/showmount

进一步验证这个说法,在客户端运行命令:

mount -t nfs -o nfsvers=3 host:/exportdir /client_dir #指定使用nfs version 3来挂载

再运行showmount -a可以看到有客户端信息了:


在版本2和3中,nfs服务器是通过守护进程rpc.mountd提供服务的,它有-V(--nfs-version)参数可以指定nfs的版本,客户端向nfs服务器发送MNT请求,

该请求包含两个参数:一个绝对路径表示的目录和一个隐式参数表示请求发送方的IP地址。rpc.mountd会将没个成功的MNT请求加入/var/lib/nfs/rmtab文件记录中。

当接收到一个UMNT请求时就从该文件中移除一个记录。

备注:nfs版本4中不使用此守护进程,实际上rmtab文件也没有客户端的记录

rpc.nfsd实现了用户层的nfs服务。

mount.nfs是nfs工具包的一部分,提供nfs客户端功能。它被mount命令使用,用来挂载nfs共享目录,然而这个子命令也可以作为一个单独的命令来运行,只不过功能有限。

要禁止使用 `showmount -e` 命令来列出 NFS 共享,你可以采取以下步骤: 1. 编辑 NFS 服务器的配置文件:打开 NFS 服务器的配置文件(通常是 `/etc/exports`)。 2. 修改共享配置:找到你想要禁止列出的共享配置,并添加 `nohide` 和 `insecure` 选项。 ``` /path/to/share *(nohide,insecure) ``` 这里的 `/path/to/share` 是你要共享的路径,`*` 表示允许所有主机访问。通过添加 `nohide` 和 `insecure` 选项,可以禁止 `showmount -e` 列出该共享。 `nohide` 选项用于阻止共享在 `exportfs` 时隐藏,确保它始终可见。 `insecure` 选项用于禁用客户端的端口随机化,这样就无法使用 `showmount -e` 获取共享列表。 3. 保存并关闭文件:保存对配置文件的更改并关闭编辑器。 4. 重新加载 NFS 服务:使用适当的命令重新加载 NFS 服务,以使更改生效。具体的命令取决于你使用的操作系统和服务管理工具。以下是一些常见的重新加载命令: - 对于 systemd 系统: ``` systemctl reload nfs-server ``` - 对于 SysV init 系统: ``` service nfs reload ``` - 对于 Upstart 系统: ``` initctl reload nfs ``` 5. 验证更改:使用 `showmount -e` 命令尝试列出 NFS 共享,你应该无法看到被禁止列出的共享。 请注意,禁止 `showmount -e` 列出 NFS 共享可能会增加某些管理操作的复杂性,因为你将无法在客户端上直接查看可用的共享。确保在禁用之前,你有其他适当的方法来管理和访问 NFS 共享。此外,根据你的操作系统和 NFS 版本,可能还有其他方法来禁用 `showmount -e` 命令,请参考相关文档以获取更详细的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值