Centos7搭建Ngrok内网穿透

news/2024/5/19 6:40:54/文章来源:https://blog.csdn.net/xm393392625/article/details/130038459

一、安装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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283863.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通读《技术管理实战36讲》1、自我倾听篇

你好,我是小Z,一个工作在交付前线的程序员,我们正在通读《技术管理实战36讲》,作者刘建国。今天我们要梳理的章节是“自我倾听篇”。 在第1篇《多年前的那些工程师都去哪了?》中, 作者借助上周的“老知道人…

linux系统中cat命令的详细用法

在Linux中,cat命令是一个很常用的命令,它的作用是将文件内容输出到屏幕上,或者将多个文件合并成一个文件。下面是cat命令的一些常用用法: ​1. 显示文件内容 使用cat命令可以打印出文件的内容,如: cat fi…

[Qt 教程之Widgets模块] —— QFormLayout表单布局

Qt系列教程总目录 文章目录一、创建QFormLayout二、成员函数2.1. 对行操作2.2. 操作布局项2.3. 间距2.4. 设置布局规则2.5. 对齐方式表单布局 QFormLayout 以两列形式布局其子项。左列由标签组成,右列由小部件(行编辑器、数字调整框等)组成。…

FPGA实现图像去雾 基于暗通道先验算法 纯verilog代码加速 提供2套工程源码和技术支持

目录1、前言2、目前我这里已有的图像处理方案3、暗通道先验算法介绍4、本图像去雾模块的优缺点5、vivado工程详解vivado工程1详解vivado工程2详解6、上板调试验证7、福利:工程源码获取1、前言 本文详细描述了FPGA实现图像去雾的实现设计方案,采用暗通道…

C++文件加密篇(基于char数组进行可逆加密)

严格意义上的加密算法有对称加密算法和非对称加密算法,对称加密算法是指加密与解密的key相同,而非对称加密算法是指加密(使用公钥,所有人都可以获取)与解密(使用私钥,只有指定方有私钥&#xff…

Robosense激光雷达Linux配置

文章目录1.1 速腾rs16连接:1.2 网络配置1)官方说明2)设置网络3)检查是否连接成功2.1 激光雷达ROS包下载/编译1)下载ROS包2)安装libpcap依赖3)修改编译模式4)config文件配置5)编译并运…

【数据结构与算法】一、数据结构的基本概念

