从公网访问内网部署的服务。大概步骤也比较简单(6步):
- 在阿里云控制台,开放需要的端口;
- 阿里云控制台域名解析到服务器IP上;
- 在公网主机上(我用的阿里云)部署ngrok源码;
- 生成证书;
- 编译生成主机服务(最终生成二进制文件ngrokd,启动跑在公网主机上);
- 编译生成客户端服务(最终生成二进制文件ngrok,要从公网主机复制到内网真正提供服务的主机上,并启动)。ngrok服务器,实现内网穿透的本质,就是部署在公网端的ngrokd服务和部署在客户端的ngrok服务相互通信转发指令和数据。我的公网服务器端和客户端都是Ubuntu系统,以下有公网IP域名的称为服务端,内网称为客户端
预备配置
详细部署过程:登录自己的阿里云Ubuntu控制台,在本机实例的服务端安全组规则里,开放自己需要的端口将自己的域名解析到服务器IP,配置子域名下载最新版本的go lang 完成安装,我的在/usr/local下tar解压,tar -zxvf go1.12.9.linux-amd64.tar.gz我用的是root,配置root的环境变量,vim .bashrc最后一行添加
export GOROOT=/usr/local/go #当前自己的golang所在位置
export PATH=$PATH:/usr/local/go/bin::$GOROOT/bin
golang 安装成功,环境配置好,之后开始安装
服务端
克隆源码
$ cd /usr/local
$ git clone https://github.com/inconshreveable/ngrok.git
引入环境变量