前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ngrok 是什么,我们为什么要使用它?

ngrok 是什么,我们为什么要使用它?

作者头像
用户1418987
发布2023-12-01 09:42:54
4250
发布2023-12-01 09:42:54
举报
文章被收录于专栏:codercoder
ngrok 是什么,我们为什么要使用它?_应用程序
ngrok 是什么,我们为什么要使用它?_应用程序

ngrok 是什么,我们为什么要使用它?

什么是ngrok?

ngrok是一个全球分布的反向代理,无论您在哪里运行,它都能保护、保护和加速您的应用程序和网络服务。您可以将ngrok视为应用程序的前门。

ngrok独立于环境的,因为它可以向任何地方运行的服务提供流量,而不会改变您的环境网络。在 AWSAzureHeroku阿里云腾讯云本地 Kubernetes 集群、树莓派甚至笔记本电脑上运行您的应用程序。有了ngrok,一切工作都是一样的。

ngrok 是一个统一的入口平台,因为它将所有组件整合到一个组件中,将您的服务传输到互联网。ngrok将您的反向代理、负载平衡器、API网关、防火墙、交付网络、DDoS保护等整合在一起。

你能用ngrok做什么?

开发和测试

  • Webhook测试:在本地机器上运行ngrok,以获取直接在您正在开发的应用程序中接收Webhook的URL。满足快速开发的需求。
  • 本地预览:在没有服务器的时候向客户演示在本地机器上运行的网站,而无需部署到远程服务站点。
  • 移动后端测试:针对正在本地机器上开发的后端测试您的移动应用程序,尤其适合小程序开发的需求场景。

进入外部网络

  • 客户网络中的API:在客户的环境中运行轻量级ngrok代理或Kubernetes控制器,以安全地连接到其网络中的API,而无需复杂的网络配置。
  • 设备上的API:在您的设备上作为服务运行ngrok,为其本地API创建安全URL,使您的云服务能够控制和管理它们。
  • 本地开发环境中的API:将ngrok作为库导入您自己的CLI,以便您可以为开发人员客户创建更好的本地开发体验。

生产入口

  • API网关:使用ngrok的HTTP模块来保护、加速和转换流量到您的生产API。
  • Kubernetes Ingress:运行ngrok的入口控制器,以创建在任何Kubernetes集群中运行的k8s服务的入口。
  • 身份感知代理:使用ngrok的OAuthSAMLOpenID Connect模块将应用程序的身份验证整合到身份提供商。
  • 负载平衡器:使用边缘负载平衡流量,以获得可扩展性和故障转移,或进行蓝色/绿色和金丝雀部署。

远程访问

  • SSH:创建TCP端点以启用SSH访问远程机器。
  • RDP:创建TCP端点,使RDP能够访问远程机器。

ngrok与传统反向代理

ngrok不会像传统反向代理那样转发到IP地址,而是通过与您的应用程序一起运行或在应用程序中运行的轻量级代理软件向您的上游服务发送连接。

与传统模型相比,这种独特的架构赋予了几个重要优势。

首先: 这意味着您可以在任何地方运行服务——任何云,如AWS或Azure,任何应用程序平台,如Heroku,本地数据中心,家中的树莓派,甚至在笔记本电脑上。

其次: 它允许ngrok提供零网络配置的入口。您不需要使用DNS、IP、证书或端口等神秘的网络原语。该配置被推送到ngrok的边缘,并且全部会自动为您处理。

第三: ngrok可以保护您免受ATTACK并强制身份验证,而不必担心有人可以通过发现您的上游IP地址来工具。

安装 ngrok

安装步骤可查看:https://ngrok.com/docs/getting-started/

如何使用

发布本地的应用

执行命令:ngrok http http://localhost:8080 可以将本机网络发布

ngrok 是什么,我们为什么要使用它?_配置文件_02
ngrok 是什么,我们为什么要使用它?_配置文件_02

在浏览器中打开转发URL https://847b-103-10-87-66.ngrok.io,将看到您本地的Web应用程序。

  • URL可供互联网上的任何人使用。通过发送给朋友来测试它!
  • 您的应用程序可通过HTTPS(注意浏览器窗口中的🔒)获得,并具有ngrok自动为您管理的有效证书。

指定域名

上面发布后我们发现这个域名是 ngrok 服务自动给生成一个域名,那么如果想要使用自己定义的域名需要怎么处理呢?

我们可以在执行上面的命令的时候添加 domain 参数执行启动的域名

ngrok http 8080 --domain demo007.ngrok-free.app

需要注意的是如果使用自定义的域名,是需要付费账户的权限才可以使用(如果是自己使用也不是很重的情况,随机域名就可以)。

授权指定的人登录

您可能不希望每个人都能够访问您的应用程序。ngrok 可以快速为您的应用程序添加身份验证,而无需进行任何更改。如果您的谷歌帐户是alan@example.com,您只能通过运行ngrok来限制自己的访问:

ngrok http http://localhost:8080 --oauth=google --oauth-allow-email=alan@example.com

使用 --oauth--oauth-allow-email 我们就可以在登录的时候限制登录的人员控制,任何访问您的应用程序的人都会被提示使用谷歌登录,并且只有您的帐户才能访问它。请记住,当您重新启动ngrok时,如果您没有指定应用程序URL更改的--domain标志,请务必访问新的。

ngrok 是什么,我们为什么要使用它?_配置文件_03
ngrok 是什么,我们为什么要使用它?_配置文件_03

ngrok支持多种形式的身份验证,包括:

详细操作

参考文档: https://ngrok.com/docs/http/?cty=agent-cli

配置文件

当然我们在使用 ngrok 的时候是记不住那么多的命令参数的,或者很多时候即使记得住我们也需要写好多次的那么多参数。单人就是配置文件就可以解决这个问题。

ngrok代理配置文件

ngrok代理支持可选的YAML配置文件,该文件为您提供了同时运行多个隧道以及调整其一些更高级设置的能力。

默认位置

ngrok代理配置文件的默认位置因操作系统而异。查找配置文件位置的最简单方法是运行:

代码语言:javascript
复制
ngrok config check

这将验证和打印配置文件的位置。

对于我们支持的主要操作系统,它们的默认文件位置是:

  • Linux:"~/.config/ngrok/ngrok.yml"
  • MacOS(达尔文):"~/Library/Application Support/ngrok/ngrok.yml"
  • Windows:"%HOMEPATH%\AppData\Local\ngrok\ngrok.yml"

配置文件文档详见:https://ngrok.com/docs/agent/config/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ngrok 是什么,我们为什么要使用它?
  • 什么是ngrok?
  • 你能用ngrok做什么?
    • 开发和测试
      • 进入外部网络
        • 生产入口
          • 远程访问
          • ngrok与传统反向代理
          • 安装 ngrok
          • 如何使用
            • 发布本地的应用
              • 指定域名
                • 授权指定的人登录
                • 详细操作
                • 配置文件
                  • ngrok代理配置文件
                  • 默认位置
                  相关产品与服务
                  多因子身份认证
                  多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档