Linux ngrok如何在防火墙后工作?
Ngrok()应该允许您通过转发向万维网公开本地端口和服务。但如果我在本地计算机上像这样打开端口80:Linux ngrok如何在防火墙后工作?,linux,unix,networking,go,Linux,Unix,Networking,Go,Ngrok()应该允许您通过转发向万维网公开本地端口和服务。但如果我在本地计算机上像这样打开端口80: ngrok 80 我回来了: Tunnel Status online Version 1.3/1.3 Forwarding http://3a4bfceb.ngrok.com -> 127.0.0.1:80 Forwarding ht
ngrok 80
我回来了:
Tunnel Status online
Version 1.3/1.3
Forwarding http://3a4bfceb.ngrok.com -> 127.0.0.1:80
Forwarding https://3a4bfceb.ngrok.com -> 127.0.0.1:80
Web Interface http://127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
我知道,对的任何请求都将转到端口80上的本地计算机,但如果我坐在阻止传入流量的NAT/防火墙后面(一种非常常见的情况),该怎么办。ngrok是否发起轮询请求以确定何时收到数据?由于ngrok隧道总是首先在客户端启动,因此它可以通过此方式与服务器协商安全通道。这是绕过传统防火墙配置的一个非常灵活的解决方案 这在内部由客户端打开一个长期tcp连接来完成,其中在一个物理套接字连接中创建了多个逻辑套接字。这种技术被称为。有了这种设置,就不需要任何类型的轮询,因为客户端和服务器仍然有完全双向的通信 然后,客户端和服务器通过心跳机制保持活动状态,确保连接处于打开状态并正常工作,甚至在出现错误或连接丢失/关闭时重新连接
有关更多信息,请参见此链接:您可以创建基本的http https tcp隧道,而不使用authtoken。对于自定义子域和更多域,您应该通过在ngrok.com注册获得authtoken。设置后,它将存储在ngrok配置中,并用于所有隧道。有几种方法: 等待ngrok.authtoken(令牌);
wait ngrok.connect({authtoken:token,…}) 书中有一章叫做“网络协议和隧道”,解释了ngrok的工作原理。关键因素是,所有传入请求实际上都通过由服务器启动的套接字传输的隧道,从而避免了您提到的问题。@fvu下载和使用的ngrok客户端是启动隧道的,而不是服务器。@RalphCaraveo I确实可以更好地表述这一点,我在看完整的轨迹,ngrok客户端程序在服务器上运行。。。