实现Windows SMB重定向器的最简单方法是什么?

5
我想实现一个小工具,让我在Windows上能够像其他操作系统一样轻松地指定远程SMB服务器的IP地址和端口。原生的Windows只会使用445或139端口进行SMB,而我已经厌倦了为了解决Microsoft不断添加到Windows中以破坏通过SSH端口转发进行SMB隧道的各种问题而玩 whack-a-mole
我的想法是创建一个小型命令行应用程序,让我可以执行类似以下命令:
netsubst servername -i IP -p PORT
这将与一个驱动程序或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对本地主机端口139和445的访问限制了。
我想我需要的是类似于VirtualBox使用的//vboxsvr客户附加功能,用于进行主机文件共享的东西,但可能更简单一些,因为它不需要完整的后端。在我的理想世界中,我只需要替换与远程SMB服务器建立初始连接的部分Windows功能即可。但在我开始深入研究VirtualBox源代码之前,是否有人可以建议一种更简单的方法来完成这个任务,或者指导我如何实现SMB重定向?

我知道你可以在 TDI 或 WFP 过滤驱动程序中进行 IP/端口重定向,但我不太了解开发它们的具体细节。也许有人已经编写了一个简单通用的 IP/端口重定向驱动程序? - Luke
我相信我需要在TCP/IP的所有层面上进行操作,而不是在其内部深入挖掘。 - flabdablet
这个怎么样(http://www.minek.com/?port_redirection)?有点hackish,但我认为如果不使用过滤驱动程序,你无法使它更加优雅。Windows不是Linux。 - Luke
问题并不在于端口重定向,那部分很容易解决。问题在于Windows想要对所有本地网络接口独占控制445和139端口,而又没有办法在其他端口上运行SMB。因此,是的,我需要一个过滤驱动程序,并且我正在寻找最快的方法来提高编写过滤驱动程序的技能。 - flabdablet
4个回答

5
\\server@port\share 是 WebDAV 的有效语法。当您在 UNC 路径符号中加入 @port 后,net use 就会从 SMB 切换到 WebDAV。您无法更改 SMB 使用的端口。
--Ben

2

1

-1

net use * \\servername@XXXX\ 其中 XXXX 是端口号。 我刚在 Windows 7 上检查过,所以它完美地工作了。


4
对我来说无效(系统错误53,找不到网络路径)。这个语法在哪里有说明文档? - flabdablet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接