title: How does ngrok work behind a firewall?
body: <p>Ngrok (<a href="https://ngrok.com/">https://ngrok.com/</a>) is supposed to allow you to expose local ports and services to the world wide web through forwarding. But if I open port 80 on my local machine like this:</p>
  
  <pre><code>ngrok 80
  </code></pre>
  
  <p>and I get back:</p>
  
  <pre><code>Tunnel Status                 online
  Version                       1.3/1.3
  Forwarding                    http://3a4bfceb.ngrok.com -&gt; 127.0.0.1:80
  Forwarding                    https://3a4bfceb.ngrok.com -&gt; 127.0.0.1:80
  Web Interface                 http://127.0.0.1:4040
  # Conn                        0
  Avg Conn Time                 0.00ms
  </code></pre>
  
  <p>I understand that any requests to <a href="http://3a4bfceb.ngrok.com">http://3a4bfceb.ngrok.com</a> will go to my local machine on port 80 but what if I am sitting behind a NAT/Firewall that's blocking incoming traffic (a very common scenario). Does ngrok initiate polling requests to determine when data has been received?</p>