【发布时间】:2011-07-04 05:03:19
【问题描述】:
我想实现一个小工具,让我可以在 Windows 上完成在任何其他操作系统上已经可以轻松完成的工作 - 通过 IP 地址和端口指定远程 SMB 服务器。原生地,Windows 不会通过 445 或 139(它的选择)以外的任何端口执行 SMB,我厌倦了使用whack-a-mole 解决微软不断添加到 Windows 以通过 SSH 建立隧道 SMB 的各种坏事的解决方法端口转发。
我想到的是一个小命令行应用程序,它可以让我做类似的事情
netsubst 服务器名 -i IP -p 端口
这将与司机携手并进? dll?它作为 SMB 重定向器连接到 Windows,但扫描由 netsubst 设置的服务器名称表,而不是在网络上查找它们以找出要连接的内容。这样我就可以了
net use X: //servername/sharename /user:username *
以通常的方式,除了 Windows 在它可以找到的任何机器的端口 445 或 139 上寻找 //servername 之外,它会直接访问地址 IP,端口 PORT;如果 IP 碰巧是 127.0.0.1 并且 PORT 碰巧是通过 ssh 转发到其他地方的东西,那么一切都会正常工作,我将不再需要处理 Windows 在访问 localhost 端口 139 和445.
我认为我需要的是类似于 VirtualBox 用于进行主机文件共享的 //vboxsvr 来宾添加,但可能更简单,因为它不需要完整的后端 - 在我的理想世界中,only 我需要替换的 Windows 功能是建立与远程 SMB 服务器的初始连接的部分。但是在我开始研究 VirtualBox 源代码之前,有人可以建议一种更简单的方法来完成这项工作,或者可以将我指向有关实现 SMB 重定向器的 Microsoft 文档?
【问题讨论】:
-
我知道您可以在 TDI 或 WFP 过滤器驱动程序中进行 ip/port 重定向,但我并不真正了解开发它们的细节。也许有人已经编写了一个简单的通用 ip/port 重定向驱动程序?
-
很确定我需要了解所有 TCP/IP,而不是在它的胆量中喋喋不休。
-
这个(minek.com/?port_redirection)怎么样?有点骇人听闻,但我认为如果不使用过滤器驱动程序就无法让它变得更优雅。 Windows 不是 Linux。
-
问题不在于端口重定向;那部分很容易。问题是 Windows 想要对 all 本地网络接口上的端口 445 和 139 进行独占控制,而无法在任何其他端口上运行 SMB。所以是的,过滤器驱动程序是我需要的,我正在寻找最快的方法来提高写作技能。