ngrok的使用(超详细)

2023-11-11

1、ngrok简介
百度百科:ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.

啥玩意…
1
其实说白了就是你写一个项目,在PC上完美运行,想在手机端访问,只能让手机电脑处于同一局域网内,但是这个技术可以把你的本地IP和端口(例如:localhost:8080)转换为www.baidu.com一样的万网,这样,即使电脑与手机不是在同一局域网内也可以无缝访问,(厉害吧!)。

很早我就想了解有没有这种技术,因为有时候写完项目了,感觉挺漂亮的,想让朋友看看,一直发愁怎么变成网址,(别跟我说转二维码),今天无意间在网上看到这种技术,搞了一下午,终于被我弄好了。废话不多说,直接进入正题。

2、版本简介
注意:使用前最好将防火墙关闭
1
软件:ngrox
可以选择三个版本:

ngrox国际版(就在官网下就行)
ngrox 国内版
小米球ngrok(我感觉最好用的)
2.1ngrox国际版简介
ngrox官网服务器在国外,官网链接:https://dashboard.ngrok.com/get-started 进去注册一个账户,我直接用GitHub账户登陆的,注册之后登录显示如下:

在这里插入图片描述

从图片上可以看出,想要运行使用,得经过四个步骤:
1
第一步:下载
第二步:解压下载文件。
第三步:在程序文件夹下 dos命令,运行:
ngrok authtoken 5sB1fv9TRbNr1FHnEKna8_3LhvQQxwMiyuw4DNME5W8
1
其中5sB1fv9TRbNr1FHnEKna8_3LhvQQxwMiyuw4DNME5W8:这是隧道id(隧道id,就是图3中的)
运行完之后在本机C:\Users\taohang.ngrok2文件夹下出现ngrok.yml
内容是:authtoken: 5sB1fv9TRbNr1FHnEKna8_3LhvQQxwMiyuw4DNME5W8
表示:你的ngrok账户与本机绑定了

第四步:设置本地端口8080。dos命令,运行:
ngrok http 8080
即可,这样你的本地端口就绑定好了。
第五步:$ ./ngrok help (查看帮助文档,可有可无)
另外:如果想要自定义域名,在安装程序目录下的DOS

自定义子域名:输入 ngrok http -subdomain=th 8080 会出现:
Tunnel session failed: Only paid plans may bind custom subdomains.
Failed to bind the custom subdomain ‘tkh’ for the account ‘Javath’.
This account is on the ‘Free’ plan.
意思是,没有付钱,这是免费版,不能自定义域名,要是付过钱了,直接输入http://tkh.ngrok.io 就可以进入本地8080端口

没钱,还是使用免费版吧!
1
输入:ngrok http 8080 会出现:
Session Status online
Account Javatkh (Plan: Free)
Version 2.2.8
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://d5cd433a.ngrok.io -> localhost:8080
Forwarding https://d5cd433a.ngrok.io -> localhost:8080
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
表示:这是免费版,Javatkh是GitHub账户名称,服务器地址在US(美国),
在浏览器输入http://127.0.0.1:4040 就可以进入后台
在浏览器输入http://d5cd433a.ngrok.io 或者https://d5cd433a.ngrok.io 就可以访问本机8080端口

关于项目中的设置见小米球ngrok用法即可

2.2ngrox国内简介
因为国外服务器的速度限制,所有ngrox还有个国内的,叫做Sunny-Ngrok。
1
网站首页:https://www.ngrok.cc/_book/start/ngrok_windows.html
后台地址:https://www.ngrok.cc/user

现在网站呢注册好之后,登录后台地址,输入账户密码,如下:
1
在这里插入图片描述

使用:
第一种:在sunny.exe所在的目录 通过cmd命令行执行sunny.exe clientid 隧道id
多个隧道启动,执行:sunny.exe clientid 隧道id,隧道id 也就是中间加了个逗号
第二种:另一种方式通过 Sunny-Ngrok启动工具.bat 启动,直接输入隧道id就好了

Sunny-Ngrok 和ngrok不同的是:

它是国内的,只需要绑定隧道id即可使用,网速较快,而ngrok是国外的,网速较慢;
Sunny-Ngrok端口配置是在后台界面配置的(后台界面->隧道管理),里面可以配置隧道id,隧道名称,隧道协议,本地端口,服务器类型,到期日期,赠送域名,还可以编辑,删除等
在链接好隧道id后,它会直接弹出配置好的本地端口所对应的万网链接地址,浏览器输入地址即可访问

2.3小米球ngrok(我感觉最好用的)
再程序目录下,shift右键,->在此处打开命令窗口,运行
ngrok -config=ngrok.cfg -subdomain taohang 8080
1
taohang 是你自定义的域名前缀,8080是端口

