Windows配置端口转发绕过SMB 445端口限制
为预防勒索病毒利用445端口SMB协议上的漏洞大肆传播,各大运营商都相继屏蔽了445端口。并且在Windows上,不管是服务端还是客户端的445端口都是写死的,无法更改,所以为了能够继续使用Windows上的SMB服务,只能通过配置端口转发来实现连接。
服务端配置
说明
如果是直接购买的云服务商的文件存储NAS服务,出于数据安全性考虑,云服务商的NAS服务默认都是不对公网暴露的。如果您的业务场景对数据传输的安全性要求不高,需要通过公网直接访问NAS的话,可以直接选择购买NAT网关或者负载均衡SLB将NAS服务映射到非445端口上,无需进行以下操作。
- 在任务栏搜索框里输入“
cmd”,右键选择“以管理员身份运行”,打开命令提示符窗口,执行以下命令添加端口转发规则。
1 | netsh interface portproxy add v4tov4 listenport=<自定义非445端口> listenaddress=0.0.0.0 connectport=445 connectaddress=<SMB服务器IP> |
说明
删除端口转发规则命令如下:
1 netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=<自定义非445端口>
- 运行以下命令查看转发规则。
1 | netsh interface portproxy show all |
客户端配置
说明
本节内容在Windows系统首次挂载时才需要操作
关闭本地445端口占用
- 按“
Win+R键”,输入“cmd”回车,打开命令提示符,执行以下命令,检查本地445端口是否被占用。
1 | netstat -ano | findstr ":445" |
说明
如果返回如下类似信息,则表示本地445端口被占用,继续以下操作,反之则跳过本小节。
1
2 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP [::]:445 [::]:0 LISTENING 4
按“
Win+R键”,在运行窗口中输入“regedit”回车,打开注册表编辑器。依次点击注册表选项“
HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters”。


- 在Parameters这个子项的右侧,点击鼠标右键,选择“
新建”-“QWORD(64位)值”。

- 然后将子键的名称设置为“
SMBDeviceEnabled”,数据值设置为0。


- 按“
Win+R键”,输入“services.msc”回车,打开服务窗口,找到名为“Server”的服务,双击打开属性,将启动类型改为禁用,最后点击确定。

重启电脑
按“
Win+R键”,输入“cmd”回车,打开命令提示符。执行以下命令,确认本地445端口没有被占用。
1 | netstat -ano | findstr ":445" |
配置本地端口转发
- 在任务栏搜索框里输入“
cmd”,右键选择“以管理员身份运行”,打开命令提示符窗口,执行以下命令添加端口转发规则。
1 | netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=<自定义非445端口> connectaddress=<SMB服务器IP> |
说明
删除端口转发规则命令如下:
1 netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=445
- 运行以下命令查看转发规则。
1 | netsh interface portproxy show all |
访问验证
在客户端按“Win+R键”,输入“\\127.0.0.1”回车,挂载成功ヾ(^▽^ヾ)