不买服务器也可以将本地服务放到互联网(ngrok内网穿透)

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

不买服务器也可以将本地服务放到互联网

    • 前言
    • ngrok基础:穿越网络边界的魔法
    • 使用场景:突破网络限制的利器
    • 实战

前言

在网络的世界里,有时候你的服务像是困在一座数字城堡中,而ngrok就是那位神奇的密道导师,帮你打通城堡的大门。想象一下,你正在开发一款酷炫的应用,但却无法让世界见识它的魅力。这时,ngrok就像是一把数字魔杖,让你的应用穿越网络的迷雾,呈现在全世界的面前。本文将引领你进入ngrok的神奇世界,探索它在网络领域的妙用。

ngrok基础:穿越网络边界的魔法

Ngrok的基本原理:

Ngrok 是一个通过反向代理将本地服务暴露到公网的工具。它的基本原理如下:

  1. 客户端和服务器: Ngrok 包含一个客户端和一个服务器端。客户端运行在本地,用于将本地服务暴露到外部网络。服务器端则托管在云端,充当中间人的角色。

  2. 反向代理: 当客户端启动时,它会建立一个与服务器的安全连接。然后,Ngrok 服务器会为客户端分配一个唯一的子域名或公共域名,这个域名将用于访问本地服务。

  3. 隧道: Ngrok 通过创建一个安全隧道将外部请求转发到本地服务。这意味着外部用户可以通过使用 Ngrok 提供的域名访问本地运行的服务,而不必直接连接到本地计算机。

Ngrok的基本使用步骤:

以下是使用 Ngrok 将本地服务暴露到公网的简单步骤:

  1. 下载并安装 Ngrok:

    • 前往 Ngrok 官方网站,注册一个账号并登录。
    • 下载并解压 Ngrok 客户端工具。
  2. 获取 Authtoken:

    • 登录 Ngrok 账号后,获取 Authtoken。这个 token 是用于认证客户端与服务器之间的通信。
  3. 启动本地服务:

    • 启动你希望暴露到公网的本地服务。确保服务在本地正常运行。
  4. 运行 Ngrok 客户端:

    • 打开终端或命令行窗口,导航到 Ngrok 客户端所在的目录。
    • 运行命令 ngrok authtoken <your-authtoken>,将 <your-authtoken> 替换为你在步骤 2 中获取的 Authtoken。
    • 运行命令 ngrok http <local-port>,将 <local-port> 替换为你本地服务运行的端口号。例如,如果本地服务在端口 3000 上运行,命令可能是 ngrok http 3000
  5. 获取公共域名:

    • Ngrok 将在终端中显示一个公共域名(通常以 httphttps 开头)。这个域名将用于访问本地服务。
  6. 访问本地服务:

    • 使用 Ngrok 提供的公共域名访问你的本地服务。例如,如果 Ngrok 提供的域名是 https://your-subdomain.ngrok.io,则可以通过浏览器访问该地址来访问本地服务。

通过这些步骤,你应该能够使用 Ngrok 将本地服务暴露到公网,并通过 Ngrok 提供的域名访问该服务。请注意,Ngrok 的免费版本有一些限制,例如每个隧道的最大连接时间。在生产环境中,你可能需要考虑使用 Ngrok 的付费计划以获得更多功能和更长的连接时间。

使用场景:突破网络限制的利器

Ngrok在开发、测试、演示和远程调试中的实际应用场景:

  1. 本地开发环境暴露到公网: 在进行本地开发时,有时需要将本地服务分享给远程团队成员或客户,以便他们可以查看、测试或提供反馈。Ngrok可以帮助开发者轻松地将本地开发环境暴露到公网,使团队成员或客户能够通过互联网访问这些服务。

  2. 测试 Webhook 回调: 在开发 Webhook 功能时,通常需要在本地进行测试。使用 Ngrok,可以将本地服务器上的 Webhook 回调地址映射到一个公共域名,使得外部服务可以正确地访问和测试 Webhook 的回调功能。

  3. 演示和展示: 在进行产品演示或展示时,有时需要展示本地运行的应用程序或服务。Ngrok使得演示者能够方便地分享本地服务的链接,而观众只需通过浏览器就能访问这些服务,而不需要在其本地安装或配置任何东西。

  4. 远程调试: 在进行远程调试时,Ngrok可以帮助开发者远程访问本地服务,方便查看日志、调试代码以及实时监控应用程序的运行状况。这对于处理远程问题或与远程团队协作时非常有用。

  5. 跨越网络限制: 在某些网络环境下,例如公司内部网络、学校网络或受限制的公共网络,直接暴露本地服务可能会受到限制。Ngrok通过穿越防火墙和网络限制,为开发者提供了一个便捷的方式,让他们能够轻松地分享和访问本地服务。

