Windows 连接 smb 非标准端口

当使用家庭宽带将 smb 服务转发到公网时,由于 445 端口被封,必须使用其它端口,而 Windows 系统只支持连接标准端口,需要通过端口转发解决此问题。

关闭自带文件共享服务

由于 Windows 自带的文件共享服务会占用 445 端口,需要将其关闭以释放端口。

关闭 Windows 功能

在开始菜单中搜索 启用或关闭 Windows 功能 并运行,取消选中 SMB 1.0/CIFS 文件共享支持

搜索并打开 启用或关闭 Windows 功能

取消选中 SMB 功能

关闭 LanmanServer

用管理员模式运行命令提示符,输入以下命令[2]

运行命令提示符

1
2
sc stop lanmanserver
sc config lanmanserver start=disabled

创建端口转发

使用以下命令[3]创建本机的端口转发,将远程 smb 服务转发到本机的 445 端口。将 serverportserverip 改为远程服务的地址。

1
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=serverport connectaddress=serverip

随后重启,即可通过 \\127.0.0.1 连接远程 smb 服务。

IP 地址变化

我们一般会将端口转发绑定到域名上,若域名改变将无法连接,需要重新启动 IP Helper Service 来重新映射域名。启动命令提示符并运行以下命令[4]

1
2
3
ipconfig /flushdns
net stop iphlpsvc
net start iphlpsvc

端口转发检查

查看所有的端口转发设置[3]

1
netsh interface portproxy show all

查看 445 端口占用情况,若已经建立 smb 的连接,可以在这里看到远程 IP[4]

1
netstat -ano|findstr 445

参考文献

  1. https://www.pexels.com/zh-cn/photo/1181772/
  2. PORT 445: What is the use and how to disable this TCP port. H2S Media. 2021-07-29 [2022-09-03]. (原始内容存档于2022-09-03).
  3. 纸乎. Windows 10 下如何修改 smb 连接的默认端口(445)?. 知乎. 2019-05-16 [2022-09-03]. (原始内容存档于2022-09-03).
  4. Morris. Windows 10 下如何修改 smb 连接的默认端口(445)?. 知乎. 2022-02-20 [2022-09-03]. (原始内容存档于2022-09-03).

Windows 连接 smb 非标准端口
https://blog.zhanganzhi.com/zh-CN/2022/09/9fe6d5ab7fe2/
作者
Andy Zhang
发布于
2022年9月3日
许可协议