Centos 下搭建ngrok

 

因为2020 安装过一边  这次因为换了服务器 我要重新安装 但是按照以前的方式安装 出现了各种问题  tls证书错误  等乱七八糟的东西。这篇文章是我重新安装的步骤流程  其中的辛酸泪就不写了反正是哭晕过好几次

准备工作
1、一台服务器  (我的是 Centos 7.6 阿里云)
2、备案过的域名


第一步git gcc 等安装

# 安装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
cd /usr/local  
wget https://www.kernel.org/pub/software/scm/git/git-2.16.2.tar.gz  

# 解压  
tar zxvf git-2.16.2.tar.gz  

# 编译git  
cd git-2.16.2  
./configure --prefix=/usr/local/git  
make  
make install 

安装GO

# 下载go 
cd /usr/local
#这里是go版本下载地址 https://golang.google.cn/dl/
#我选择的是 go1.9.2.linux-amd64.tar.gz (具体按照你们的服务器的位数来 我的是64位)
#go版本最好是按照我写版本来  我之前安装过 比较高级的go语言 编译这些都通过了 但是链接的时候会出现tls证书错误。这个问题我不会解决 就当是个玄学好了
wget https://golang.google.cn/dl/go1.9.2.linux-amd64.tar.gz

# 解压  
tar -zxvf go1.9.2.linux-amd64.tar.gz 

# go的命令需要做软连接到/usr/bin  
ln -s /usr/local/go/bin/* /usr/bin/ 


GO环境安装

#安装go语言的安装环境
yum install mercurial bzr subversion -y
#新建go目录作为项目目录
mkdir -p $HOME/go
#用cat的方法在尾部增加配置配置golang的 GOROOT GOPATH
#(注意,这里GOROOT 后面的路径是你go解压的路径,如果不是按照我的方法解压的,请注意看一下)
下面这段,整段复制粘贴过去
cat >>$HOME/.bash_profile<<EOF
export GOROOT=/usr/local/go    
export GOPATH=\$HOME/go
export PATH=\$PATH:\$GOROOT/bin
EOF
#让配置生效
source $HOME/.bash_profile

3.检查下go的env环境变量
go env

输出:
有一段输出就行了,比如这样的
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"

下载ngrok 方式一   (下载可能会慢 或者后面 make  编译的时候会出现各种问题  比如墙 desp  tls证书错误之类的)

cd /usr/local/  
git clone https://github.com/inconshreveable/ngrok.git

方式二  这个是我下载好ngrok 和相关的依赖  https://github.com/haungjianli/ngrok

cd /usr/local/  
git clone https://github.com/haungjianli/ngrok
#下载后 tar -zxvf 压缩包 解压到当前就好

设置环境变量

export GOPATH=/usr/local/ngrok/  
export NGROK_DOMAIN="xxx.com"   #这里写你自己的域名,不要前缀,比如www


创建证书 

cd /usr/local/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 device.key 2048
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

这个时候 ngrok下会产生 6个文件

替换原来的正式 执行下面的语句  一条一条来 每条都会询问overwiter  选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

生成服务端 

cd /usr/local/ngrok/  
GOOS=linux GOARCH=amd64 make release-server  #这里GOOS后面是你的系统,我是linux,GOARCH 后面是系统,64位是amd64,32位是386
生成完的文件 在当前 bin下面的 ngrokd

如果ngrok下载 克隆是按照方式一情况 这一步会出现很多问题。具体的就不一一举例了。反正我哭了好几回

如果ngrok下载 克隆是按照方式二 按照我的步骤一步步来 应该是没问题的(如果有问题具体情况具体解决 )

 

生成客户端  自己按照客户端系统来选  我是windows 64位

GOOS=windows GOARCH=amd64 make release-client    //windows 64位
GOOS=windows GOARCH=amd64 make release-client    //windows 32位
GOOS=darwin GOARCH=386 make release-client        //Mac OS 32位
GOOS=darwin GOARCH=amd64 make release-client      //Mac OS 64位
GOOS=linux GOARCH=amd64 make release-client       //Linux  64位
GOOS=linux GOARCH=arm  make release-client        //ARM 平台

生成完的文件 在当前 bin下面的 windows_adm64 里面

 

启动服务端

cd /usr/local/ngrok/bin
ngrokd -domain="xxx.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"

#-domain 后面你上面写的域名,这里和你生成证书的那个域名是要一样的  
#-httpAddr http端口  
#-httpsAddr https 端口 
#-tunnerlAddr 客户端端口,连接端口

效果图: 看到这图 服务端的就已经配置完了  先关闭ctrl+c

将bin 下的windows_adm64下的 ngrok.exe 下载到客户端上   并创建 ngrok.cfg 文件和start.bat文件

ngrok.cfg 里编写

server_addr: "XXXX.com:4443"  #这里的域名填写和生成证书的时候填写的一样  端口号按照开启服务器时填写的 -tunnerlAdder  写的一样
trust_host_root_certs: false

start.bat里编写

ngrok -config=ngrok.cfg -subdomain xxx 80   #xxx 可以随便写一个  不写会随机分配

上面都准备了 就在服务器端开启服务  就是上面启动服务器那一步。

开启后客户端边双击start.bat 

效果图

这样就成了

 

 

服务端 后台启用。

cd /usr/lib/systemd/system   //进入目录
cat >>ngrok.service   //创建文件夹,回车后直接按`ctrl+d`
vim ngrok.service  //编辑文件
[Unit]
Description=Share local port(s) with ngrok
After=syslog.target network.target
 
[Service]
PrivateTmp=true
Type=simple
Restart=always
RestartSec=1min
StandardOutput=null
StandardError=null
ExecStart=/usr/local/ngrok/bin/ngrokd -domain=xxxx.com -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443 %i  #xxxx.com 填写和证书生成的域名一样
ExecStop=/usr/bin/killall ngrok
 
[Install]
WantedBy=multi-user.target

服务命令

systemctl daemon-reload 
 
systemctl start ngrok.service

 

最后域名解析图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

用jio写的代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值