Ngrok搭建实现内网穿透

本教程将图文讲解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
Ngrok搭建实现内网穿透_第1张图片
升级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
Ngrok搭建实现内网穿透_第2张图片

编译后在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)

将在服务器上生成好的客户端程序下载下来

Ngrok搭建实现内网穿透_第3张图片

Ngrok搭建实现内网穿透_第4张图片

红框内的两个文件是要新增的
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即可启动客户端
Ngrok搭建实现内网穿透_第5张图片

启动成功!
这时候访问http://test.xx.com/ 即可访问到本机的web服务
Ngrok搭建实现内网穿透_第6张图片

更多详情更新中...

你可能感兴趣的:(Ngrok搭建实现内网穿透)