windows文件共享服务,也就是samba服务,相对其他的文件传输服务而言,最大的优势是他可以被windows挂载到文件系统中,无论你使用什么样的编辑器去编辑文件系统的文件,修改都会实时被同步到云服务器上去。但是由于所使用的端口是445端口,这个端口经常被用于黑客攻击。
因此,像中国电信默认都是关闭了445端口访问的,我们要想让阿里云等服务商作为samba服务,就必须修改端口,不使用445端口。
其实,linux上的samba服务器默认是可以修改端口的,我们也可以利用类似iptables等方式做数据转发。可是,windows的文件共享服务并不支持修改端口,使用windows共享,已经认定了必须使用445端口。这也是一直一来,阿里云等服务商无法实现提供samba服务的原因。
既然windows只认可445端口,我们是否可以做路由转发,让445端口映射到其他的ip网段的端口上去呢?
顺着这个想法,小沃在最近做了一些尝试,结果发现,无论是win10还是win7,默认都已经占用了445端口,我们无法监听。因此我们需要限解除445端口的端口占用。然后做路由转发步骤如下:
windows的运行中输入services.msc
然后找到server这个服务,禁用它。(一定是要禁用,改为手动都没有用)
重启windows
以管理员身份启动cmd,然后输入netsh interface portproxy add v4tov4 listenport=445 connectaddress=服务器ip connectport=服务器port
这样,当你访问\\127.0.0.1时,实际就是访问远端的samba服务了。
如果想取消,可以输入netsh interface portproxy delete v4tov4 listenport=445
注:netsh是windows自带的一个命令,这个命令可以实现端口转发,查看转发列表命令如下netsh interface portproxy show all
另外,我发现只需要禁用server这个服务即可,不需要修改注册表,网上很多教程有错误。还有,文件共享的samba,仅仅需要445端口就能正常使用,不需要其他端口。
文章作者:沃航科技