dos中会出现
Tunnel Status online
Version 1.7/1.7
Forwarding http://taohang.ngrok.xiaomiqiu.cn -> 127.0.0.1:8080
Forwarding https://taohang.ngrok.xiaomiqiu.cn -> 127.0.0.1:8080
Web Interface 127.0.0.1:4040
Conn 19
Avg Conn Time 8769.42ms
http://taohang.ngrok.xiaomiqiu.cn 和 https://taohang.ngrok.xiaomiqiu.cn
就是你本地的8080端口

在浏览器输入后如果出现Invalid Host header (无效的请求头)
解决:我用的是webpack-cli运行的项目(Vue项目)。
·1.在项目的根目录的package.json文件中若有"dev",若没有添加即可。
“dev”: “webpack-dev-server --content-base ./
–open --inline --hot–compress --history-api-fallback --config build/webpack.dev.config.js”
的后面添加–host 172.20.10.2(填你自己的ip地址)。
也就是在最后一行大括号前面添加:

“dev”: “webpack-dev-server --content-base ./ --open --inline --hot–compress --history-api-fallback --config build/webpack.dev.config.js --host 172.20.10.2”
1
这样就能通过ip访问了。
2.但是通过服务器域名访问时还是显示
Invalid Host header,这是由于新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname
不是配置内的,将中断访问。

解决:可以在build目录中的webpack.base.config.js中module.exports = { } 对象下,添加属性如下

devServer: {
  disableHostCheck: true,
},

1
2
3
若是出现手机端无加载资源现象,则是因为接口写的是localhost/127.0.0.1 换成上面的172.20.10.2(自己的IP即可)

(这段没用)为什么直接输入他给的网址即可进入首页?
1
是因为直接输入localhost:8080也能直接进入首页,
我在router/index.js文件里,设置了重定向
export default new Router({
routes: [
// 第一个对象可以不要
{
path: ‘/’,
name: ‘随便起名字’,
// 重定向 默认使用book页面
redirect:’/book’
},]
)}

