SMB 代理:通过另外两台主机之间的 SSH 隧道连接到 SMB 服务器

SMB 代理:通过另外两台主机之间的 SSH 隧道连接到 SMB 服务器

我想要 localhost 访问我公司的 SMB 共享。这些共享位于 Win7 对等体上。此对等体正在运行装有 Debian 的虚拟机,而 Debian 本身正在运行 ssh 守护程序。

我可以轻松创建从本地主机到虚拟机的 ssh 隧道,但无法使 SMB 转发/代理正常工作。我阅读了太多关于这方面的资料,最终完全搞不清楚要转发到哪个接口和主机上的哪个端口等...

如果我没记错的话,我必须将本地主机的端口 139 转发到我的代理上的端口,并在代理本身上将端口 139 转发到同一主机上的 ssh 隧道端口?这应该可以工作吗?我应该如何设置每个主机来实现这一点?

该网络大致如下所示:

localhost ===(ssh)=== |router| ===(ssh)=== debian vm ===(smb)=== win7

路由器只是将 SSH 连接转发到虚拟机。

答案1

@Zoredache 对这个问题的回答对于您要做的事情来说是一个很好的选择,但我将根据您的情况进行详细说明。

从您的图表中无法判断路由器是否正在运行 SSH 服务器,或者您只是说要通过它传输 SSH 流量。我假设您只是通过端口转发传输 SSH 流量,在这种情况下,我会:

  • 从你的 PC 启动到路由器公共 IP 地址的 SSH 会话,该路由器可能有一个端口转发到 Debian VM 的 SSH 服务器端口

  • 将 PC 上的端口 139(指定为 127.0.0.2:139)转发到 Windows 7 PC 的 LAN IP 地址,即端口 139(假设 Debian VM 可以访问 Windows 7 PC)。如果您使用 OpenSSH,语法如下ssh router-ip -L 127.0.0.2:139:win-7-pc-ip:139

  • 创建一个/etc/hosts(或任何与你的操作系统上存在的内容类似的)来将 Windows 7 PC 的名称解析为 127.0.0.2

这将允许您通过转发到 Windows 7 PC 上的 SMB 端口的本地环回地址按名称访问 Windows 7 PC。

答案2

显然,(与此同时)以下是可能的https://askubuntu.com/questions/1202646/how-to-mount-a-samba-share-over-an-ssh-tunnel:通过 ssh 转发端口(-L选项),然后添加port=挂载选项。

相关内容