Ngrok(https://ngrok.com/)应该允许您通过转发将本地端口和服务公开给万维网。但是,如果我像这样打开本地计算机上的端口80:
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
我知道对http://3a4bfceb.ngrok.com的任何请求都将发送到端口80上的本地计算机,但是如果我坐在NAT /防火墙后面,这会阻止传入流量(一种非常常见的情况),该怎么办。ngrok是否会发起轮询请求来确定何时接收到数据?
因为ngrok隧道 总是总是首先在客户端启动,所以 这就是它可以与服务器协商安全通道的方式。这是解决常规防火墙配置的好方法。
这是通过客户端打开一个长期的tcp连接在内部完成的,其中一个物理套接字连接中创建了许多逻辑套接字。这种技术称为流多路复用。使用此设置后,无需进行任何轮询,因为客户端和服务器仍具有完全双向的通信。
然后,客户端和服务器使用心跳机制保持活动状态,该机制确保连接是打开的并且可以正常工作,甚至会在出现错误或连接丢失/关闭时重新连接。
请参阅此以获取更多信息:github.com上的开发人员指南