轻松搭建自己的Ngrok服务器

前言

提示:首先需要一个成功经过备案的域名
再者: 需要一台服务器,腾讯云亦或阿里云国内服务器皆可!

介绍

  • ngrok是一个内网穿透的解决方案,它使得你本地的服务器可以被局域网外的公网访问到
  • ngork有服务端和客户端,服务端运行在公网服务器,客户端运行在本地服务器
  • ngrok服务端会建立 http 和 https 服务,默认端口 80/443,以及供 ngrok 客户端连接的服务,默认端口 4443

它的工作流程如下:

  • 访问端输入域名 -> DNS -> ngrok 服务端 -> 请求映射到ngrok 客户端->客户端返回响应到 ngrok 服务端 ->ngrok 服务端返回响应到访问端

域名解析

  • 登录自己的服务器控制台进行域名解析,个人是腾讯云的,下面就以腾讯云为案例简单做一期教程。
    在这里插入图片描述
  • 然后用登录到自己的服务器,可用浏览器自带的命令行,也可用xslhell
    在这里插入图片描述

Go环境安装

  • 因为 ngrok 是用 Golang 语言编写的,所以我们下面需要安装 go 环境
  • 命令行安装
wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz --no-check-certificate
  • 解压
tar zxvf go1.8.3.linux-amd64.tar.gz
  • 配置系统环境命令
mv go /usr/local/
  • 添加环境变量 vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
  • 使配置生效
source /etc/profile
  • 查看版本
go version

安装Git

  • 命令行安装 Git 所需要的依赖包等
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++
  • 如图在这里插入图片描述
  • 卸载系统自带的Git
yum remove git 
  • 如图在这里插入图片描述
  • 命令行下载 Git
wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz
  • 如图
    在这里插入图片描述
  • 解压 tar zxvf git-2.6.0.tar.gz
  • 解压完后进入Git目录下 使用 make 命令进行编译安装
make && make install
  • 如图在这里插入图片描述
  • 耐心等待安装编译完成!
  • 配置全局路径
export PATH="/usr/local/git/bin:$PATH"
source /etc/profile
  • 如图在这里插入图片描述
  • 查看版本信息 git --version
    在这里插入图片描述

获取Ngrok源码

  • 使用 Git命令直接拉取
git clone https://github.com/inconshreveable/ngrok.git
  • 如图在这里插入图片描述
  • 进入 ngrok 目录下配置环境
  • 设置自己解析的域名 ngrok.cn2118.cn 你自己的域名
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.cn2118.cn" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.cn2118.cn" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
  • 如图在这里插入图片描述

  • 替换我们刚刚生成的证书

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
  • 如图【中途提示不要惊慌,输入 y 继续替换即可】在这里插入图片描述
  • 生成服务端【温馨提示:过程比较慢请耐心等待!!!!!!】
make release-server
  • 按理讲,应该就可以编译成功了,但是我发现,编译的时候很多依赖包是需要自动下载的,有一个包
  • log4go 会提示访问不到,修改源码,将该包改为 github 上的地址:
  • 找到 /usr/local/src/ngrok/src/ngrok/log/logger.go ,第5行import中的 log 包,改为:
 log "github.com/keepeye/log4go"
  • 编译成功后,应该可以在 /usr/local/src/ngrok/bin 下生成了一个 ngrokd 可执行文件,这就是我们的服务端了,现在启动服务端试试:

  • 然后重新 make release-server在这里插入图片描述

  • 生成客户端

GOOS=windows GOARCH=amd64 make release-server release-client
  • 如图
    在这里插入图片描述
  • 启动服务端【域名和端口可自定义】
 nohup bin/ngrokd -domain="ngrok.cn2118.cn" -httpAddr=":8001" &
  • 查看是否启动成功
lsof -i:8001
  • 客户端启动
  • 首先到 Ngrok\windows_amd64 目录下载到Windows客户端上
  • 然后在新建一个配置文件ngrok.cfg
  • 内容
server_addr: "ngrok.cn2118.cn:4433"
trust_host_root_certs: false
  • 如图
    在这里插入图片描述
  • 启动
ngrok -config=ngrok.cfg -subdomain www 80
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇探长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值