Netzwerk-Debugging
Chute ist ein Proxy, aber der Grund, einen auf den eigenen Geräten zu betreiben, ist selten das Routing. Er ist, dass jede Anfrage nun durch eine Stelle läuft, die Sie kontrollieren — Sie können also beobachten, was eine App tatsächlich sendet, die Bodies aufbewahren und später lesen, eine Anfrage oder Antwort unterwegs ändern und ein gesundes Backend kaputt aussehen lassen, um zu sehen, was Ihre App daraufhin tut.
Die Referenzseiten der einzelnen Mechanismen stehen anderswo in diesem Handbuch: HTTPS-Entschlüsselung, Mock-Antwort, URL-Umschreibung, JS-Skripting. Dieser Abschnitt bringt sie in die Reihenfolge, in der man sie tatsächlich benutzt, und sagt, was sich von Plattform zu Plattform ändert.
Vier Fenster auf denselben Kernel
Ein laufendes Chute, vier Blickwinkel. Das falsche Fenster zu wählen ist der übliche Grund dafür, dass etwas „nicht da" ist.
| Läuft auf | Anfrage- und Antwort-Bodies | Ändert den laufenden Kernel | Braucht | |
|---|---|---|---|---|
| Die App selbst | Dem Gerät | iOS ja; macOS und tvOS nein | Nur die Schalter | Nichts |
| Web-Konsole | Einem Browser, beliebiges Gerät | Ja | MitM-Hosts, alle Rewrite-Familien, Richtlinien, Konfiguration | external-http-controller |
| Chute Dashboard | Einem Mac | Ja | MitM-Hosts, alle Rewrite-Familien, die beiden Schalter | external-controller-access |
| HTTP-Control-API | Allem, was HTTP spricht | Ja, base64 | Alles, was die Konsole kann | external-http-controller |
Konsole und Dashboard überschneiden sich stark, werden aber verschieden erreicht — die Konsole liefert der Kernel selbst aus und man öffnet sie im Browser, Dashboard ist eine Mac-Anwendung, die einen binären Kanal spricht. Keines ist eine Obermenge des anderen; Was Dashboard nicht erreicht listet die Unterschiede.
Zuerst vier Schalter richtig setzen
Fast jedes „ich sehe die Verbindung, aber nicht die Anfrage" endet bei einem dieser vier, in dieser Reihenfolge:
- Der Verkehr erreicht Chute überhaupt. Eine Zeile in der Verkehrsansicht ist der Beweis. Gar nichts ist ein Übernahmeproblem, kein Debugging-Problem — siehe Fehlerbehebung.
- Die CA ist installiert und vertrauenswürdig. Zwei getrennte Schritte auf iOS, einer auf macOS, und keiner davon in der App auf tvOS — siehe CA-Zertifikat installieren und vertrauen.
- Der Host steht auf der MitM-Liste. Chute entschlüsselt deklarierte Hosts und sonst nichts. Eine Zeile mit
CONNECT, ohne Methode und ohne Status, wurde nie entschlüsselt. - Die Aufzeichnung läuft.
replica = trueoder der Schalter (Traffic Capture auf dem Mac, Daten ausgeben auf iOS und tvOS). Ohne ihn trägt jede Zeile weiterhin ihre Regel, ihre Richtlinie und ihre Zeiten — es fehlen nur die Nutzdaten.[Replica]schränkt danach ein, was davon behalten wird.
Die Schalter 3 und 4 lassen sich auch zur Laufzeit aus der Konsole, aus Dashboard und über die API umlegen, und keines davon schreibt in die Konfigurationsdatei zurück: Nach einem Neustart gewinnt die Datei.
Was jede Plattform hergibt
| Chute iOS | Chute Mac | Chute tvOS | |
|---|---|---|---|
| In der App ansehen | Dashboard-Bildschirm — Übersicht, Anfrage, Antwort, mit Bodies | Reiter Traffic — Routing, keine Bodies | Sitzungsliste — Routing, keine Bodies |
| MitM in der App umschalten | Schalter im Kontrollfeld (lizenzpflichtig) | Menüleiste → Enable MitM (⌘M) | Auf dieser Plattform kein Schalter |
| Aufzeichnung in der App umschalten | Kontrollfeld → Daten ausgeben (lizenzpflichtig) | Menüleiste → Traffic Capture (⌘B) | Kontrollfeld → Daten ausgeben (lizenzpflichtig) |
| CA installieren | In der App, dann in den Einstellungen vertrauen | In der App, ein Schritt | Nur MDM oder Apple Configurator |
| Chute Dashboard erreicht es | USB-Kabel oder WLAN | 127.0.0.1 auf demselben Mac |
WLAN |
| Datei vom Gerät holen | Teilen-Menü | Das Dateisystem | Nur die Konsole, per QR-Code |
Wie es weitergeht
- Ein iPhone vom Mac aus debuggen — der ganze Weg, vom frischen Telefon bis zum entschlüsselten Body auf dem Mac-Bildschirm.
- Debugging auf dem Mac — der eigene Verkehr des Macs, samt Terminal-Werkzeugen und Trennung nach Prozess.
- Ein Apple TV debuggen — ein Gerät ohne Browser, ohne Teilen-Menü und ohne Möglichkeit, selbst ein Zertifikat zu installieren.
- Replikat — welche Verbindungen ihre Bodies behalten und wie man aufhört, alles aufzuzeichnen.
- Mocks und Fehlerinjektion — vorgefertigte Antworten, Fehlerstatus, eingebaute Verzögerung und was Chute wirklich nicht simulieren kann.
Lautet die Frage „es funktioniert nicht" statt „was tut es", beginnen Sie stattdessen bei der Fehlerbehebung — insbesondere bei Warum tut mein Rewrite nichts?, der Frage, die dieser Abschnitt am häufigsten hervorbringt.
Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.