Win10通过非445访问公网Smb服务-2019详细

  • 原创
  • |
  • 浏览:11266
  • |
  • 更新:

本人在家使用ji路由作为网关,并且买了一套4T的硬盘设备做了samba服务,在内网电脑访问肯定是没问题啦

 

但是贪心的我还想在公司电脑和手机也能随时随地访问资源

 

所以就不得不想办法实现公网访问,但是大家都知道samba的标准端口是445,但是公网因为smb1漏洞和永恒之蓝的原因全部禁封445端口。包括137和138也难逃封禁

 

为了有公网地址,在本人的云服务上使用了frp代理技术,将本地的samba服务的445端口映射到了公网的(不告诉你)端口

这样就可以在Linux下使用 -p 选项指定端口号的方式直接公网访问samba服务,安卓也可以使用nplayer软件访问

方便的简直不要不要的 

但是问题,,来了,,我win电脑无法访问,因为win10系统不提供非标端口的samba访问,所以接下来才是核心

(我要把黑板一顿暴擦)

 

在win下不能通过正常方式访问,需要用端口转发实现访问

工具/原料

  • 提前已经搭建好可用的SMB服务
  • SMB服务公网可访问
  • 可联网的Win10系统

方法/步骤

  1. 1

    前期自行搭建好非标端口的samba服务。这里假设非标端口是8888,公网地址是123.123.123.123,并且有固定的公网IP地址,没有就乖乖的,别闹,除此之外,还需要用管理员权限打开cmd,执行如下操作:

    若是你没有用过“某卫士”的话,你的 445 端口应该是一直被 LanmanServer 占用的,这个 LanmanServer 就是帮你把你电脑的文件分享给别人。所以你要把这个服务禁用了,这个服务显示的名字叫“Server”,你可以在 Windows 送的“服务”管理页面中看到(点击任务管理中的“服务”即可开启),然后禁用它。但我更喜欢用命令行操作。

    用管理员身份打开cmd,运行以下命令:

    sc config LanmanServer start= disabled net stop LanmanServer

    要是运行后没有显示"成功"二字,那是可能你没有用管理员权限运行吧。

    启动 windows 的 ip helper 服务

     

    这个 ip helper 服务,就是用来搞端口转发的,没有了它就没法转发了。

    用管理员身份打开cmd,运行以下命令:

    sc config iphlpsvc start= auto

    要是运行后没有显示"成功"二字,那是可能你没有用管理员权限运行吧。

    Win10通过非445访问公网Smb服务-2019详细
  2. 2

    (敲黑板:)在win10下使用管理员权限打开cmd,输入如下命令

    netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=123.123.123.123  connectport=8888

        查看是否设置成功

     

    netsh interface portproxy show all

        设置成功的亚子

    Win10通过非445访问公网Smb服务-2019详细
  3. 3

    按住Win+R键,打开运行窗口,输入control(就是打开控制面板),然后点击程序,找到打开或关闭Windows功能,找到smb 1.0 ,全选,全部安装。

    Win10通过非445访问公网Smb服务-2019详细
  4. 3
    相关内容未经许可获取自百度经验
  5. 4

    安装完毕后重启电脑,重启后用管理员权限运行powershell

    打开后检测smb 1.0是否已经开启

        对于 Windows 8、Windows 10 和 Windows Server 2012命令如下:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol

        正常开启的显示内容

    PS C:\WINDOWS\system32> Get-SmbServerConfiguration | Select EnableSMB1Protocol

     

    EnableSMB1Protocol

    ------------------

                  True

    然后重启系统(因为重启才生效)

     

    端口查看是否成功:

    netstat -ano|findstr "445"

    Win10通过非445访问公网Smb服务-2019详细
  6. 5

    重启后还是不可以访问的解决办法

    同样适用上面的命令查看445端口占用情况,后面的数字是占用端口的PID进程号,打开任务管理器,找到对PID的程序,如果对应的程序名称不是“svchost.exe”,则结束该进程后,重启后再尝试。

    Win10通过非445访问公网Smb服务-2019详细
  7. 6

    如果重启还是占用445端口,则右键该程序,点击“转到服务(s)”,确定服务名称后,点击下面的“打开服务”,找到后并将该服务设置为“手动启动”,再重启电脑后尝试。

    正确的程序名称应该是“svchost.exe”

    正确的服务名称应该是“iphlpsvc”

    Win10通过非445访问公网Smb服务-2019详细
  8. 7

    4、如果显示正确,再次按住Win+R键,打开运行窗口,输入如下语句

    \\127.0.0.1\mydisk

    其中mydisk是samba共享名,以自己设定的为准

    然后输入账号和密码

    你就可以开始肆无忌惮的公网遨游了

    哈哈哈哈哈哈啊。。。。(笑出猪叫声)

     

    贴一张亲测实图

    Win10通过非445访问公网Smb服务-2019详细
  9. 8

    原理:

    在本地访问\\127.0.0.1(不知道这个地址的可以点这里教你)\共享名,然后系统会在本地检索samba服务,但是根据设置的端口转发,侦听到有来自445端口的请求时,会自动转发到设定好的目标服务器ip地址和目标端口来访问,简单说就是用本地访问服务器的非标端口。

    END

注意事项

  • 原文网址:http://rrd.me/fB3U6
  • 有问题在原文下留言才会回复
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部