一尘不染

ngrok如何在防火墙后面工作?

go

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是否会发起轮询请求来确定何时接收到数据?


阅读 356

收藏
2020-07-02

共1个答案

一尘不染

因为ngrok隧道 总是总是首先在客户端启动,所以 这就是它可以与服务器协商安全通道的方式。这是解决常规防火墙配置的好方法。

这是通过客户端打开一个长期的tcp连接在内部完成的,其中一个物理套接字连接中创建了许多逻辑套接字。这种技术称为流多路复用。使用此设置后,无需进行任何轮询,因为客户端和服务器仍具有完全双向的通信。

然后,客户端和服务器使用心跳机制保持活动状态,该机制确保连接是打开的并且可以正常工作,甚至会在出现错误或连接丢失/关闭时重新连接。

请参阅此以获取更多信息:github.com上的开发人员指南

2020-07-02