亲爱的网友,你能搜到本文中,说明您很希望了解这个问题,以下内容就是我们收集整理的相关资料,希望该答案能满足您的要求

Ngrok是一款基于云技术的反向代理工具,可以把本地服务暴露到公网上。它的作用是将本地的Web服务映射到一个公网地址上,这样外网就可以访问这个服务了。Ngrok通过将网络流量在互联网中隧道传输来实现这个功能,这种技术也被称为反向代理,可以对内网的Web服务器进行穿透,将其发布在外网,以便于用户进行访问。

2. ngrok的优点

使用ngrok可以让开发者快速的在本地建立一个Web服务,方便进行开发。同时,ngrok还有以下优点:

2.1 安全性

ngrok使用反向代理技术,将外部流量转发到本地服务,但并不会将本地服务暴露在公网上,保证了本地服务的安全性。

2.2 稳定性

ngrok利用了多个全球分布的服务器,可以保证分布式系统的高可用性和稳定性。同时,它通过使用TLS/HTTPS来加密数据传输,确保了数据的安全。

2.3 易用性

ngrok的配置简单,支持多种协议,包括HTTP、TCP、TLS等。只需要一个命令就可以启动一个可访问的公网地址。

2.4 灵活性

ngrok可以支持自定义子域名、自动重连、多种客户端等,同时还可以进行端口转发等扩展功能。

3. ngrok的使用

3.1 安装ngrok

安装ngrok可以在官网下载二进制文件,也可以通过命令行进行安装,用法如下:

Linux/MacOS:

curl https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip -o ngrok.zip && unzip ngrok.zip && ./ngrok

Windows:

在官网下载ngrok的Windows二进制文件压缩包,进行解压,并且在解压后的文件夹中运行ngrok.exe即可。

3.2 配置ngrok

在ngrok的安装目录下,有一个配置文件ngrok.yml,使用这个配置文件可以进行ngrok的配置。

host_header: webhook.site

tunnels:

first-app:

addr: 9000

proto: http

subdomain: mydomain

配置文件中有几个关键属性,分别是host_header、tunnels、addr、proto和subdomain。

- host_header属性:可以配置虚拟域名,用于进行域名绑定,也可以用于限制指定域名访问。

- tunnels属性:表示要开启哪些映射通道,以及映射到的本地端口等信息。

- addr属性:指定映射的本地服务端口。

- proto属性:指定协议类型,支持http、tcp、tls等。

- subdomain属性:绑定一个二级域名,用于便利的访问服务。

3.3 启动ngrok

通过在命令行中执行ngrok的启动命令,可以启动ngrok。启动命令如下:

ngrok http 9000

其中,http表示要映射的协议类型,可以是http、https、tcp、tls等。后面跟的数字表示映射的本地端口号。

执行这个命令后,ngrok会自动分配一个公网地址,这个公网地址就是要访问的地址。

4. ngrok的高级应用

4.1 自定义域名

使用ngrok配置文件中的subdomain属性可以自定义二级域名,将ngrok生成的URL转换成一个友好的二级域名,以便于程序测试。用法如下:

host_header: webhook.site

tunnels:

first-app:

proto: http

addr: 8080

subdomain: mydomain

配置完毕后,可以通过访问mydomain.ngrok.io来访问本地服务,而不是使用ngrok默认生成的URL。

4.2 多隧道映射

ngrok能够同时映射多个本地服务实例,并且可以分配不同的二级域名,可以在配置文件中添加多个tunnels,每个tunnel需要分配一个独立的二级域名。如下:

host_header: webhook.site

tunnels:

first-app:

addr: 9001

proto: http

subdomain: first-app

second-app:

addr: 9002

proto: http

subdomain: second-app

上述配置中,first-app和second-app是两个不同的本地服务,每个服务都独立映射了一个二级域名。

4.3 内网穿透

ngrok可以进行内网穿透,使得访问内网服务变得简单,在企业中也有用处。使用下述命令可以将服务暴露在公网上,并且让同事或者客户直接访问本地开发环境。

ngrok tcp 22

上述命令会将SSH连接端口映射到公网端口,用户通过SSH可以直接连接内网服务器。

