在mac下, 连接smb服务特别方便, 直接smb://ip:端口即可, 然而windows下却不能使用\ip:端口的方式访问, 只允许使用445端口, 即带了端口访问无效...
由于之前
永恒之蓝
病毒肆虐, 现在公网的445端口
基本上都是处于被封停状态, 要远程连接smb服务只能改为其他端口, 在windows下, 虽然不能直接修改smb服务的端口, 但是可以使用nat端口转发的方式来完成!
注意, 第一步很重要
第一步, 也是最重要的一步, 也是现在网上大部分解决方案中没有提及到的一步, 也是导致失败最多的一步(因为很多人不知道要做这一步)!
先使用管理员模式
运行cmd
, 使用netstat -aon|findstr "445"
, 查看是否445端口被系统占用.
如果出现了上述的情况, 445端口已经被一个pid为4的进程(system)占用, 这需要到服务中禁用Server服务, 在445端口已经被占用的情况下, 是无法对445端口进行转发的.
cmd
下输入services.msc
, 回车, 打开服务.
找到Server
, 双击, 启动类型设置为禁用
, 重启电脑, 重复第一步, 检查445端口是否被占用, 正常情况下现在445端口是没有被占用的.
第二步, 转发本地的445端口到远程端口上, 还是使用
管理员模式
运行cmd
, 输入netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=远程端口 connectaddress=远程ip地址, 不能是域名
然后使用netsh interface portproxy show all
查看刚刚添加的转发信息
再使用
netstat -aon|findstr "445"
确保转发正确
最后打开资源管理器
, 输入\\127.0.0.1
, 正常情况下就能访问远程服务器了.
GPT
如果您需要在Windows上修改SMB服务端口,可以按照以下步骤进行操作:
-
打开“注册表编辑器”(Registry Editor),并导航到以下路径:
1HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters -
在右侧窗格中,找到或创建名为“TcpPort”的DWORD值,并将其数值设置为所需的端口号(例如,8000)。
如果您想要同时启用TCP和UDP协议,请创建或找到“Tcpip6”键,并设置与“TcpPort”相同的DWORD值。
- 退出注册表编辑器,并打开命令提示符(Command Prompt)或PowerShell窗口。
-
运行以下命令以重置SMB服务的配置:
1sc.exe config lanmanserver depend= bowser/mrxsmb10/nsi
- 重新启动计算机以使更改生效。
这样,您就可以将SMB服务端口修改为指定的值。请注意,如果您使用的是防火墙软件,则可能还需要在防火墙中添加相应的入站规则才能允许流量通过新的端口。
第二步, 转发本地的445端口到远程端口上, 还是使用管理员模式运行cmd, 输入netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=远程端口 connectaddress=远程ip地址, 不能是域名
提示:远程 ip 地址可以是域名