内网穿透——step0-T1-ngrok 内网穿透 端口修改

(新人进)参考、推荐文章:

  • https://blog.csdn.net/chain_fei/article/details/79152692
  • https://blog.csdn.net/zyw_java/article/details/70341106
  • https://www.sunnyos.com/article-show-48.html
  • https://blog.csdn.net/u013216667/article/details/50782084

1.什么是ngrok?

百度百科介绍:

(定位)ngrok 是一个反向代理软件,(作用)通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。(功能)ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。

博客博主:(重复省略)

(是什么)ngrok 是一个使用go语言编写的反向代理软件。

(相关)国人自己搭建的ngrok服务器介绍:

      1、Ngrok国内免费服务器——糖果科技 
      2、http://www.ittun.com 
      3、Sunny-Ngrok内网转发 
      4、https://natapp.cn 
      5、http://ngrok.2bdata.com 
      6、FRP内网穿透工具 (如果以上的ngrok不能使用推荐自己使用frp搭建、配置比较ngrok简单还稳定)

(明确)ngrok不是内网穿透,只是一个工具。

对于想本地开发或者想做内网穿透的话ngrok可以帮你这个忙,我们都知道在微信开发的时候,微信服务器只认80端口,这样导致我们哪怕修改一行代码都得把代码上传到服务器上面,就在传文件的时候就已经浪费了特别的时间了,而如果我们把ngrok用上的话就可以节省很多时间,因为外网完全可以访问到内网的web服务器上,哪怕是你自己的电脑。

也就是说,ngrok是搭建一个安全通道,让不仅仅是自己的电脑可以访问到外网,同时也可以让外网可以直接访问我的本机的web服务器上。

(高级)如何通过SocketLog进行web和微信开发调试

我之前也做过《如何通过SocketLog进行web和微信开发调试》的教程,如果把ngrok和SocketLog搭配起来用的话,我们调试起来就更方便了,除了做微信之外,我们在做支付功能的时候,处理异步回调也很麻烦,也得把文件上传到服务器上面去,可我们同样的使用ngrok和SocketLog结合起来用,我们可以不上传代码,也还可以通过浏览器console来查看处理的过程,快速的帮助我们排查错误。

2.为什么要使用ngrok?

作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:

  1. 找到一台运行于外网的Web服务器(阿里云)

  2. 服务器上有网站所需要的环境,否则自行搭建(环境搭建)

  3. 将网站部署到服务器上(部署网站)

  4. 调试结束后,再将网站从服务器上删除(删除网站)

只不过是想向朋友展示一下网站而已,要不要这么麻烦,累感不爱╰(`□′)╯

  • 有了ngrok之后,世界是如此的美好

  1. 首先注册并下载ngrok,得到一串授权码(下载)

  2. 运行命令ngrok -authtoken 你的授权码 80,80是你本地Web服务的端口,而之后ngrok会记住你的授权码,直接ngrok 80就OK了

  3. 你会得到一串网址,通过这个网址就可以访问你本地的Web服务了

也就是说,当我有了ngrok之后,我可以不用买服务器了,还可以通过网址进行访问(域名)不需要进行备案。其中关键的步骤就是就是第二点,运行。

3.获取ngrok

ngrok官网      ngrok 是一个开源程序,官网服务器在国外,国内访问国外速度慢.

国内有相应的ngrok服务 natapp,frp,nat123端口映射,内网通 等。

4.搭建自己的ngork服务器,实现内网穿透

  • 为什么要自己搭建?

在官方网站上面可以注册一个账号自己使用,不需要自己搭建也行,但是缺点就是速度慢,还有经常会连不上,所以我们可以通过自己搭建来解决这些问题。

  • 准备工作

      1、一台拥有公网ip的服务器或者vps 
      2、把主域名解析到服务器上 
      比如:ngrok.javen.com

  • 软件下载地址:

      go的下载地址:http://www.golangtc.com/download(需要使用1.4.2) 
      git的下载地址:http://git-scm.com/downloads 
      绝对下载地址:https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz 
      ngrok克隆地址:https://github.com/inconshreveable/ngrok.git

  • 详细的操作步骤可以参考以下几篇文章

    超级细的ngrok配置、安装操作博文  http://www.sunnyos.com/article-show-48.html 
     (无效链接,尊重原文) http://www.cnblogs.com/pwenlee/p/5302880.html 
    CSDN博客,很完整    http://blog.csdn.net/u013216667/article/details/50782084

  • 安装和环境搭建

超级细的ngrok配置、安装操作博文  http://www.sunnyos.com/article-show-48.html 

5.另外

摘选:CSDN博客,很完整    http://blog.csdn.net/u013216667/article/details/50782084

  1. 发现国内有个朋友已经搭建了一个www.tunnel.mobi的ngrok公共服务,与ngrok.com类似,我也实验了一下:

编写一个ngrok.cfg,内容如下:

server_addr: "tunnel.mobi:44433"
trust_host_root_certs: true

用ngrok最新客户端1.7版本执行如下命令:

$ngrok -subdomain tonybaiexample -config=ngrok.cfg 80

可以顺利建立一个tunnel,用于本机向外部提供"tonybaiexample.tunnel.mobi"服务。

Tunnel Status                 online
Version                       1.7/1.7
Forwarding                    http://tonybaiexample.tunnel.mobi -> 127.0.0.1:80
Forwarding                    https://tonybaiexample.tunnel.mobi -> 127.0.0.1:80
Web Interface                 127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

而且国内的ngrok服务显然要远远快于ngrok.com提供的服务,消息瞬间即达。

但这是在公网上直接访问的结果。放在公司内部,我看到的却是另外一个结果:

Tunnel Status                 reconnecting
Version                       1.7/
Web Interface                 127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

reconnecting 重新连接

我们无法从内网建立tunnel,意味着依旧不方便和低效,因为很多基础服务都在内网部署,内外网之间的交互十分不便。但内网连不上tunnel.mobi也是个事实,且无法知道原因,因为看不到server端的连接错误日志。

自建一个ngrok服务:

做到这里,发现想要实现我想要的,还是不能不能够绕过域名,而且创建ngrok服务器的操作对现在的我来说略显复杂,而且学到这里,我已经发现我想要解决的问题,直接其实可以较为简单的实现。以后有机会再补上我自己的ngrok的服务器搭建

http://blog.csdn.net/u013216667/article/details/50782084


如果你只是需要获取一个子域名,并且能从外网访问到你自己的web项目,那么你就不需要自己搭建ngrok服务器,,服务器的搭建,需要有备过案的域名,应该需要一段时间。只是为了实现以上需求的话,直接上www.ngrok.cc就好了,,看下教程,开个会员,完全可以实现的。本地web服务器就是tomcat上面的,改下端口就好了。

内网穿透——step0-T1-ngrok 内网穿透 端口修改_第1张图片改一个端口就够了(至少我到现在没遇到问题)

 

 

你可能感兴趣的:(一些有意思的小知识)