我已经在 CentOS 7 上安装了 NFS 服务器。我还有另外两台主机,我想与它们共享不同的目录。这是我的/etc/exports
文件:
/home/WS2016 192.168.200.2(rw,sync,no_subtree_check)
/home/debian 192.168.120.1(rw,sync,no_subtree_check)
正如共享目录的名称所暗示的那样,一个专用于 Windows Server 2016,另一个专用于 Debian 9 主机。Debian
9 只需要为 开放端口 2049 (!) sudo mount 192.168.120.2:/home/debian /mnt/nfs/storage
。只要 允许该端口,R/W 访问就可以正常工作。iptables
另一方面
,Windows Server 最多可以通过 UNC ( \\IP\
) 或网络驱动器映射进行 R/O 访问。
要知道使用了哪些端口,我grep udp
从rpcinfo -p
的输出中忽略了动态端口。我不确定端口 20048。Debian 不需要它?
111 portmapper 2049 nfs 2049 nfs_acl 20048 mountd
所以,我想知道:
- 是否可以只为 TCP/UDP 开放端口 2049/111,并通过 Windows 上的 UNC 路径进行有效的 R/W 访问?
- 如果没有,我是否只需在规则中结合
-s 192.168.200.2
和-m multiport --dports 111,2049,20048
标志iptables
?
快速更新:这是ls -la /home/
来自 NFS 服务器主机的输出
[root@server ~]# ls -la /home/
total 0
drwxr-xr-x. 5 root root 51 10. may 10.48 .
dr-xr-xr-x. 17 root root 242 9. may 22.07 ..
drwxr-xr-x 2 nfsnobody nfsnobody 32 10. may 12.34 debian
drwxr-xr-x 2 nfsnobody nfsnobody 18 10. may 15.54 WS2016
答案1
NFSv4 仅需要端口 2049。如果您实际使用 NFSv4 安装共享,则只读安装不太可能与哪些端口打开有关。(而且几乎没有理由使用古老的 1990 年代 NFSv3 或史前的 NFSv2。您应该确保不会使用。)