基于安全的考虑,服务器端的SMB(共享文件夹)应用通过FRP等工具将SMB应用的445端口映射到了公网IP的其他端口,或者直接修改了SMB的默认端口(可参考最后一节目录)
客户端无法像SSH一样通过\\IP:端口
访问远程SMB,所以必须在客户端进行一系列配置进行访问
重点:转发之后访问的应该是\\127.0.0.1\
,而不是\SMB服务器IP\。几乎所有人都转发失败应该都是这个原因
我这里的公网IP为
117.73.12.12
,服务器端SMB映射到了30445
端口
根据自己的情况修改
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
单击开始菜单,依次点击所有应用→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
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的计划任务,用管理员权限每天定时运行。
TAG:win10 445端口