小米ngrok下载地址参考:
http://ngrok.ciqiuwl.cn/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ngrok的使用(超详细) 的相关文章

  • vue中动态水印

    效果 一 根元素div上增加 div class rootZhy div 二 增加方法 watermarkZhy content let container document body let width 120px let height
  • BeanCreationException: Error creating bean with name ‘configurationPropertiesBeans‘ defined in class

    1 现象 启动 SpringCloud项目时报错 2 解决方案 2 1 spring cloud dependencies添加到dependencyManagement标签
  • STM32开发(六)STM32F103 通信 —— RS485 Modbus通信编程详解

    上一篇 主目录 下一篇 文章目录 一 基础知识点 二 开发环境 三 STM32CubeMX相关配置 1 STM32CubeMX基本配置 2 STM32CubeMX RS485 相关配置 四 Vscode代码讲解 五 结果演示以及报文解析 六
  • Spring Boot 添加拦截器

    文章目录 Spring Boot 添加拦截器 方法1 新增拦截器 配置拦截器 方法2 新增拦截器 配置拦截器 拦截所有响应 Spring Boot 添加拦截器 介绍一下在Spring Boot 2 0 0以上版本如何添加拦截器 方法1 新增
  • html烟花代码在线编程,canvas实现烟花的示例代码

    前言 马上过年了 我打算在后台里面偷偷地埋个新春祝福 放烟花的彩蛋 项目是基于react typescript的 因此最后封装成了一个组件 设置好开启时间就可以显示了 目录结构 目录结构大致如下 我们将烟花分为两个阶段 一个是未炸开持续上升
  • Python不同excel的合并操作

    Python不同excel的合并操作 23333333333我的第一篇博客 有一点瞎搞的感觉 0 0 问题描述 对7个类似下图的Excel进行合并 合并的最终效果 Excel文件需要可以找我 技术分析 获取表格中相同格式的部分进行操作 对除
  • 华为OD机试真题 Java 实现【服务中心选址】【2023Q1 100分 】

    一 题目描述 一个快递公司希望在一条街道建立新的服务中心 公司统计了该街道中所有区域在地图上的位置 并希望能够以此为依据为新的服务中心选址 使服务中心到所有区域的距离的总和最小 给你一个数组 positions 其中 positions i
  • 苏宁图书爬虫第一版

    最近一直在忙于工作 当我知道这些都是借口 毕竟某些博主大佬深夜还在更新订阅号更新微博 或许这就是自制力的差距吧 不啰嗦了 今天要写的主要是一篇关于如何爬取 苏宁图书 当然只是半成品 但是大部分问题都已经解决 在这里记录一下发生过的问题 以免
  • 专题五 Redis高并发场景

    介绍 Redis高并发场景 如果直接去学会比较抓不住头绪 因此本文将一步步介绍Redis的高并发的步骤演进 首先解释synchronized不适合在分布式场景 因为synchronized只适用自身的JVM 因此在分布式场景下多台机器的情况
  • 用IEDA开发WEB项目发生的java.lang.NoClassDefFoundError解决方法

    编译的时发生了这个问题 然后上网上百度了一下 一下出自于别人的博客 一 第一种 也是新手容易犯的错误 那就是classpath环境变量配置错误 这个错误在我最开始学习Android的时候就遇到过 弄的焦头烂额的 解决办法 在系
  • 华为机试:计算某字母出现次数 (不区分大小写)

    一 题目 描述 写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字母 然后输出输入字符串中该字母的出现次数 不区分大小写 字符串长度小于500 输入描述 第一行输入一个由字母和数字以及空格组成的字符串 第二行输入一个字母 输出描
  • 【华为OD机试】数字最低位排序【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 给定一个非空数组 列表 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素 相对位置保持不变 当数组元素为负值时 十进制最低为等
  • 集合引用类型 下

    目录 Map Map set Map get Map delete Map has Map values Map entries Map clear 选择Object 还是Map 数据转换 转为数组 转为 JSON 对象转为 Map 数组转
  • 【Matlab】系统的响应分析

    前言 一个信号系统课程中使用Matlab对系统的零状态响应 零输入响应 完全响应 冲激响应 阶跃响应求解 波形生成以及分析的实验 一 内容 设系统的微分方程为 激励为 起始状态条件为 可求得 零输入响应 零状态响应 完全响应 冲激响应 阶跃
  • 攻防世界web新手题解题writeup

    攻防世界web新手题 1 view source 题目描述 X老师让小宁同学查看一个网页的源代码 但小宁同学发现鼠标右键好像不管用了 题目场景 http 220 249 52 133 58537初级题 按下F12查看网页源码得到flag 2
  • vue自定义指令实现复制功能

    思路 使用浏览器自带的execCommand使用Copy 但此方法只能是被选中的值才能进行复制粘贴 动态创建一个文本域 将拿到的文字放在文本域中 然后自动选中 再调用浏览器方法即可 提示 想要选中文本框的内容 有如下两个方法可以 方法一 通
  • 用python画一束满天星花朵,python满天星绘制流程图

    大家好 小编来为大家解答以下问题 用python画一束满天星花朵 python满天星绘制流程图 今天让我们一起来看看吧 1 用python画一百个同心圆的代码 import matplotlib pyplot as plt from mat
  • u盘文件删除如何恢复呢?

    相信很多上班族都有自己的u盘 u盘是用来储存一些我们可以随身携带的数据的 无论是学习还是工作 只要用电脑 都需要使用u盘 而u盘就是一个小容器 可以装一些重要的文件 方便我们随身携带 当u盘里的文件在使用u盘的过程中不小心被删除了 怎么恢复
  • selenium的安装及使用介绍

    R爬虫之上市公司公告批量下载 selenium的安装及使用介绍 http yphuang github io blog 2016 03 01 Get Listed Company Announcement
  • 【超简单】使用TensorFlow训练和部署图像分类模型

    一 简介 使用TensorFlow和OpenCV实现图像分类 按照流程图运行程序 可以非常简便地完成图像预处理 生成数据集 训练模型和部署模型 四个程序的功能如下 preprocess py 对图像进行重命名和调整大小 建议拍摄形状为正方形

