如何将网络共享直接隧道传输到共享主机?

如何将网络共享直接隧道传输到共享主机?

我之前曾将混合 Linux 和 Windows 客户端通过隧道传输到“防火墙内客户端”(可以访问共享的主机),所以我知道这至少是可能的。

但是如何从客户端直接通过隧道连接到网络共享的主机呢?

我可以让 Samba 监听端口,比如 5559(仅作为示例),并且只接受来自本地主机的连接,并将客户端的 5559 隧道传输到该主机 - 这样客户端看起来就像是从主机的本地主机连接的吗?我不知道如何设置它。到目前为止,我已经配置了 Samba:

hosts allow = 127.0.0.1 ::1 lo
interfaces = lo 127.0.0.1
bind interfaces only = yes

我正在从主机建立隧道:

ssh -R 5559:localhost:5559 shrusr@shrhost -Nf

但是,如果 samba 已在运行,则 TCP 转发会失败。如果隧道已在运行,则 samba 无法启动。我试图实现的目标可行吗?还有其他方法吗?

看起来应该可以工作 - 我甚至可以通过该 ssh 隧道 netcat 我自己的文件。因此,netcat 可以毫无问题地监听与 ssh 相同的端口。只有 smbd 会拒绝,并且如果先启动,还会阻止来自该端口的 ssh。

任何意见,将不胜感激。

答案1

似乎这是不可能的,因为 SSH 隧道代表“非广播接口” - Samba 在设计上不会监听该接口。

我能够通过使用 OpenVPN 而不是 SSH 隧道来解决这个问题。虽然“tun”设备也是非广播接口,但“tap”形式是广播接口;Samba 确实会在这样的接口上监听。

如果 NFS 能像 Samba 一样强大就好了。我希望既有接口选择,又有真正的 unix 权限,但 NFS 过于复杂,设计不佳,无法限制为单一接口。

相关内容