一、安装gcc和git(用于下载ngrok源码)

yum install gcc -y
yum install git -y

二、安装go语言环境

yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386

三、检查环境安装

git --version //( >= 1.7 )
go version

四、在服务器上搭建Ngrok服务

1)、下载源码

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

2)、生成证书

cd ngrok    export NGROK_DOMAIN="ngrok.zhqwfj.xyz"    //记得域名换成自己的openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pemopenssl genrsa -out device.key 2048openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csropenssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

3)、替换证书

//一行一行执行,然后会提示是否覆盖,输入 “y” 回车就可以了
cp rootCA.pem assets/client/tls/ngrokroot.crtcp device.crt assets/server/tls/snakeoil.crtcp device.key assets/server/tls/snakeoil.key

4)、生成服务端

GOOS=linux GOARCH=amd64 make release-server

5)、生成客户端

我的是window 64位,所以我生成的window版本,其他版本不知道对不对。

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 平台

服务端和客户端会在/usr/local/ngrok/bin文件夹中生成如下文件

6)、启动服务端

cd /usr/local/ngrok./bin/ngrokd -domain="ngrok.zhqwfj.xyz"  -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"//或者./bin/ngrokd -domain="ngrok.zhqwfj.xyz"
  • -domain : 域名
  • -httpAddr : ngrok 用来转发http服务的端口,默认80端口
  • -httpsAddr : ngrok 用来转发https服务的端口,默认443端口
  • -tunnelAddr :ngrok用来跟客户端通讯的端口,默认4443端口

7)、启动客户端

/usr/local/ngrok/bin/windows_amd64里面的文件下载到本地来,我放在了本地E:\Ngrok文件夹里面。

然后在同级目录中创建ngrok.cfgstart.bat文件。

ngrok.cfg文件内容

server_addr: "ngrok.zhqwfj.xyz:4443"
trust_host_root_certs: false

start.bat文件内容

ngrok -config=ngrok.cfg -subdomain zhq 8080
// haiyang就是你想要访问域名的前缀
// 80表示本地需要穿透的端口

创建完成后双击start.bat文件运行

这就表示已经成功了。

注意:前置条件配置域名解析和安全组策略

域名:按自己实际情况,如果想多用户可以*.ngrok

安全组:允许80 443 4443(安自己实际配置的为准)

8)、测试

五、将Ngrok(服务端)添加到系统服务

每次关闭Xshell,服务就关掉了,总不能一直开着窗口吧,怎么才能后台运行呢或者安装成服务设置开机启动?

