我想实现一个小工具,让我在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重定向?
我的想法是创建一个小型命令行应用程序,让我可以执行类似以下命令:
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重定向?