利用端口转发解决445端口被封Windows无法连接远程Samba服务器

上一篇我们讲到了怎么利用Samba共享目录并在Windows上映射成驱动磁盘,现在我们来聊一聊关于445端口被禁用怎么连接Samba远程目录。

现在因为勒索病毒泛滥,很多服务商都封掉了外网445端口,从而导致我们无法使用远程共享,但是Windows有一个很强大的端口转发功能可以解决我们的问题。

把本机的445端口映射到远程smb服务器的446端口,具体使用哪个端口可以自定义,然后我们修改smb服务器的配置文件

/etc/samba/smb.conf

在 [global] 节点中添加一行 smb ports = 446

修改后一定要重启Samba服务,这样我们就可以使用446端口映射到win电脑的445端口了。

利用端口转发解决445端口被封Windows无法连接远程Samba服务器 第1张

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.0.0.1,用本机另一个 IP 做转发(推荐,不关闭系统 SMB)

随便用一个本机虚拟 IP / 额外 IP,比如: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 服务,释放 445 端口

管理员 PowerShell 执行:
# 关闭并禁用本地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。


推荐使用方案一,不用改系统服务、不用重启、不影响本机正常文件共享

未经允许不得转载:悟能源码网 » 利用端口转发解决445端口被封Windows无法连接远程Samba服务器

版权声明:

本站发布的内容若侵犯到您的权益,请来信(邮箱:cnzz9@outlook.com)指出,本站将立即改正。

从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!

本站大部分资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。

本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。

若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。

返回顶部