4.4 使用auth验证

ngrok还支持auth验证,使用下述命令可以开启auth验证:

ngrok -httpauth=\"user:password\" http 9000

上述命令使用了httpauth参数,参数值是一个用户名和密码的组合。开启auth验证可以放置未经授权的访问,保证了服务的安全性。

5. 总结

ngrok是一个非常有用的工具,可以快速方便的将本地服务暴露到公网上,方便用户进行访问。通过本文的介绍,可以了解到ngrok的优点和使用方法,可以使用ngrok提高开发效率和开发体验。同时,也需要注意ngrok的安全性,保证内网服务的安全。

ngrok是一个内网穿透的工具,可以将本地服务器对外暴露到公网上,从而可以通过互联网访问本地的服务。比如在开发Web应用时,我们可以通过ngrok将本地的Web服务器穿越到公网上,便于测试和调试。

2. 下载ngrok

首先需要在官网上下载ngrok,官网地址是:https://ngrok.com/

在官网的首页可以看到下载按钮(Download),点击进入下载页面,选择适合自己操作系统的版本进行下载。

下载完成后,解压缩,可以在解压缩的目录中找到ngrok可执行文件。

3. 注册ngrok账户

在使用ngrok之前,需要先注册一个ngrok账户,注册地址是:https://dashboard.ngrok.com/signup

注册完成后,登录到ngrok官网,可以看到自己的ngrok账户的控制面板,其中有一个Authtoken。

这个Authtoken是ngrok验证用户身份的凭据。

4. 启动ngrok

在使用ngrok之前,需要先启动ngrok服务,通常使用ngrok的方式有两种:命令行启动和脚本启动。

命令行启动:

在命令行界面输入以下命令:

./ngrok authtoken <你的Authtoken>

./ngrok http 80

上面的命令中,第一条命令是设置Authtoken,第二条命令是启动ngrok服务,让它监听本地的80端口。

运行命令后,可以看到ngrok会将本地的80端口映射到一个随机的域名上,并在命令行输出映射后的地址。例如:

ngrok by @inconshreveable

Session Status online

Version 2.3.35

Region United States (us)

Web Interface http://127.0.0.1:4040

Forwarding http://7shonsd.ngrok.io -> http://localhost:80

Forwarding https://7shonsd.ngrok.io -> http://localhost:80

这里的“http://7shonsd.ngrok.io”就是映射后的地址,通过这个地址就可以访问本地的80端口了。

脚本启动:

还可以通过脚本来启动ngrok服务,脚本的好处是可以自动化发布代码和启动服务,简化操作。

在脚本中设置Authtoken和要映射的端口即可。以Linux为例,创建一个名为“ngrok.sh”的文件,文件内容如下:

#!/bin/bash

./ngrok authtoken <你的Authtoken>

./ngrok http 80

保存文件后,执行命令“chmod +x ngrok.sh”,赋予文件可执行权限。

然后运行脚本,“./ngrok.sh”即可启动ngrok服务,同理也可以将脚本设置为系统服务自动启动。

5. 使用ngrok

启动ngrok服务后,就可以通过映射后的地址访问本地服务了。例如,如果本地运行了一个Web应用,监听在本地的80端口,那么可以通过访问映射后的地址来访问应用程序。

需要注意的是,ngrok是基于HTTP隧道实现的,所以只能映射HTTP协议。如果需要映射HTTPS协议,需要单独配置。在启动ngrok服务时,可以加上“-bind-tls=true”参数,表示绑定TLS证书,并支持HTTPS。

另外,ngrok还提供了一些高级功能,比如TCP隧道、自定义域名、多个端口映射等等。深入学习这些功能,可以帮助在开发和运维中更全面地使用ngrok。

不知这篇文章是否帮您解答了与标题相关的疑惑,如果您对本篇文章满意,请劳驾您在文章结尾点击“顶一下”,以示对该文章的肯定,如果您不满意,则也请“踩一下”,以便督促我们改进该篇文章。如果您想更进步了解相关内容,可查看文章下方的相关链接,那里很可能有你想要的内容。最后,感谢客官老爷的御览