挂载 nfs 共享的导出

挂载 nfs 共享的导出

我有两台机器 A 和 B,它们不在同一个网络上,我想将 nfs 共享从一台机器导出到另一台机器。

在中间,我有一台位于两个网络上的机器 M。

我成功地在 M 上安装了 A 的共享。现在,我想将此安装导出到 B。

我在 M 上创建了一个导出,如下所示:

/mnt/path/to/mountpoint/of/A's/nfsshare <B's IP address>(rw,insecure,secure,root_squash,wdelay,sync,no_subtree_check)

并尝试将其安装在 B 上,如下所示:

<M's hostname>:/mnt/path/to/mountpoint/of/A's/nfsshare /some/empty/directory  nfs auto,rw,rsize=65535 0 0

当我尝试挂载 M 的导出时,我在 B 上收到此消息:

mount.nfs:vm-dc:/mnt/dcstore01/data02/formats_exploitation 失败,服务器给出的原因:权限被拒绝

我在 M 的系统日志中收到此消息:

Dec  6 13:53:05 vm-dc rpc.mountd[27916]: authenticated mount request from 10.0.0.1:773 for /mnt/dcstore01/data02/formats_exploitation (/mnt/dcstore01/data02)
Dec  6 13:53:05 vm-dc rpc.mountd[27916]: qword_eol: fflush failed: errno 22 (Invalid argument)
Dec  6 13:53:05 vm-dc rpc.mountd[27916]: Cannot export /mnt/dcstore01/data02, possibly unsupported filesystem or fsid= required

我应该怎么办 ?

答案1

这称为 nfs 重新导出,现代 linux 内核/发行版不允许这样做。作为解决方法,请尝试在主机 M 上进行端口转发:

  iptables -t nat -A PREROUTING -p tcp --dport 2049 -j DNAT --to-destination 10.10.10.10:2049
  iptables -t nat -A POSTROUTING -p tcp --dport 2049 -j MASQUERADE

对 mountd 也执行相同的操作,但最好先在主机 A 上的 /etc/sysconfig/nfs 中修复 mountd 端口

 RPCMOUNTDOPTS="--port 2052"

请记住,mountd 也可能使用 udp。

相关内容