Ngrok的使用步骤:

  1. 下载和安装 Ngrok: 从 Ngrok 官方网站下载适合你系统的 Ngrok 客户端,并进行安装。

  2. 注册并获取 Authtoken: 在 Ngrok 官网注册账号,并获取 Authtoken,这是用于认证客户端与 Ngrok 服务器之间通信的令牌。

  3. 运行 Ngrok 客户端: 在终端或命令行中运行 Ngrok 客户端,并使用 Authtoken 进行身份验证。

  4. 选择本地服务端口: 指定要映射的本地服务的端口号。例如,运行 ngrok http 3000 表示将本地服务运行在端口 3000 上。

  5. 获取 Ngrok 提供的公共域名: Ngrok 将显示一个公共域名,通过这个域名可以访问本地服务。例如,https://your-subdomain.ngrok.io

  6. 分享链接: 将 Ngrok 提供的公共域名分享给需要访问本地服务的人员。

通过这些简单的步骤,开发者可以在开发、测试、演示和远程调试中灵活地使用 Ngrok,轻松跨越网络限制,提供和访问本地服务。

实战

将本机的服务暴露到互联网区域进行访问

  1. 启动本机服务

  2. 执行ngrok命令

    ngrok http 8081
    

在这里插入图片描述

  1. 复制上面的Forwarding右侧网址进行访问

    image-20240127144721673

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

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

相关文章

IO进程线程作业day2

使用fread和fwrite完成两个图片文件的拷贝 #include <myhead.h> #define high 541 #define wide 541 int main(int argc, const char *argv[]) {//以只读的方式打开图片文件1.bmpFILE *fp NULL;if((fp fopen("./1.bmp", "r")) NULL){perror(&qu…

【RPG Maker MV 仿新仙剑 战斗场景UI (二)】

RPG Maker MV 仿新仙剑 战斗场景UI 二 战斗指令菜单原仙剑战斗指令图RMMV战斗指令对应代码战斗指令菜单代码效果 战斗指令菜单 原仙剑战斗指令菜单是使用方向键控制&#xff0c;同时按照使用情况正好对应四个指令和四个方向&#xff0c;同时没有选中的菜单用黑色透明图片覆盖&…

左右联动布局效果

效果图&#xff1a; <template><el-dialog :modelValue"modelValue" :before-close"close" fullscreen :close-on-click-modal"false"><div class"farmer_detail"><div class"info_content"><di…

基于Springboot+Vue的超市管理系统源码

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社会经济的发展和…

力扣OJ题——相交链表

题目&#xff1a;160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 思路一&#xff08;暴力求解&#xff09;&#xff1a; A链表的每个节点依次跟B链表中节点进行…

stm32 DCMI的知识点

1.DCMI的简介 DCMI全称Digital camera interface&#xff08;数字摄像头接口&#xff09;&#xff0c;是一种可以采集摄像头数据的一种接口。此接口适用于黑白摄像头、X24 和 X5 摄像头&#xff0c;并可以假定所有预处理&#xff08;如调整大小&#xff09;都可以在该摄像头模…

【动态规划专栏】专题一:斐波那契数列模型--------1.第N个泰波那契数

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

【Go语言】Go语言的数据类型

GO 语言的数据类型 Go 语言内置对以下这些基本数据类型的支持&#xff1a; 布尔类型&#xff1a;bool 整型&#xff1a;int8、byte、int16、int、uint、uintptr 等 浮点类型&#xff1a;float32、float64 复数类型&#xff1a;complex64、complex128 字符串&#xff1a;st…

