相信不少朋友都尝试过用自己的电脑开MC服务器吧?但奇怪的是,按着同一篇教程,有的人能够成功的做好“端口映射”,让小伙伴们进来玩耍;而有的朋友却无论如何也整不出来。是路由器问题?不是的,而是由于你在运营商的超级无敌坑爹大局域网内,与一整个小区的抠脚大汉公用一个IP地址,外面的主机访问不到你电脑上开的服务。具体情况小溪已经在联机简明教程中阐述过啦:https://dfkan.com/1027.html
运营商的坑爹尿性我们是无法改变的,那么有没有办法通过一个中继主机来为两边的流量架设一个桥梁呢?可能有淀粉会想到居正上一期推荐的portmap,可那东西不稳定,只能在渗透中用= =
令人可喜的是,ngrok这个神器已经完美实现了以上的功能!
ngrok 是一款用 go 语言开发的开源软件,它是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。下图简述了 ngrok 的原理。
完美代替“花生壳”软件。
“花生壳”是一款老牌的内网穿透软件,一年的内网版服务要两百多块钱,都快可以买一年垃圾点的 VPS 服务器了。而免费版的“花生壳”稳定性较差,隔三差五的不能访问,每个月只有 1G 流量,以前做项目没少被坑。ngrok 是一款免费开源的软件,稳定性极强,我曾做过测试,将 ngrok 客户端所在计算机的网络断开一阵子,再连接另一个网络,ngrok 很快会自动重连,几乎不受影响。
用于对处在内网环境中,无外网 IP 的计算机的远程连接。
ngrok 可以做 TCP 端口转发,对于 Linux 可以将其映射到 22 端口进行 SSH 连接。Windows 的远程桌面可以将其映射到 3389 端口来实现。同理,如果要做 MySQL 的远程连接,只需映射 3306 端口即可。
自己在服务器上搭建ngrok服务端的教程:
自己搭建?虽然听起来很高大上,但是我不推荐淀粉们用这种办法!因为首先这些操作比较复杂,需要你有一定的linux基础以及问题排查能力,第二估计大家也没有国内的服务器,要是搭建在国外的VPS上肯定速度慢的要死。。所以这不是本文所详细说明的,感兴趣的淀粉可以自己研究,毕竟教程都给你了嘛= =居正就给大家推荐两家免费的、公共的、国内的ngrok转发服务:
1.qydev
qydev是个人搭建的,完全公益性的服务。开发者真是非常有公益心,也感谢那些赞助开发者以维持服务提供的朋友们!
首先去网站上下载你自己电脑版本的ngrok客户端(我这里以macos为例)
解压出来个文件夹,进入
在这个地方,打开你的终端(windows的话直接点击最上面地址栏,输入cmd即可在当前目录打开终端)
unix系统输入命令:(unix需要先设置权限755)
chmod 755 ngrok && ./ngrok -config ngrok.cfg 80
windows系统输入命令:
ngrok.exe -config ngrok.cfg 80
以上命令是把你电脑上的80端口(web服务器默认端口)以TCP-HTTP的形式映射到qydev的服务器上
回车,出现online就代表映射成功。现在访问终端中给出的地址,应该就是你的本地网站了(我的是http://57dc3137.tunnel.qydev.com)
成功!!
关于TCP映射:
如果你想要开MC服务器之类的,那就必须用tcp映射,简单的加上-proto=tcp参数就行了,以windows为例:
ngrok.exe -config ngrok.cfg -proto=tcp 25565
看见协议变成tcp就没错了。这时候只要让小伙伴在MC服务器中输入tunnel.qydev.com:53096就行啦
2.sunny-ngrok
注册及客户端下载地址:https://www.sunnyos.com/
sunny提供的是ngrok集成服务,他们编译了自己的ngrok客户端。分成免费版和收费版,应该会比qydev稳定一些,毕竟是专业搞这个赚钱的
先去下载他们的客户端(不得不说他们支持的平台真多。。)
然后注册个账户,点到后台,点击开通隧道,开一个0元的隧道(这里以创建mc服务器映射为例)
需要注意的是远程端口如果被占用了就要换一个;隧道协议按照你的需求选择(mc服务器当然选tcp)。填完点击确定添加,之后再点击确定开通。
看见你的隧道id了吗,把它复制下来等下有用。
现在打开你下载的客户端,根据前面的说明cmd切到目录。
unix系统输入命令:(unix需要先设置权限755)
chmod 755 sunny && ./sunny clientid 71aea2c3c0eafeea
windows系统输入命令:
sunny.exe clientid 71aea2c3c0eafeea
注意要把这一大串英文数字换成你自己的clientid,然后回车
看到显示“在线”后就可以招呼小伙伴们来玩耍了~
其他小技巧
①
对于tcp协议,如果你想用自己的域名,可以这样做(以sunny-ngrok为例):
1.ping终端里面的tunnel域名获取他服务器的IP地址
2.在你的域名解析里面添加A记录,解析到这个地址即可
②
你可以把命令写到批处理/bash里面,这样每次只要双击打开就可以映射了
关于别的
工作日有上千开发者在上面调试应用,你开MC服务器延迟大一点也是没办法的= =
周末网络似乎都很好!
最后,希望这篇教程对大家有所帮助!
一条评论
http://ngrok.ciqiuwl.cn/