Angrok 一个内网穿透服务

时间:2022-04-27
本文章向大家介绍Angrok 一个内网穿透服务,主要内容包括准备、1、GO环境安装、2. ngrok下载、3.证书生成、4.下载ngrok go包(建议手动下载)、5. 服务端ngrokd后台启动运行、6.客户端使用、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

网上的搭建的教程挺多,尝试搭建的时候遇到了很多问题。

准备

# 升级yum
yum update
# 安装gcc
yum install gcc

1、GO环境安装

## 使用1.4版本,不要使用高版本。
mkdir /root/goproj
cd /root/goproj
wget https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz
##  解压
###配置go 环境变量
vi /etc/profile
export GOROOT=/root/goproj/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/root/goproj/ngrok
source /etc/profile

2. ngrok下载

cd /root/goproj
git clone https://github.com/inconshreveable/ngrok.git
cd /root/goproj/ngrok

3.证书生成

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=angrok.cn" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=angrok.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

4.下载ngrok go包(建议手动下载)

wget https://github.com/inconshreveable/go-update/archive/v0.zip
wget https://github.com/go-yaml/yaml/archive/v1.zip
#将下载的文件解压后的go文件放到
mkdir /root/goproj/ngrok/src/gopkg.in/inconshreveable/go-update.v0
mkdir /root/goproj/ngrok/src/gopkg.in/yaml.v1

1)编译server端

cd /root/goproj/ngrok
make release-server

#### 编译之前请确保已经  安装了gcc  。。。报错请(yum install gcc)

2)编译客户端

1.Windows客户端
cd /root/goproj/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd /root/goproj/ngrok
GOOS=windows GOARCH=amd64 make release-client
#同理,这里的amd64是64位系统,32位改成386
#会在 bin/windows_amd64 目录下生成ngrok客户端程序,将ngrok.exe下载到windows操作系统

2.Mac客户端

cd /root/goproj/go/src
GOOS=darwin GOARCH=amd64 ./make.bash
cd /root/goproj/ngrok
GOOS=darwin GOARCH=amd64 make release-client
#会在 bin/darwin_amd64/ 目录下生成ngrok客户端程序

5. 服务端ngrokd后台启动运行

ngrok 服务在关闭远程时候会被杀掉进程。

输入下面命令

##  安装screen神器
yum install screen
screen -S keepNgrok
/root/goproj/ngrok/bin/ngrokd -domain="angrok.cn" -httpAddr=":80" -httpsAddr=":8081" -tunnelAddr=":4443" &

6.客户端使用

#新建 ngrok.cfg 文件,内容:
server_addr: "angrok.cn:4443"
trust_host_root_certs: true



#客户端启动
./ngrok -config=ngrok.cfg -subdomain=a 8080