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

我想要本地主机访问我公司的SMB股票。 这些位于Win7的同行。 这个同行正在运行一个Debian的虚拟机,它本身正在运行一个ssh守护进程。

我可以轻松地创build一个从本地主机到虚拟机的ssh隧道,但无法使SMB转发/代理工作。 我读了太多的这个结果完全混淆在哪个接口和主机端口转发等…

如果我是对的,我必须将本地主机的端口139转发到我的代理上的端口,并在代理本身转发端口139到同一主机上的SSH隧道的端口? 这应该工作吗? 我应该如何设置每个主机来完成?

networking大致如下所示:

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

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

Zoredache给这个问题的答案对于你想要做的事情是一个很好的答案 ,不过我要详细说明你的情况。

如果路由器在你的图表中运行SSH服务器,或者你只是说要通过它来移动SSHstream量,那就不清楚了。 我假设你只是通过端口转发来移动SSHstream量,在这种情况下,我会:

  • 从PC启动一个SSH会话到路由器的公共IP地址,据推测,这个路由器有一个端口转发到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

  • 创build一个/etc/hosts (或者你的操作系统上存在的任何类似的东西),将Windows 7 PC的名称parsing为127.0.0.2

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