如何使用 Ngrok 在互联网上测试本地网站或应用程序
您是网站或移动应用程序开发人员,并且想要将NAT 或防火墙后面的本地主机服务器暴露给公共互联网以进行测试吗?在本教程中,我们将揭示如何使用ngrok安全地执行此操作。
Ngrok是一款出色的免费开源跨平台反向代理服务器,用于通过安全隧道将 NAT 和防火墙后面的本地服务器暴露给公共互联网。这是一款出色的计算机程序,您可以使用它直接从家中实现个人云服务。
它本质上建立了到您的本地主机的安全隧道,从而使您能够:在实际部署之前运行网站的演示,测试连接到本地运行的后端的移动应用程序并在开发机器上构建 web-hook 消费者。
Ngrok 功能:
- 易于安装,对任何主要平台均无运行时依赖性,并且运行速度快。
- 支持安全隧道。
- 捕获并分析隧道上的所有流量以供后续检查和重放。
- 允许您取消路由器中的端口转发。
- 可以实现HTTP身份验证(密码保护)。
- 使用 TCP 隧道来公开不使用 HTTP 的网络服务,例如 SSH。
- 仅支持具有 SSL/TLS 证书的 HTTP 或 HTTPS 隧道。
- 支持多个同时隧道。
- 允许重放 webhook 请求。
- 使您能够使用虚拟主机站点。
- 它可以通过 API 以及付费计划中的许多选项实现自动化。
在使用它之前,您需要安装一个 Web 服务器或考虑设置一个功能齐全的LAMP或LEMP堆栈,否则请按照以下指南进行操作:
在 Linux 上安装 LAMP:
- 在 RHEL/CentOS 7.0 中安装 LAMP(Linux、Apache、MariaDB、PHP/PhpMyAdmin)
- 如何在 Ubuntu 16.10 上安装 LAMP、PHP 7 和 MariaDB 10
在 Linux 上安装 LEMP Stack:
- 如何在 Debian 9 Stretch 上安装 LEMP(Linux、Nginx、MariaDB、PHP-FPM)
- 如何在 16.10/16.04 中安装 Nginx、MariaDB 10、PHP 7(LEMP 堆栈)
- 在 RHEL/CentOS 7/6 和 Fedora 20-26 上安装最新的 Nginx、MariaDB 和 PHP
如何在 Linux 中安装 Ngrok
Ngrok非常容易安装,只需运行以下命令即可下载并解压包含单个二进制文件的存档文件。
$ mkdir ngrok $ cd ngrok/ $ wget -c https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip $ unzip ngrok-stable-linux-amd64.zip $ ls
一旦您有了二进制文件,让我们在 Web 服务器(Apache)的默认文档根目录中创建一个基本的index.html页面,以测试对 Web 服务器的请求。
$ sudo vi /var/www/html/index.html
在文件中添加以下 HTML 内容。
<!DOCTYPE html> <html> <body> <h1>This is a Example.com Dummy Site</h1> <p>We are testing Ngrok reverse proxy server.</p> </body> </html>
保存文件并通过指定 http 端口80启动ngrok(如果您已将 Web 服务器配置为监听另一个端口,则需要使用该端口):
$ ngrok http 80
一旦启动它,您应该在终端中看到类似下面的输出。
如何使用 Ngrok UI 检查 Web 服务器的流量
Ngrok提供了一个简单的 Web UI,可让您实时检查通过隧道运行的所有 HTTP 流量。
http://localhost:4040
从上面的输出来看,尚未向服务器发出任何请求。首先,使用以下 URL 向您的某个隧道发出请求。其他用户也将使用这些地址访问您的网站或应用。
http://9ea3e0eb.ngrok.io OR https://9ea3e0eb.ngrok.io
然后从检查 UI 进行检查以获取请求和响应的所有详细信息,包括时间、客户端 IP 地址、持续时间、标头、请求 URI、请求负载和原始数据。
更多信息请参见Ngrok 主页:https://ngrok.com/
Ngrok是一款非常棒的工具,它是迄今为止最简单但功能最强大的安全本地隧道解决方案。您应该考虑创建一个免费的 ngrok 帐户以获得更多带宽,但如果您想要更多高级功能,请尝试升级到付费帐户。请记得通过下面的评论表与我们分享您对这款软件的想法。