
我有兩台電腦 A 和 B,它們不在同一網路上,我想將 nfs 共用從一台電腦匯出到另一台電腦。
在中間,我有一台機器 M,它在兩個網路上。
我成功地將 A 的共享掛載到 M 上。
我在 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。