Wie funktioniert ngrok hinter einer firewall arbeiten?
Ngrok (https://ngrok.com/) soll Ihnen ermöglichen, setzen lokale ports und Dienste des world wide web durch die Spedition. Aber wenn ich öffnen Sie port 80 auf meine lokale Maschine wie diese:
ngrok 80
und ich bekomme zurück:
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
Ich verstehe, dass alle Anforderungen an http://3a4bfceb.ngrok.com zu meinem lokalen Rechner auf port 80 aber was ist, wenn ich Sitze hinter einer NAT/Firewall blockiert eingehende Datenverkehr (ein sehr häufiges Szenario). Tut ngrok initiieren Sie Umfragen, um zu bestimmen, wenn Daten empfangen wurden?
- Da gibt es ein Kapitel namens "Netzwerk-und tunneling protcol" in den Developer ' s guide to ngrok, die erklärt, wie ngrok funktioniert. Das zentrale element ist, dass der tunnel, über die alle eingehenden Anfragen werden tatsächlich transportiert über sockets, initiiert durch den server, umgehen das problem, das Sie erwähnen.
- Die ngrok client ist heruntergeladen und genutzt wird, was initiiert die tunnel, nicht die server.
- Ich könnte in der Tat haben formuliert, die besser war, schaute ich auf die komplette Flugbahn, und die ngrok client-Programm läuft auf der server-Maschine...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da ein ngrok tunnel ist immer initiiert, die auf der client-Seite zunächst, das ist, wie Sie verhandeln können, einen sicheren Kanal mit dem server. Es ist ein wirklich glatt Lösung zu bekommen um herkömmliche firewall-Konfigurationen.
Diese wird intern durchgeführt, indem der client die öffnung eines einzigen langlebigen tcp-Verbindung, wo viele logische sockets erstellt werden, innerhalb der eine physische socket-Verbindung. Diese Technik wird als stream-multiplexing. Mit diesem setup im Ort gibt es keine Notwendigkeit für jede Art von abrufen, da der client und der server immer noch voll die bi-direktionale Kommunikation statt.
Client und server, dann bleiben Sie am Leben, mit ein heartbeat-Mechanismus, der sorgt dafür, dass die Verbindung geöffnet ist und ordnungsgemäß funktioniert und wird auch Wiederverbinden nach Fehler oder einer verlorenen/geschlossene Verbindung.
Finden Sie diese für weitere Informationen: Entwickler-Handbuch auf github.com