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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浏览器是如何调度进程和线程的?
- Linux shell利用sed如何批量更改文件名详解
- linux下通过xinetd服务管理 rsync 实现开机自启动
- linux实现自动删除最旧的几个文件详解
- 基于Ubuntu 16.04设置固定IP的方法教程
- CentOS添加和删除用户以及用户组的方法
- Linux下使用inode删除指定文件方法示例
- Apache虚拟目录配置及vue-cli反向代理的设置方法
- linux socket通讯获取本地的源端口号的实现方法
- 初识centos7与centos6的区别整理(内核、命令等)
- Apache下通过shell脚本提交网站404死链的方法
- centos查找已安装的jdk路径的方法
- CentOS7+apache+php7+mysql5.7配置教程详解
- 如何利用SystemTap统计函数执行耗时详解
- 关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程