ngrok是一个全球分布的反向代理,无论您在哪里运行,它都能保护、保护和加速您的应用程序和网络服务。您可以将ngrok视为应用程序的前门。
ngrok是独立于环境的,因为它可以向任何地方运行的服务提供流量,而不会改变您的环境网络。在 AWS、Azure、Heroku、阿里云、腾讯云本地 Kubernetes 集群、树莓派甚至笔记本电脑上运行您的应用程序。有了ngrok,一切工作都是一样的。
ngrok 是一个统一的入口平台,因为它将所有组件整合到一个组件中,将您的服务传输到互联网。ngrok将您的反向代理、负载平衡器、API网关、防火墙、交付网络、DDoS保护等整合在一起。
ngrok不会像传统反向代理那样转发到IP地址,而是通过与您的应用程序一起运行或在应用程序中运行的轻量级代理软件向您的上游服务发送连接。
与传统模型相比,这种独特的架构赋予了几个重要优势。
首先: 这意味着您可以在任何地方运行服务——任何云,如AWS或Azure,任何应用程序平台,如Heroku,本地数据中心,家中的树莓派,甚至在笔记本电脑上。
其次: 它允许ngrok提供零网络配置的入口。您不需要使用DNS、IP、证书或端口等神秘的网络原语。该配置被推送到ngrok的边缘,并且全部会自动为您处理。
第三: ngrok可以保护您免受ATTACK并强制身份验证,而不必担心有人可以通过发现您的上游IP地址来工具。
安装步骤可查看:https://ngrok.com/docs/getting-started/
执行命令:ngrok http http://localhost:8080
可以将本机网络发布
在浏览器中打开转发URL https://847b-103-10-87-66.ngrok.io
,将看到您本地的Web应用程序。
URL
可供互联网上的任何人使用。通过发送给朋友来测试它!上面发布后我们发现这个域名是 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支持多种形式的身份验证,包括:
参考文档: https://ngrok.com/docs/http/?cty=agent-cli
当然我们在使用 ngrok 的时候是记不住那么多的命令参数的,或者很多时候即使记得住我们也需要写好多次的那么多参数。单人就是配置文件就可以解决这个问题。
ngrok代理支持可选的YAML配置文件,该文件为您提供了同时运行多个隧道以及调整其一些更高级设置的能力。
ngrok代理配置文件的默认位置因操作系统而异。查找配置文件位置的最简单方法是运行:
ngrok config check
这将验证和打印配置文件的位置。
对于我们支持的主要操作系统,它们的默认文件位置是:
"~/.config/ngrok/ngrok.yml"
"~/Library/Application Support/ngrok/ngrok.yml"
"%HOMEPATH%\AppData\Local\ngrok\ngrok.yml"
配置文件文档详见:https://ngrok.com/docs/agent/config/