文章目录一、数据结构的基本概念1.1 数据结构的研究内容1.2 数据类型和抽象数据类型1.3 算法和算法分析1.3.1 算法的时间复杂度1.3.2 算法时间效率的比较1.4 知识回顾一、数据结构的基本概念 1.1 数据结构的研究内容 1.2 数据类型和抽象数据类型 抽象数据类型(ADT…

[入门必看]数据结构4.1:串的定义和实现

[入门必看]数据结构4.1:串的定义和实现第四章 串4.1 串的定义和实现知识总览4.1.1_串的定义和基本操作4.1.2_串的存储结构4.1.1_串的定义和基本操作串的定义串 V.S 线性表串的基本操作串的比较操作字符集编码4.1.2_串的存储结构串的顺序存储串的链式存储基本操作的实…

4月9日第壹简报,星期日,农历闰二月十九

4月9日第壹简报,星期日,农历闰二月十九坚持阅读,静待花开1. “2023中国品牌女性500强”榜单揭晓,屠呦呦、张桂梅、董明珠、刘洋、孟晚舟、谷爱凌等入选。2. 京东集团副总裁:将在今年发布“京东版”ChatGPT。3. 以冒名顶…

大数据Flink进阶(十八):Flink执行图和TaskSlot问题思考

文章目录 Flink执行图和TaskSlot问题思考 一、Flink执行图 二、TaskSlot问题思考 Flink执行图和TaskSlot问题思考 一、Flink执行图 Flink代码提交到集群执行时最终会被转换成task分布式的在各个节点上运行,在前面我们学习到DataFlow数据流图

智能座舱操作系统|Flyme Auto-魅族 Flyme Auto“上车”领克08,能帮助吉利汽车打赢智能座舱战吗

“没有手机软件赋能的汽车厂商都将逐渐掉队。” 3月30日晚,星际魅族集团董事长兼首席执行官沈子瑜在魅族领克无界生态发布会上直言,魅族Flyme Auto车机操作系统要让手机成为汽车的一部分,成为定义传统汽车五个域之外的第六域——手机域。 魅族Flyme Auto已经预热多时且备受…

什么是服务架构?微服务架构的优势又是什么?

文章目录1.1 单体架构1.2 微服务架构1.3 单体架构和微服务架构的区分1.4 两种服务架构的优劣点1.4.1 单体架构1.4.2 微服务架构1.5 总结1.1 单体架构 单体架构(Monolithic Architecture)是一种传统的应用程序架构模式,它指的是将一个应用程序…

Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(二)

1.前言 在11.0的系统rom定制化开发中,在原生系统SystemUI下拉状态栏的下拉通知栏的背景默认是白色四角的背景, 由于在产品设计中,在对下拉通知栏通知的背景需要把四角背景默认改成圆角背景,所以就需要分析系统原生下拉通知栏的每条通知的默认背景, 然后通过systemui的通知…

相机的内参和外参介绍

注:以下相机内参与外参介绍除来自网络整理外全部来自于《视觉SLAM十四讲从理论到实践 第2版》中的第5讲:相机与图像,为了方便查看,我将每节合并到了一幅图像中 相机与摄像机区别:相机着重于拍摄静态图像&#x…

2019年 团体程序设计天梯赛——题解集

前言: Hello各位童学大家好!😊😊,茫茫题海你我相遇即是缘分呐,或许日复一日的刷题已经让你感到疲惫甚至厌倦了,但是我们真的真的已经达到了我们自身极限了吗?少一点自我感动&#xf…

Linux常用指令【文件目录操作】

linux 文件目录操作指令pwd 指令ls 指令cd 指令mkdir 指令rmdir 指令touch 指令cp 指令rm 指令mv 指令cat 指令more 指令less 指令> 和 >> 指令echo 指令head 指令tail 指令ln 指令history 指令pwd 指令 基本语法 pwd (显示当前工作目录的绝对路径) ls 指令 基本语法…

大数据项目实战之数据仓库:电商数据仓库系统——第2章 数据仓库建模概述

第2章 数据仓库建模概述 2.1 数据仓库建模的意义 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希…

【低压】DC-DC 降压恒流 车灯12-100V 2.5A 高干扰 全亮 半亮方案

产品描述 特点 应用领域 应用原理图 AP5127 是一款 PWM 工作模式,高效率、外 围简单、内置功率管,适用于 12-100V 输入的高 精度降压 LED 恒流驱动芯片。输出最大功率可达 25W,最大电流 2.5A。 AP5127 可实现全亮/半亮功能切换,通过 MODE 切…

cgroups是linux内核中限制、记录、隔离进程组(process groups)所使用的物理资源的机制

容器虚拟化 可以实现应用程序的隔离 直接使用物理机的操作系统可以快速响应用户请求 不占用部署时间 占用少量磁盘空间 缺点∶学习成本增加、操作控制麻烦、网络控制与主机虚拟化有所区别、服务治理难。 微服务架构师需要会多门编程语言,才能治理各种服务 三种…

Java初始泛型

目录 一、包装类 1、基本数据类型和对应的包装类 2、装箱和拆箱 3、自动装箱和自动拆箱 二、什么是泛型 三、引出泛型 1、泛型的语法 四、泛型类的使用 1、语法 2、示例 3、类型推导(Type Inference) 六、泛型如何编译的 1、擦除机制 2、为什么不能实例化泛型类…