1)、新建ngrok.service文件

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=ngrok.intolearn.com -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443 %i
ExecStop=/usr/bin/killall ngrok[Install]
WantedBy=multi-user.target
  • [Unit]部分主要是对这个服务的说明
  1. Description 用于描述服务
  2. After 用于描述服务类别
  • [Service]部分是服务的关键,是服务的一些具体运行参数的设置
  1. Type=forking是后台运行的形式;
  2. User=users是设置服务运行的用户;
  3. Group=users是设置服务运行的用户组;
  4. PIDFile为存放PID的文件路径;
  5. ExecStart为服务的具体运行命令;
  6. ExecReload为重启命令;
  7. ExecStop为停止命令;
  8. PrivateTmp=True表示给服务分配独立的临时空间
    [Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
  • [Install]部分是服务安装的相关设置,可设置为多用户的

  • systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体。

systemctl enable ngrok.service              #加入开机启动
systemctl daemon-reload                     #重新载入 systemd,扫描新的或有变动的单元
systemctl is-enabled iptables.service
systemctl is-enabled ngrok.service       #查询服务是否开机启动
systemctl enable ngrok.service           #开机运行服务
systemctl disable ngrok.service          #取消开机运行
systemctl start ngrok.service            #启动服务
systemctl stop ngrok.service             #停止服务
systemctl restart ngrok.service          #重启服务
systemctl reload ngrok.service           #重新加载服务配置文件
systemctl status ngrok.service           #查询服务运行状态
systemctl --failed                       #显示启动失败的服务

然后运行:

systemctl daemon-reload systemctl start ngrok.service

Centos7搭建Ngrok内网穿透相关推荐

  1. 搭建解析内网 linux_Linux 搭建ngrok内网穿透

    准备工作,需要有一台公网IP的服务器用来部署内网穿透的服务端 1.下载源码到GOPATH工作目录的src文件目录下 我的GOPATH是 /root/go/src/ cd /root/go/src/gi ...

  2. CentOS7.4 搭建ngrok 内网穿透

    2019独角兽企业重金招聘Python工程师标准>>> #1.安装git # 安装git yum install git #2.安装GO语言环境 # 安装GO语言环境 yum ins ...

  3. ngrok内网穿透工具搭建,方便微信公众号,小程序、钉钉等开发【已投入使用】

    前言:微信公众号,小程序.钉钉等开发需要内网穿透工具. 1.经过不断的摸索和调试,完成ngrok内网穿透的工具的搭建,对于微信公众号,小程序.钉钉等开发提供便利性. 2.搭建环境Linux cento ...

  4. ngrok内网穿透原理分析和实现

    转载: ngrok内网穿透原理分析和实现 在互联网终端急剧增长的今天,公网ip已经成为稀缺资源,对于国内垄断的电信运营商来讲,更是不可能随便免费给你一个公网ip,许多家庭宽带都无法分配到 公网ip,又 ...

  5. ngrok 内网穿透

    ngrok 内网穿透 下载客户端 根据你的个人电脑系统下载匹配的客户端. 下载地址: https://ngrok.com/download 启动 打开ngrok.exe 输入命令,开放端口 ngrok ...

  6. 华硕老毛子(Padavan)——Ngrok内网穿透解决方案

    基本概念 Ngrok:ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.Ngrok是外国发布的一个开源项目,也有一个公开的运行服务,但被国内墙掉了.国内一 ...

  7. 小米球ngrok内网穿透

    小米球ngrok内网穿透 目录 小米球ngrok内网穿透 背景 操作步骤 小米球官网,先注册,登陆 下载对应版本 系统管理-商品管理-商品列表开通 实名认证,注册版服务器两服务. 系统管理-账户管理- ...

  8. 一分钟用HCaas搭建Frp内网穿透

    前言 对于内网穿透大家并不陌生,不管你是小白还是开发者都需要一些内网穿透服务,如果自己购买服务器苦恼于带宽小(国内主机商普遍都是1M~10M),从而导致穿透效果并不是很理想,最近博主一直在关注网银互联 ...

  9. CentOS7 使用frp内网穿透 在公司远程桌面连接自家电脑

    CentOS7 使用frp内网穿透 在公司远程桌面连接自家电脑 Day1 文章目录 CentOS7 使用frp内网穿透 在公司远程桌面连接自家电脑 前言 一.服务器的安装与配置 面板: 二.客户端的安 ...

最新文章

  1. Vue 进入/离开动画
  2. ping的实现和代码分析
  3. 11个鲜为人知的实用Linux命令 - Part 2
  4. execl中设置的格式无法实现
  5. 如何学好前端,这5点你一定要知道!
  6. Java : 实体类不能序列化异常
  7. 基础教程之Spin旋转篇
  8. python or 和and的优先级_python中not、and和or的优先级与详细用法介绍
  9. mathml解析引擎MathPlayer的缺陷
  10. python微信爬虫
  11. 【Mybatis学习路线】day01Mybatis概述
  12. Apache探索:Windows下搭建PHP运行环境(详细图文教程)
  13. mac os x 使用教程_如何在Mac OS X计算机上使用扫描仪
  14. 海龟交易法:如何防止模型死亡
  15. 《C语言中time_t数据类型》
  16. Java常见面试题—final 在 java 中有什么作用?
  17. 全面分析中国菜刀及隐藏后门
  18. 获取OpenHarmony源码
  19. STM32F030xx硬件SPI调试记录
  20. 5G核心网网络架构-什么是核心网?核心网的功能有哪些?

热门文章

  1. vue中App.vue的主要作用
  2. iOS和Android内存占用对比,安卓和ios内存差距为什么那么大
  3. 论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》
  4. Java图形化界面设计(swing实现)
  5. 美团2021校招测试
  6. Oracle学习笔记 --- Oracle ORA错误解决方案
  7. 如何利用万用表判断芯片和PCB之间良好焊接及防护二极管作用
  8. Norflash与NANDflash性能对比
  9. ChatGPT:我围观了量子位MEET2023智能未来大会,还当了一回课代表
  10. MySQL类型文本的最大长度