搭建自己的ngrok服务

Posted java-北京-菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建自己的ngrok服务相关的知识,希望对你有一定的参考价值。

1. 准备工作

一台具有外网IP的服务器, 一个域名(解析到外网服务器), ngrok服务端

2. 开始搭建ngrok服务端

说是搭建, 其实我并没有自己去编译ngrok, 而是从别的地方下载已经编译好的客户端, 下载地址

https://www.sunnyos.com/article-show-74.html

按照上面的教程进行搭建

下载好之后, 传到服务器上, 解压, 进入目录, 执行命令

./ngrokd --domain="域名(不带www)" --httpAddr=":端口(默认为80)" (注意端口要对外开放)

后台运行 setsid ./ngrokd --domain="域名(不带www)" --httpAddr=":端口(默认为80)" 后台运行

如果你的服务器 443端口已经使用了, 需要指定参数 -httpsAddr=":端口(可以使用的端口号)", 默认为443

以下是服务端的一些参数

  • --help 查看帮助

  • -domain 域名,已去掉证书验证可以使用ip,仅作tcp转发可以使用ip

  • -httpAddr HTTP连接,空字符串禁用 (default ":80")

  • -httpsAddr HTTPS连接,空字符串禁用 (default ":443")

  • -log 写消息记录到该文件。 “标准输出”和“无”具有特殊意义 (default "stdout")

  • -log-level 消息的级别记录。其中之一:DEBUG,INFO,WARNING,ERROR (default "DEBUG")

  • -tlsCrt TLS证书文件路径

  • -tlsKey TLS key证书文件路径

  • -tunnelAddr 公共广播监听ngrok客户端 (default ":4443")

  • Linux、MAC服务端启动

3. 客户端使用

在上面的网址上下载对应的客户端, 执行命令

ngrok.exe -server_addr=服务端域名:4443-subdomain=wx(自定义的子域名) -proto=http 80

也可以指定配置文件

ngrok.exe -config=ngrok.cfg start sunny1

 

ngrok.cfg 内容(格式一点都不能错)

server_addr: "yourdomain:4443"
tunnels:
  sunny1:
    subdomain: "wx"
    proto:
     http: 127.0.0.1:8084

 

这样访问 wx.服务端域名:服务端端口, 就可以转发到本地的80端口来了

 

下一步准备使用nginx来代理, 因为服务器的80端口可能已经被占用了, 而微信开发指定只能使用80端口

以上是关于搭建自己的ngrok服务的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号开发80端口映射之搭建ngrok服务器

阿里云搭建配置自己的ngrok服务

Centos 搭建ngrok服务

ngrok配置说明

有没有简单的内网穿透工具?

ngrok反向代理