书犹药也,善读可以医愚;久尝其味,便可心如止水

    

Win10突破公网限制,实现通过非标端口访问公网Samba服务

这个就必须要纪念一下啦 

网上的很多方法试了都不行,下面这个也是网上的,但没写清楚,很多细节,导致很多人都没成功

废话:

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


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


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


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

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

方便的简直不要不要的 


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

(我要把黑板一顿暴擦)


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

步骤:

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

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

image.png


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


    设置成功的亚子

image.png


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

image.png


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


其他win系统参考地址:点击访问

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


端口查看是否成功:

netstat -ano|findstr "445"

image.png

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

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

image.png

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

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

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

image.png


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

\\127.0.0.1\mydisk

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

然后输入账号和密码

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

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


贴一张亲测实图

image.png

原理:

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


有问题下面留言啦,我会尽快回复


所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

已有 31 条评论

  1. 尘世美 尘世美
    博主你好 这个修改完后可逆吗 我想恢复成原来的样子 对代码一点也不懂 能不能教我一下恢复windows初始状态
  2. 博主 我按照说的 成功了 ,但是 我现在有多个smb服务器 都想映射到常用PC中 127.0.0.1:445 只能代理到一个非标端口smb,还有什么方法能够挂载多个非标端口的smb icon_mrgreen.gif
    1. Nathan Nathan
      回复 XuJoe: 在smb端前端做个nginx的upstream,指定同一个ip:port下的不同路径代理到后段不同地址,在pc端通过\ip\xxx不同路径实现访问
  3. 尘世美 尘世美
    如果可以教一下如何使用域名绑定那就太完美了
    1. Nathan Nathan
      回复 尘世美: 暂时无解
  4. 您好,为什么我的在运行下输入ip后直接就访问NAS了,并没有输入用户和密码那啊,并且确实没有权限更改。
  5. 您好,我按照您的方法进行了测试,成功连接上了,非常感谢! 还有一点美中不足的,就是我这边的IP不是固定的,我直接设置netsh connectaddress=域名不可行,我看评论有提到使用Hosts文件,但是实际上hosts将我的[域名]转到内网,我感觉没有跟上思路... 好像说的有点乱.主要问题就是一个:如何应对非固定公网IP,望博主不吝赐教,谢谢!
    1. Nathan Nathan
      回复 philips: 非公网要用ddns绑定域名,然后在客户端有点复杂,需要内网主机或者本地配置一个反向代理实现访问ip时自动去访问代理的域名,具体操作可以百度一下

添加新评论

icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif

  关于博主

既见君子,云胡不喜,浅喜如苍狗,深爱似长风

  近期评论

  •  尘世美: 博主你好 这个修改完后可逆吗 我想恢复成原来的样子 对代码一点也不懂 能不能教我一下...
  •  Nathan: 在smb端前端做个nginx的upstream,指定同一个ip:port下的不同路径代理到后段...
  •  Nathan: 暂时无解
  •  XuJoe: 博主 我按照说的 成功了 ,但是 我现在有多个smb服务器 都想映射到常用PC中 127.0....
  •  无名管理员: 换个账号呗,肯定是你太频繁被检测了呗,不过这个程序不太好,你自己可以再优化下后使用,如果还有问...
  •  aaaaa: 你好,预约座位有时候会提示”证件因违章已被禁止预约”。你知道是为什么吗
  •  尘世美: 如果可以教一下如何使用域名绑定那就太完美了
  •  AEGE: 好
  •  administrator:
  •  王0454: 您好,为什么我的在运行下输入ip后直接就访问NAS了,并没有输入用户和密码那啊,并且确实没有权...

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。