层级关联,审批人功能

一个需求要求选择一级&#xff0c;下方展示一级的效果 后端给了审批人数据&#xff0c;但是数据需要单独处理 <template><div class"box"><el-form :model"ruleForm" :rules"rules" ref"ruleForm" label-width"…

MySQL多实例部署:从概念到实操的全面指南

目录 MySQL多实例管理 单实例 什么是多实例 多实例的好处 多实例的弊端 MySQL多实例用在哪些场景 资金紧张的公司 用户并发访问量不大的业务 大型网站也有用多实例 部署MySQL多实例 rpm和源码的优缺点 二进制方式安装mysql 准备二进制mysql运行所需的环境 准备多…

Android---Retrofit实现网络请求:Java 版

简介 在 Android 开发中&#xff0c;网络请求是一个极为关键的部分。Retrofit 作为一个强大的网络请求库&#xff0c;能够简化开发流程&#xff0c;提供高效的网络请求能力。 Retrofit 是一个建立在 OkHttp 基础之上的网络请求库&#xff0c;能够将我们定义的 Java 接口转化为…

IO线程进程

代码练习 使用fread和fwrite完成两个文件的拷贝 #include<myhead.h>int main(int argc, const char *argv[]) {FILE *fp NULL;//重新以只读的形式打开文件if((fp fopen("./OIP-C.bmp", "r")) NULL){perror("fopen error");return -1;…

SICTF round#3 web

1.100&#xff05;_upload url可以进行文件包含&#xff0c;但是flag被过滤 看一下源码 <?phpif(isset($_FILES[upfile])){$uploaddir uploads/;$uploadfile $uploaddir . basename($_FILES[upfile][name]);$ext pathinfo($_FILES[upfile][name],PATHINFO_EXTENSION);$t…

FL Studio21中文版本混音功能介绍

FL Studio 21的混音功能是其音乐制作能力中不可或缺的一部分&#xff0c;它为用户提供了强大的工具&#xff0c;以便他们可以对音轨进行细致的调整&#xff0c;确保音乐作品的最终呈现效果达到最佳。 FL Studio 21 Win-安装包下载如下: https://wm.makeding.com/iclk/?zonei…

数字化转型导师坚鹏:政府数字化转型之数字化技术

政府数字化转型之数字化技术 ——物联网、云计算、大数据、人工智能、虚拟现实、区块链、数字孪生、元宇宙等综合解析及应用 课程背景&#xff1a; 数字化背景下&#xff0c;很多政府存在以下问题&#xff1a; 不清楚新技术的发展现状&#xff1f; 不清楚新技术的重要应…

macOS开启HiDPI外接2K显示器(解决字体发虚问题)

1.前言&#xff1a; 购置了一台2K显示器&#xff0c;但通过HDMI直接连接时的显示效果让人难以接受&#xff0c;因此我们需要启用苹果系统的HiDPI模式&#xff0c;以实现更完美的显示效果。 那么&#xff0c;为什么要启用HiDPI模式呢&#xff1f;2K显示器的分辨率为2560*1440&…

IDEA连接database数据库

文章目录 一、连接数据库1、连接mysql2、连接参数配置3、配置驱动从maven仓库下载&#xff1a;要求联网将提前下载好的jar放到本地目录 4、完成 二、执行sql1、选择要操作的数据库2、执行sql 三、问题1、可能因为时区问题连接不上 一、连接数据库 1、连接mysql 2、连接参数配置…

【AI数字人-论文】AD-NeRF论文

文章目录 NeRFAD-NeRF模型NeRF体渲染个体NeRF表示背景和姿态编辑 loss 参考 NeRF 将一个连续的场景表示为一个输入为5D向量的函数&#xff0c;这个函数为NeRF函数&#xff0c;它的输入由一个空间点的3D位置 x ( x , y , z ) \mathbf{x} \left( x, y, z \right) x(x,y,z)和它…

【前端素材】几款实用的后台管理系统html模板(附带源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;它通常作为一个独立的后台界面存在&#xff0c;供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能&#xff1a; 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

湖南建研工程质量检测系统/Scripts/admintool文件上传漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…