上一篇我们讲到了怎么利用Samba共享目录并在Windows上映射成驱动磁盘,现在我们来聊一聊关于445端口被禁用怎么连接Samba远程目录。
现在因为勒索病毒泛滥,很多服务商都封掉了外网445端口,从而导致我们无法使用远程共享,但是Windows有一个很强大的端口转发功能可以解决我们的问题。
把本机的445端口映射到远程smb服务器的446端口,具体使用哪个端口可以自定义,然后我们修改smb服务器的配置文件
/etc/samba/smb.conf
在 [global] 节点中添加一行 smb ports = 446
修改后一定要重启Samba服务,这样我们就可以使用446端口映射到win电脑的445端口了。
Windows端开启端口转发
1.开启Portproxy
用管理员身份打开CMD,输入如下命令
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=smb服务器的ip地址 connectport=446
上面这段的意思是把远程smb服务器ip的446端口转发到本机127.0.0.1的445端口
2.查看所有的代理
netsh interface portproxy show all
3.查看监听状况
netstat -ano | findstr :445
4.删除代理(正在使用就不要删除)
netsh interface portproxy delete v4tov4 listenport=445 listenaddress=127.0.0.1
在运行里直接输入\\127.0.0.1 或者 \\localhost 即可直接访问,
如果访问到本地的smb的共享或空白文件夹,建议重启一下电脑再试。
以上操作均已在win2008r2 win7 win10 上测试成功。
访问 \\127.0.0.1 显示本机空白文件夹解决方案
问题根源
Windows 系统本身占用 445 端口,自带 SMB 服务优先级高于 netsh 端口转发,
所以 \\127.0.0.1 永远走本机系统 SMB,不会走端口转发,导致看到的是本机共享。
解决方案(可用、亲测有效)
127.1.1.1管理员 CMD 执行转发:
netsh interface portproxy add v4tov4 listenaddress=127.1.1.1 listenport=445 connectaddress=远程IP connectport=446
防火墙放行 127.1.1.1:445
访问直接输:
\\127.1.1.1
这样就绕开本机系统 445,直接转发到远端 446 的 SMB。
# 关闭并禁用本地SMB服务 Stop-Service LanmanServer -Force Set-Service LanmanServer -StartupType Disabled # 关闭SMB 1.0/2.0 组件 Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=445 connectaddress=远程IP connectport=446
之后访问 \\127.0.0.1 就会走转发到远端 446。
推荐使用方案一,不用改系统服务、不用重启、不影响本机正常文件共享
版权声明:
本站发布的内容若侵犯到您的权益,请来信(邮箱:cnzz9@outlook.com)指出,本站将立即改正。
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。