本教程将图文讲解ngrok在服务端(centos7.3),在客户端(win10)搭建的详细过程。
所需条件
1、顶级域名例如www.xx.com,域名需要实名制并且备案通过。
2、centos云服务器一台(我用的阿里云)
下边开始逐步安装
安装Go语言环境
执行以下命令行,安装必要包
yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ build-essential mercurial
使用国内镜像安装Go,安装最新版本1.9.2
wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
tar -zxvf go1.9.2.linux-amd64.tar.gz
mv go /usr/local/
ln -s /usr/local/go/bin/* /usr/bin/
查看Go编译环境
go env
升级Git版本
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
tar zxvf git-2.9.5.tar.gz
cd git-2.9.5
./configure --prefix=/usr/local/git-2.9.5
make
make install
取代低版本的git
yum remove git*
ln -s /usr/local/git-2.9.5/bin/* /usr/bin/
查看git版本
git --version
环境及工具都安装好之后就安装ngork
Ngork 下载安装
git clone https://github.com/inconshreveable/ngrok.git ~/ngrok
export GOPATH=~/ngrok/
export NGROK_DOMAIN="xx.com"
cd ~/ngrok
xx.com要换成自己的域名,路径可以自行修改,目前路径为/root/ngrok
生成证书
export NGROK_DOMAIN="xx.com"
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
copy证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
编译服务端及客户端
服务器端(centos)
export GOOS=linux
export GOARCH=amd64
make release-server
客户端(win10)
export GOOS=windows
export GOARCH=amd64
make release-client
客户端(树莓派 Raspbian)
树莓派为linux-arm架构
export GOOS=linux
export GOARCH=arm
make release-client
编译后在bin文件夹下有ngrokd(服务端)、客户端(windows_amd64)
安装Ngrok
1、域名配置将域名xx.com指向ngrok服务器的ip地址及*.xx.com也指向这台机器ip
2、服务端安装
将编译好的服务端文件copy到/usr/bin下
cp ~/ngrok/bin/ngrokd /usr/bin/
单独打开screen
yum install -y screen
screen -S ngrokd
服务端运行
sudo ngrokd -domain="xx.com" -httpAddr=":80" -httpsAddr=":443"
screen 相关命令 :
screen -ls #查看在运行的screen
screen -r 9319 #连接某个screen
服务器运行成功
屏幕会输出一连串日志信息,ttpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,ngrokd 还会开一个 4443 端口用来跟客户端通讯
最后按快捷键ctrl+A+D,既可以保持ngrok后台运行
3、客户端安装(win10)
将在服务器上生成好的客户端程序下载下来
红框内的两个文件是要新增的
1、ngrok.cfg(配置文件),内容如下
server_addr: "xx.com:4443"
trust_host_root_certs: false
2、bat文件内容
D:/windows_amd64/ngrok.exe -log=ngrok.log -config=ngrok.cfg -subdomain=test 80
注:test为子域名 即test.xx.com
双击bat即可启动客户端
启动成功!
这时候访问http://test.xx.com/ 即可访问到本机的web服务
更多详情更新中...