我成功地将目录从 CentOS 7 服务器导出到 CentOS 6 服务器(我使用了*
(/etc/exports
而不是服务器的 IP)。但我似乎找不到适合我通过 SSH 隧道导出它的解决方案。这是我目前的/etc/exports
:
/dir localhost(insecure,rw,sync,no_subtree_check,no_root_squash,no_all_squash)
我确保防火墙没有阻止它:
[SERVER]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client nfs
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
7475
在客户端,我通过选择随机源端口和目标(NFS 服务器 IP 和 NFS 端口)使用 PuTTY 设置远程隧道10.2.10.14:2049
。事件日志确认它有效:
2020-02-04 12:07:48 Requesting remote port 7475 forward to 10.2.10.14:2049
2020-02-04 12:07:48 Remote port forwarding from 7475 enabled
以下是我尝试安装时发生的情况:
[CLIENT]# mount -v -t nfs -o port=7475 localhost:/dir /dest
mount.nfs: timeout set for Tue Feb 4 12:09:53 2020
mount.nfs: trying text-based options 'port=7475,vers=4,addr=127.0.0.1,clientaddr=127.0.0.1'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting localhost:/dir
PuTTY 事件日志产生以下输出:
2020-02-04 12:07:31 Received remote port localhost:7475 open request from 127.0.0.1:962
2020-02-04 12:07:31 Attempting to forward remote port to 10.2.10.14:22
2020-02-04 12:07:31 Forwarded port opened successfully
2020-02-04 12:07:31 Forwarded port closed
关于如何让 NFS 在此处工作,您有什么想法或故障排除技巧吗?我尝试查看tcpdump
,但无法真正理解输出。不寻求sshfs
解决方案。
答案1
这是我犯的一个愚蠢的错误。我当时正在遵循这里,但似乎(我不完全理解本地端口转发)因为我的是一个远程隧道,而不是像说明,我不得不改口/etc/exports
说:
/dir *(insecure,rw,sync,no_subtree_check,no_root_squash,no_all_squash)
可能并非所有这些都是必要的。不知何故,我认为执行 SSH 隧道会将客户端伪装成 NFS 服务器,但它似乎只是重新路由,所以这就是为什么导出到localhost
拒绝访问客户端服务器的原因。
我认为如果 NFS 仅向那些能够通过 SSH 隧道连接到它的人导出,这可能是安全的。但事实并非如此,这对我来说太不安全了,因为 NFS 似乎没有简单的密码保护,所以我将使用 samba 共享。