1,安装gcc(编译器套件)
[root@192 /]# yum install gcc
2,安装git(分布式版本控制系统)
[root@192 /]# yum install git
3,安装go语言环境(因为ngrok的运行环境需要)
在这个站点查看下载最新版 https://www.golangtc.com/static/go/ (linux-amd64是64位的。linux-386是32位的)
目前下载的————go1.9.2.linux-amd64.tar.gz
centos 查看版本及位数命令cat proc/version
下载好后通过Xshell 上传到服务器并解压
[root@192 go]# tar -zxvf go1.9.2.linux-amd64.tar.gz
添加环境变量
vim /etc/profile
添加
export GO_HOME=/usr/local/go/go
export PATH=$PATH:$GO_HOME/bin
添加完后执行source /etc/profile
使配置生效
查看是否安装成功(查看版本号)
[root@192 /]# go version
go version go1.9.2 linux/amd64
4,搭建Ngrok服务
4.1 下载ngrok源码
[root@192 /]# cd usr/local/ngrok
[root@192 ngrok]# git clone https://github.com/tutumcloud/ngrok.git ngrok
4.2 生成证书
cd ngrok
abc.com在这里是自己的域名
export NGROK_DOMAIN="abc.com"
openssl genrsa -out rootCA.key 2048 #生成rootCA.key文件
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048 #生成device.key文件
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
4.3 将新生成的证书替换,执行下面命令后 “y” 回车 一行一行执行代码!
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
5.编译生成ngrokd(服务端)
GOOS=linux GOARCH=amd64 make release-server
生成在~/ngrok/bin/目录中
6.编译生成ngrok(客户端)
GOOS=windows GOARCH=amd64 make release-client
生成在~/ngrok/bin/windows_amd64/目录中
7.用SSH Secure Shell Client工具
将~/ngrok/bin/windows_amd64/里的文件下载到本地Windows下,如D:\ngrok
8.在D:\ngrok\windows_amd64中新建文件,改名为 ngrok.cfg
文件中输入:
server_addr: "abc.com:4443" // 4443 监控端口
trust_host_root_certs: false
- 开启远程服务
cd ngrok
sudo bin/ngrokd -domain='abc.com' -httpAddr=':81' -httpsAddr=':8081' -tunnelAddr=':4443'
以上端口如果在Ece 服务中需要设置安全组规则才能不被防火墙拦截
启动成功如下:
- 再在本地开启一个http端口 就可以做映射了
在文件“D:\ngrok\windows_amd64”中创建 start.bat 文件
并编辑 D:\ngrok\windows_amd64>ngrok.exe -log=ngrok.log -config=ngrok.cfg -subdomain www 8082
分别说明一下后面的参数意思:
-log参数用于指定ngrok的日志内容,有些时候一些错误,我们可以通过日志进行分析。所以这个还是很有必要的。
-config参数用于指定载入的配置文件,前面我们已经看到客户端文件夹中,我有一个ngrok.cfg文件,待会我们会说明配置文件的内容。
-subdomain参数用于指定我们映射到外网后,访问的子域名,例如服务器端我绑定的域名是abc.com那么这里的subdomain设置的www,说明我们本地映射的外网访问域名则为:www.abc.com后面的8082这是说明访问要访问的本地http服务的端口,一般都是8082号端口
然后将上面的脚本内容保存到start.bat文件中即可。
11.运行start.bat 文件成功如图:
这里解释一下 8082端口 是本地启动的tomcat端口
访问:http://www.abc.com:81/news/public/login.do
就可以外网访问到映射到本地的项目了。。。。