Win10修改SMB连接(共文件夹)的默认端口(445),访问远程的共享文件夹

前言

基于安全的考虑,服务器端的SMB(共享文件夹)应用通过FRP等工具将SMB应用的445端口映射到了公网IP的其他端口,或者直接修改了SMB的默认端口(可参考最后一节目录)

客户端无法像SSH一样通过\\IP:端口访问远程SMB,所以必须在客户端进行一系列配置进行访问

客户端(win10)操作步骤

重点:转发之后访问的应该是\\127.0.0.1\,而不是\SMB服务器IP\。几乎所有人都转发失败应该都是这个原因

我这里的公网IP为117.73.12.12,服务器端SMB映射到了30445端口
根据自己的情况修改

  • win10 右键开始菜单 - Windows PowerShell(管理员),以管理员模式打开PowerShell,输入以下命令配置一个端口转发:
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=30455 connectaddress= 117.73.12.12

效果就是本机访问127.0.0.1的445端口时,会转发到远程IP地址(117.73.12.12)的30445端口

  • 查看端口转发配置列表,可以看到已经成功转发
netsh interface portproxy show all

  • 打开系统服务管理器,找到server,右键属性–> 启动类型改为禁用,然后重启电脑,再次查看服务状态,没有正在运行就是成功了

单击开始菜单,依次点击所有应用→Windows系统→运行
快捷键:win+R键,打开运行,在输入框中输入:services.msc,确定打开。

  • 可以执行netstat -ano | findstr 445命令,查看端口放开情况

  • 打开电脑的文件资源管理(此电脑),在地址栏输入\\127.0.0.1\就可以访问了

注意:一定是输入\\127.0.0.1\

恢复步骤

用完以后,可以打开server的启动,并且删除转发

删除转发的命令:

netsh interface portproxy delete v4tov4 listenaddress=欲删除项目的监听IP listenport=欲删除项目的监听端口

 netsh interface portproxy delete v4tov4 listenport=445 listenaddress=127.0.0.1

附:服务端修改SMB的端口

netsh interface portproxy add v4tov4 listenport=希望被修改成的端口 listenaddress=127.0.0.1 connectport=445 connectaddress=127.0.0.1

修改完记得检查服务端的防火墙是否放通了这个端口

附:动态域名配置方法

创建一个bat文件,粘贴以下内容

@ECHO OFF
ipconfig /flushdns

netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=445
Set ip=
For /f "skip=1 tokens=2 delims=[" %%a in ('ping 替换为域名 -n 1 -w 10') do (
For /f "tokens=1 delims=]" %%b in ("%%a") do (
Set ip=%%b
)
)

netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=替换为端口号 connectaddress=%ip%

把上面的“替换为域名”、“替换为端口号”,改为你的域名和端口号,保存为bat文件,并用windows的计划任务,用管理员权限每天定时运行。

posted @ 2023-02-16 10:57  明月,  阅读(2865)  评论(0编辑  收藏  举报