不买服务器也可以将本地服务放到互联网(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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 05:38:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 05:38:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 05:38:03       87 阅读
  4. Python语言-面向对象

    2024-02-22 05:38:03       96 阅读

热门阅读

  1. 时序电路的Verilog设计——基本时序元件

    2024-02-22 05:38:03       43 阅读
  2. 算法刷题day15

    2024-02-22 05:38:03       61 阅读
  3. 【C++】每周一题——1024.2.21

    2024-02-22 05:38:03       51 阅读
  4. 个人搭建部署gpt站点

    2024-02-22 05:38:03       47 阅读
  5. 大白话解析LevelDB: Block Iterator

    2024-02-22 05:38:03       44 阅读
  6. 谈谈你对Seata的理解

    2024-02-22 05:38:03       59 阅读
  7. linux 测试网络速率

    2024-02-22 05:38:03       45 阅读
  8. mysql:给查询的数据增加序号1,2,3...

    2024-02-22 05:38:03       50 阅读
  9. git学习

    git学习

    2024-02-22 05:38:03      57 阅读
  10. 回溯法去重需要先排序

    2024-02-22 05:38:03       57 阅读
  11. MySQL中varchar 和 char的区别

    2024-02-22 05:38:03       52 阅读