随机推荐

  • 数据流图学习

    数据流图或数据流程图 Data Flow Diagram 缩写为DFD 是什么 数据流图是结构化分析方法中使用的工具 它以图形的方式描绘数据在系统中流动和处理的过程 由于它只反映系统必须完成的逻辑功能 所以它是一种功能模型 标志了一个系统的
  • JavaScript中apply()和call()的区别和应用

    JavaScript中的每一个Function对象都有一个apply 方法和一个call 方法 这两个方法能够改变函数体内部 this 的指向 例如 fun1 call 或者fun1 apply 都是为了改变fun1函数内部的this指向
  • Java 实现 AES 对称加密算法的加解密

    Java 实现 AES 对称加密算法的加解密 前言 一 对称加密算法简介 1 对称加密 2 加密模式 3 填充模式 二 AES 加解密代码实例 1 生成 AES 密钥 2 AES 加解密 3 AES nonce 加解密 前言 文章字数比较多
  • uniapp 里折叠面板嵌套 uni-collapse 高度不能自适应解决办法

  • python:根据一个列表对另外一个列表排序

    在使用python处理数据时可能会遇到根据列表A对列表B进行排序的问题 记录一下想到的两个方法 方法1 根据列表b中每个元素的下标来获取列表a中对应位置的元素 将其作为排序依据即可 import random a x for x in ra
  • JVM你知道多少?

    1 jvm的内存结构 方法区和堆是所有线程共享的内存区域 而java栈 本地方法栈和程序计数器是运行时线程私有的内存区域 1 Java堆 Heap 是Java虚拟机所管理的内存中最大的一块 Java堆是被所有线程共享的一块内存区域 在虚拟机
  • naive bayes java_Naive Bayes 朴素贝叶斯的JAVA代码实现

    最进写毕业论文找了下贝页斯的资料 这个文章讲的很好 转载下 链接http blog csdn net michael kong nju article details 12623557 comments 1 关于贝叶斯分类 bayes 是一
  • STM32—ADC详解入门(ADC读取烟雾传感器的值)

    目录 一 ADC是什么 二 ADC的性能指标 三 ADC特性 四 ADC通道 五 ADC转换顺序 六 ADC触发方式 七 ADC转化时间 八 ADC转化模式 九 实验 使用ADC读取烟雾传感器的值 1 配置 2 代码 一 ADC是什么 AD
  • MSYS2更换国内源

    今天安装了Msys64 但是Msys64使用的国外源实在太慢 必须更新为国内源 目前测试过国内最快是清华大学的源 我的安装路径为d msys64 为什么要安装在D盘 因为msys64需要不断更新数据和安装自己的软件 也就是说会占用越来越多的
  • 使用mnist数据集实现手写字体的识别

    1 MNIST是一个入门级的计算机视觉数据集 它包含各种手写数字图片 它也包含每一张图片对应的标签 告诉我们这个是数字几 该数据集包括60000行的训练数据集 mnist train 和10000行的测试数据集 mnist test 每一张
  • mysql索引左侧原则,你真的了解吗?

    前言 写这篇文章源自一位杠精同事提了个问题 左侧原则跟where条件顺序有无关系 我想了想 好像是有关系的 不敢确定 但是自己又懒得动手测试 于是发起ETC自动抬杠功能 强行杠了一拨 结果杠输了 接下来即是动手验证 预习执行计划 实践 咱们
  • Something about C

    What the hell How long since I touch with C What a pity I have to work with it now Global variable Better define a globa
  • c++中setw()与setfill()的用法详情

    c 中setw 与setfill 的用法详情 在C 中 setw int n 用来控制输出间隔 例如 cout lt lt s lt
  • 关于自搭网站XAMPP(三)MYSQL增删改查(水)

  • Ubuntu 18.04下载安装以及分区教程

    收藏一下写的超赞的博客 Ubuntu18 04安装教程 超详细的图文教程 安装Ubuntu Linux系统时硬盘分区最合理的方法ubuntu18 04分区设置 也安装过很多次ubuntu了 记录一下最重要的踩坑点 分区完成后会让选择安装启动
  • 算法之字符串匹配一

    目录 前言 BF算法 RK算法 总结 参考资料 前言 字符串匹配指的是一个短点的字符串与一个长点的字符串进行匹配 并确认短的字符串是否在长的字符串中存在 匹配算法有很多 本文介绍两种简单 容易理解的两种算法 BF算法和RK算法 BF算法 B
  • C语言版本数据结构03:顺序表+链表

    今天我们来学习数据结构的第一个顺序结构 顺序表和链表 1 线性表 线性表是我们要学的第一个结构 我们知道一串连续的数字或者字符想要在内存中存储可以用数组 但是我们又知道数组是静态的 那么如果我想要对这组数据进行增删查改呢 这就显现出线性表的
  • Mysql按数字大小排序String字段

    今天做项目的时候 遇到个小小的问题 在数据库中查询的时候 要用String类型的数字进行一下排序 结果是按照字符串排序来处理的 没有达到预想中的效果 于是先是想到将字符转成数字型的 在网上搜了一下 基本上都是这样做的 只不过很多人实现的方式
  • 内存检测工具Dr. Memory的使用

    Dr Memory是一个内存调试工具 它是一个开源免费的内存检测工具 它能够及时发现内存相关的编程错误 比如未初始化访问 内存非法访问 数组越界读 写 以及内存泄露等 它可以在Linux Windows Mac OS和Android操作系统
  • ngrok的使用(超详细)

    1 ngrok简介 百度百科 ngrok 是一个反向代理 通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道 ngrok 可捕获和分析所有通道上的流量 便于后期分析和重放 啥玩意 1 其实说白了就是你写一个项目 在PC上完美