Ngrok搭建本身的内网穿透

作过微信开发的应该都知道Ngrok内网穿透工具,大多都是在使用别人提供的服务,这样并非很安全,因此咱们仍是须要搭建本身的Ngrok服务。


准备工做

  • 准备一个域名,此处以domain.com为例
  • 一个有公网IP的服务器

我本身的服务器是 Ubuntu 16.04

先安装go编译器(ngrok是go语言编写的)

apt install golangnode

下载ngrok源码

git clone https://github.com/inconshreveable/ngrok.gitlinux

若是提示没有git命令,请安装git命令,最后生成客户端会用到git

apt install gitgit

进入ngrok根目录,执行如下命令生成签名证书

  • NGROK_DOMAIN="domain.com"
  • openssl genrsa -out base.key 2048
  • openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
  • openssl genrsa -out server.key 2048
  • openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
  • openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

拷贝签名证书

  • cp base.pem assets/client/tls/ngrokroot.crt
  • cp server.crt assets/server/tls/snakeoil.crt
  • cp server.key assets/server/tls/snakeoil.key

编译ngrok

make release-servergithub

启动ngrok服务

./bin/ngrokd -domain="domian.com" -httpAddr=":80" -httpsAddr=":443"golang

启动事后,在浏览器访问domain.com,若是出现以下提示,就证实一切已经配置完成

Tunnel domain.com not foundwindows

最后须要生成跟你本地相符合的客户端了,依旧在ngrok根目录使用命令

windows 64位浏览器

GOOS=windows GOARCH=amd64 make release-client安全

MAC OS (32位系统把amd64改为386)服务器

GOOS=darwin GOARCH=amd64 make release-client微信

Linux

GOOS=linux GOARCH=amd64 make release-client

编译事后的客户端在ngrok目录下的bin目录下,下载须要的客户端到本地,而后在同目录下建立ngrok.cfg配置文件,内容以下:

  • server_addr: "domain.com:4443"
  • trust_host_root_certs: false

命令行启动客户端

ngrok -config=ngrok.cfg -subdomain wx 8080

其中wx是二级域名好比wx.domain.com(wx,8080可按本身需求修改),8080是转发本地8080端口下的全部请求。

以上就是所有配置。若有问题欢迎留言交流。

JAVA版本的ngrok客户端(开源大佬提供)

https://gitee.com/YJc/fast-ngrok

相关文章
相关标签/搜索