部署自己的Ngrok实现内网穿透

2018-07-27  本文已影响0人  vczyh

一般来说,外网要访问服务器,那么这个服务器必须绑定一个公网ip,现在可以购买的云服务器都是这样。比如个人要在家里组建服务器,而且要外网的客户端可以访问,这时候问题就出现了

准备

正式工作

域名解析

首先需要一个域名作为ngrok的域名,比如ngrok.example.com,那么需要把ngrok.example.com和*.ngrok.example.com域名的A记录解析到外网服务器。

安装ngrok

安装Go环境

ngrok是Go语言开发的,需要安装Go环境
ubuntu使用 sudo apt install golang 安装
安装完成后使用 go version 验证是否安装成功。

下载ngrok源码

ngrok的官方github地址是:https://github.com/inconshreveable/ngrok
使用 git clone https://github.com/inconshreveable/ngrok.git 拉取代码。

生成自签名证书

编译服务端

Linux 平台 32 位系统:GOOS=linux GOARCH=386
Linux 平台 64 位系统:GOOS=linux GOARCH=amd64

Windows 平台 32 位系统:GOOS=windows GOARCH=386
Windows 平台 64 位系统:GOOS=windows GOARCH=amd64

MAC 平台 32 位系统:GOOS=darwin GOARCH=386
MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64

ARM 平台:GOOS=linux GOARCH=arm

这是使用 GOOS=linux GOARCH=amd64 make release-server编译linux服务端版本

编译客户端

Linux 平台 32 位系统:GOOS=linux GOARCH=386
Linux 平台 64 位系统:GOOS=linux GOARCH=amd64

Windows 平台 32 位系统:GOOS=windows GOARCH=386
Windows 平台 64 位系统:GOOS=windows GOARCH=amd64

MAC 平台 32 位系统:GOOS=darwin GOARCH=386
MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64

ARM 平台:GOOS=linux GOARCH=arm

这里使用GOOS=windows GOARCH=amd64 make release-client编译windows客户端版本

运行服务端

运行客户端

测试

浏览器访问vv.ngrok.example.com:8088就会被代理到内网机器的8080端口

上一篇 下一篇

猜你喜欢

热点阅读