什么是内网穿透?
内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。简单来说,就是让身处局域网的电脑,被大家都能访问的技术。
Ngrok是什么?
Ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。它是内网穿透的跳板之一。
为什么需要内网穿透?
如果你在自己电脑上搭建一个网站,你身处在局域网,你想让大家访问你,但是你没有外网IP,这时,你就需要一个跳板,实现内网穿透到外网环境,对于一个技术开发者,有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试,内网穿透就显得尤为重要。
使用ubantu16搭建ngrok服务器
下载ngrok源码
- 创建一个目录,博主自己创建的是download
- 更新安装包管理器
- 安装git
- 克隆源码
mkdir download #创建名称为download的目录
cd download #进入文件夹
apt-get update #更新包管理器
apt-get install git #安装git
git clone https://github.com/inconshreveable/ngrok.git #将ngrok源代码克隆回本地
安装go语言
go语言版本必须是1.1的版本,可以去https://studygolang.com/dl 下载,下载tar.gz之后解压
wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz # 下载go语言
tar -zxvf go1.11.linux-amd64.tar.gz #解压tar包
mv go /usr/local/ #移动go语言
配置环境变量
使用vim命令修改配置文件,按A插入,然后把下面三句话粘贴在底部
export GOROOT=/usr/local/go
export GOPATH=/usr/local/go/get_package #设置环境变量,Go语言的安装位置
export NGROK_DOMAIN=“ngrok.your.com” #设置环境变量,ngrok域名
export PATH=.:$GOROOT/bin:$PATH
使用:wq保存退出
vim /etc/profile #修改配置文件
source /etc/profile #刷新配置
生成证书
- 进入到第一步下载的ngrok源码根目录,执行以下命令,会在当前文件夹生成六个文件
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
- 转移证书
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
编译
在下载的ngrok根目录编译
#在bin里面生成ngrok文件
make release-server release-client
#win客户端
GOOS=windows GOARCH=amd64 make release-client
编译完成之后把bin目录下windows的启动工具下载下来
启动
在ngrok根目录执行以下命令启动,httpaddr和httpsaddr是你的服务器外网端口,可以自己修改,如果你使用的阿里云服务器或者其他云服务器,请在控制台服务界面把你开启的端口打开,同时打开4443端口。打开之后启动
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=$NGROK_DOMAIN -httpAddr=":8081" -httpsAddr=":8082"
测试
在下载的客户端同级目录下新建一个配置文件ngrok.cfg,添加以下内容,
设置你配置的网址
server_addr: "ngrok.xxx.com:4443"
trust_host_root_certs: false
使用cmd进入到下载的客户端目录,执行:
ngrok -config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀)。
福利
如果你只是临时使用ngrok,并不需要搭建,那么巧了,本人已经使用阿里云搭建了一个ngrok,可以供大家临时使用,免费版的喔。
共同学习,写下你的评论
评论加载中...
作者其他优质文章