亲爱的网友,你能搜到本文中,说明您很希望了解这个问题,以下内容就是我们收集整理的相关资料,希望该答案能满足您的要求
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。
不知这篇文章是否帮您解答了与标题相关的疑惑,如果您对本篇文章满意,请劳驾您在文章结尾点击“顶一下”,以示对该文章的肯定,如果您不满意,则也请“踩一下”,以便督促我们改进该篇文章。如果您想更进步了解相关内容,可查看文章下方的相关链接,那里很可能有你想要的内容。最后,感谢客官老爷的御览