Erste Schritte auf Android
Chute Android läuft mit derselben Engine wie die anderen Ausgaben, nach Kotlin portiert, und liest dieselbe Konfigurationsdatei. Diese Seite führt durch den ersten Start; Erste Schritte enthält das Gegenstück für iOS, macOS und tvOS, und die dort gezeigte minimale Konfiguration funktioniert auf Android unverändert.
1. Eine Konfiguration beschaffen
Beim ersten Start ohne Konfigurationen öffnet Chute einen Einrichtungsassistenten („Richten wir Ihre erste Proxy-Konfiguration ein“) mit drei Wegen: eine Abonnement-URL Ihres Anbieters, ein QR-Code oder Ihre eigenen Serverdaten, gefolgt von den über den Proxy zu leitenden Websites und einer DNS-Auswahl. Sein letzter Schritt, Erstellen & Verbinden, speichert die Konfiguration, wählt sie aus und startet den Tunnel. Überspringen schließt den Assistenten; solange es noch keine Konfiguration gibt, öffnet er sich beim nächsten Start von Chute wieder, nicht aber, wenn der Bildschirm gedreht wird oder Sie zur App zurückkehren. Einführung anzeigen in den Einstellungen öffnet den Assistenten erneut.
Die Abonnement-URL muss eine https://-Adresse sein. Ein natives Profil, das der Assistent herunterlädt — von dieser URL oder von einer Adresse aus einem QR-Code —, wird als verwaltete Konfiguration behalten und alle 86400 Sekunden aktualisiert, dem Standardwert von Abonnement hinzufügen weiter unten. Ein Clash- oder sing-box-Profil wird, ob es aus dem Abonnement oder aus einem QR-Code stammt, wie auf der Seite Konfigurationen in einen statischen Schnappschuss konvertiert, der nicht aktualisiert wird. Der QR-Code wird so gelesen, wie jene Seite einen liest: Ein chute://download-Link (oder import, install-config, subscribe) ist die Adresse, die heruntergeladen wird, ein Code kann eine ganze Konfiguration tragen, und ein chute://tv- oder chute://remote-Code öffnet den Dialog für entfernte Repositorys auf dem Hauptbildschirm.
Um später eine Konfiguration hinzuzufügen, tippen Sie auf die Leiste Konfig im Hauptbildschirm, um Konfigurationen zu öffnen, und dann auf Konfiguration hinzufügen aus...:
- Leere Konfiguration — speichert eine Vorlage als
Untitled.conf, ohne den Editor zu öffnen; öffnen Sie sie mit Strukturiert bearbeiten oder Text bearbeiten aus dem ⋮-Menü der Zeile. - Abonnement hinzufügen — lädt eine Anbieter-URL herunter und behält sie als verwaltete Konfiguration, die in dem Intervall aktualisiert wird, das Sie im Dialog eintragen (standardmäßig 86400 Sekunden). Ein Clash- oder sing-box-Abonnement wird beim Import konvertiert und als statische Momentaufnahme ohne Update-Kopfzeile gespeichert, aktualisiert sich also nicht von selbst.
- Aus lokaler Datei importieren — importiert eine Chute- (
.conf), sing-box- (.json) oder Clash/mihomo-Datei (.yaml); fremde Formate werden konvertiert. - Von URL herunterladen, Von QR-Code herunterladen, Datei über WLAN hochladen — weitere Wege für dasselbe. Die WLAN-Upload-Seite zeigt die Adressen, die in einem Browser im selben Netzwerk zu öffnen sind, geschützt durch eine PIN.
- Entfernter Server — lädt eine Konfiguration aus einem entfernten Konfigurations-Repository.
Ein Link chute://download?url=..., der von außerhalb der App geöffnet wird — angetippt oder mit der Kamera gescannt —, lädt die Datei ebenfalls herunter, und ein Clash- oder sing-box-Profil wird wie auf der Seite Konfigurationen in einen statischen Schnappschuss konvertiert; ein Abonnement legt der Link aber nicht an: chute://subscribe?url=... ist nur ein Alias von download. Ein natives Profil, das ein solcher Link speichert, aktualisiert die App nie, doch eine laufende Engine ruft seine URL alle 24 Stunden neu ab und übernimmt den neuen Inhalt im Speicher — siehe URL-Schema. Im Einrichtungsassistenten gescannt, ergibt derselbe Link zu einem nativen Profil dagegen eine verwaltete Konfiguration, die die App alle 86400 Sekunden aktualisiert.
Ohne Lizenz behält Chute eine einzige lokale Konfiguration; eine zweite über einen beliebigen Weg hinzuzufügen ist eine Chute-Pro-Funktion — siehe Lizenz und Aktivierung.
2. Auswählen
Tippen Sie auf der Seite Konfigurationen auf eine Konfiguration, sodass sie als Ausstehend markiert ist, und dann auf Fertig: Das ist die Konfiguration, die Chute ausführt. Eine dort gerade hinzugefügte Konfiguration ist bereits als Ausstehend markiert, ebenso eine, die ein von außerhalb der App geöffneter chute://-Link hinzugefügt hat: Chute öffnet diese Seite mit ihr markiert, und nichts ändert sich, bis Sie auf Fertig tippen — ein solcher Link wechselt nie die Konfiguration, die Chute gerade ausführt. Die ausgewählte Konfiguration lässt sich bei laufendem Chute wechseln, mit oder ohne Lizenz; die neue wird durch einen Neustart des Tunnels übernommen.
3. Starten und autorisieren
Tippen Sie auf den Schalter (Zum Starten des VPN tippen). Beim ersten Start fragt Android, ob die VPN-Verbindungsanfrage erlaubt wird — die Systemzustimmung, die jede VPN-App braucht; wird sie abgelehnt, bleibt Chute gestoppt. Zwei Einstellungen bestimmen, was der Tunnel trägt:
- Dienstmodus — VPN (Standard) erfasst den Datenverkehr des Geräts über ein System-VPN; Lokaler Proxy betreibt nur die HTTP- und SOCKS5-Listener, die andere Apps oder Geräte als Proxy verwenden können, ohne Tunnel.
- Anwendungs-Proxy-Modus — Global leitet jede App, Proxy nur die ausgewählten Apps, Blacklist jede App außer den ausgewählten.
Zugehörige Schalter in den Einstellungen: Beim Gerätestart starten (braucht die einmal erteilte VPN-Zustimmung), Nur WLAN (nur im VPN-Modus: pausiert den Tunnel, wenn das zugrunde liegende Netzwerk getaktet ist, und setzt ihn fort, sobald es das nicht mehr ist — das ist es, was Android meldet, nicht die Übertragungsart, sodass auch ein getaktetes WLAN pausiert und ein nicht getakteter Mobilfunktarif nicht) und Durchgehend aktives VPN, das die VPN-Liste von Android öffnet, da die Seite für durchgehend aktives VPN selbst kein öffentliches Ziel ist; schalten Sie „Durchgehend aktives VPN“ für Chute von dort aus ein. Von außerhalb der App starten und stoppen die Startbildschirm-Verknüpfungen Starten, Stoppen und Umschalten, Broadcast-Intents und ein Tasker/Locale-Plugin den Tunnel, ebenso die Schnelleinstellungs-Kachel — es sei denn, Schnellaktionen in den Einstellungen stellt sie von VPN auf Modus (den ausgehenden Modus durchschalten) oder Gruppe (die unter Widget-Gruppe gewählte Richtliniengruppe durchschalten; Gruppen mit hidden=true stehen dort nicht zur Wahl, außer der bereits gewählten) um. Ein Startbildschirm-Widget zeigt, ob der Tunnel läuft, und die Richtlinie dieser Gruppe; ein Tippen darauf schaltet die Gruppe zur nächsten Richtlinie weiter.
Mit „Durchgehend aktives VPN“ startet Android den Tunnel selbst — wenn die Einstellung eingeschaltet wird, beim Gerätestart und nach einem Update von Chute —, mit der ausgewählten Konfiguration und immer als VPN, auch wenn der Dienstmodus auf Lokaler Proxy steht. Unabhängig davon kommt der Tunnel, wenn Android den Prozess von Chute beendet, während das VPN läuft, von selbst mit der ausgewählten Konfiguration zurück — außer Sie hatten ihn gestoppt, ihn in den VPN-Einstellungen von Android getrennt oder die VPN-Berechtigung einer anderen App gegeben. Dasselbe gilt im Modus Lokaler Proxy: Listener, die liefen, kommen zurück, sofern Sie sie nicht gestoppt hatten — Android 12 und neuer kann diesen Neustart allerdings verweigern, solange Chute im Hintergrund ist, und der Start wird dann als fehlgeschlagen gemeldet.
4. Überprüfen
Lassen Sie den ausgehenden Modus auf Regel (die Modi Direkt / Global umgehen oder erzwingen den Proxy pauschal) und öffnen Sie eine Website. Dashboard im Hauptbildschirm zeigt den Live-Verkehr in den Tabs Statistiken, Tunnel, DNS, UDP und Protokolle; ein Tunnel öffnet sich zu seinen Anfrage- und Antwortdetails. Das Bedienfeld enthält die Laufzeitschalter — die lokalen HTTP- und SOCKS5-Listener, HTTP-Control-API und Web-Konsole, MitM, Datenverkehrsaufzeichnung, Protokollerkennung, Optimus DNS — sowie DNS-Cache leeren und das Laufzeit-Diagnosepaket.
Plattformunterschiede
- Prozessregeln gleichen Paketnamen ab.
PROCESS-NAMEvergleicht mit dem Paketnamen der App, die die Verbindung geöffnet hat, etwaPROCESS-NAME,com.android.chrome,Proxy; Chute fragt Android, welcher App jede TCP-Verbindung gehört, die die VPN-Schnittstelle trägt. Verbindungen, die stattdessen bei den Listenern ankommen — alle im Modus Lokaler Proxy sowie die von Apps, die den System-HTTP-Proxy nutzen —, haben keinen Paketnamen, daher greift die Regel bei ihnen nie. - HTTPS-Entschlüsselung braucht Ihre eigene CA. Es gibt keinen Zertifikatsgenerator: Auf der Seite CA konfigurieren des Editors, unter MitM, schreibt P12 importieren eine PKCS#12-Datei base64-kodiert in das
ca-p12der Konfiguration, so wie Chute es auf Apple-Geräten schreibt, sodass die Konfiguration ihre CA auf jedes Gerät mitnimmt; sobald die Passphrase eingetragen ist, öffnet CA installieren den Zertifikatsinstaller von Android für deren CA-Zertifikat. Die Editor-Seite ist nicht lizenzpflichtig, die Engine aber schon: Ohne Chute Pro wird nichts entschlüsselt, was auch immer ein[MITM] enable = trueeines Profils verlangt, und der MitM-Laufzeitschalter im Bedienfeld und im Dashboard ist ebenfalls gesperrt. - SSID-basierte Funktionen funktionieren —
ssid-Richtliniengruppen,SUBNET-Regeln und[SSID Setting]— sofern die Berechtigung erteilt ist, die das System zum Lesen des Netzwerknamens verlangt: Standort (Android 12 und älter) oder WLAN-Geräte in der Nähe (Android 13 und neuer). Chute fragt diese Berechtigung an, wenn Sie mit dem Hauptschalter starten und die Konfiguration einessid- odersubnet-Richtliniengruppe, eineSUBNET,SSID:- oderSUBNET,BSSID:-Regel oder einen Abschnitt[SSID Setting]/[SSID Suspend]enthält. Ein Start, der die Abfrage nicht anzeigen kann — die Schnelleinstellungs-Kachel, eine Verknüpfung, Beim Gerätestart starten, ein Broadcast, „Durchgehend aktives VPN“ —, sendet stattdessen einmal pro Konfiguration die Benachrichtigung SSID-Berechtigung erforderlich; ein Tippen darauf stellt die Abfrage. Die Engine liest das Netzwerk jede Minute neu, sodass eine Erteilung ohne Neustart innerhalb einer Minute wirkt.SUBNET-Regeln in einem externen Regelsatz werden nicht erkannt: Stehen sie dort, erteilen Sie die Berechtigung in den Systemeinstellungen. Im VPN-Modus nimmt der Eintragsuspendaus SSID-Suspendierung die VPN-Schnittstelle herunter, solange das Gerät in einem passenden Netzwerk ist; der Modus Lokaler Proxy ignoriert ihn. - Tailscale ist verfügbar; der Editor hat dafür eine Tailscale-Seite.
- Plattform-Direktiven — Zeilen mit
#!IOS-ONLY,#!MACOS-ONLYund#!TVOS-ONLYsind hier Kommentare, keine davon gilt auf Android. - Trojan-Zeilen aus älteren Versionen. Eine Trojan-Richtlinie braucht auf jeder Plattform ein ausdrückliches
tls=true. Ältere Versionen von Chute Android nahmen für Trojan TLS an, und ihr Editor schrieb die Option standardmäßig nicht, deshalb ergänzt der erste Start nach dem Updatetls=truebei jeder Trojan-Richtlinie Ihrer lokalen Konfigurationen, die keinetls-Option nennt, und hält jede Änderung im Dienstprotokoll der App fest. Eine verwaltete Konfiguration bleibt unangetastet — ihre Quelle ersetzt sie —, ebenso eine Zeile mittls=false. - Zwei Protokolle. Das Protokoll der Engine bleibt im Speicher: Lesen Sie es auf der Seite „Protokolle“ der Web-Konsole oder mit
GET /api/logs, nehmen Sie es im Laufzeit-Diagnosepaket mit (Bedienfeld, bei laufendem Tunnel), oder verfolgen Sie es mitadb logcat. Auf die Festplatte schreibt die App nur ihr eigenes Dienstprotokoll — Starts und Stopps, Aussetzungen, Netzwerkwechsel, die Benachrichtigungen, die sie ausgibt — nachlogs/runtime.login ihrem privaten Speicher, mit einer Kopie je Lauf untersessions/<run id>/. Der Tab Protokolle des Dashboards zeigt die letzten 80 Zeilen dieser Datei, der Tab Protokoll einer Sitzung die Kopie ihres Laufs; Offline-Diagnosepaket sichern unter Einstellungen → DIAGNOSE enthält die Datei, und Lokale Protokolle löschen in den Einstellungen löscht sie, nicht aber die Kopien je Lauf — siehe Fehlerbehebung. - Chute Dashboard auf einem Mac verbindet sich per USB über
adboder über das Netzwerk mit dem Telefon — siehe Chute Dashboard. - Benachrichtigungen decken dieselben Engine-Ereignisse ab wie die anderen Apps (Einstellungen → Benachrichtigungen); „Netzwerk überträgt keinen Verkehr“ folgt dem Schalter Massenverbindungsfehler. Sie werden nur im VPN-Modus ausgegeben: Im Modus Lokaler Proxy gibt es keine Benachrichtigung zu Engine-Ereignissen.
- Nicht auf Android: der Mac-exklusive Erweiterte Modus und VIF, iCloud-Synchronisation und die URL-Aktionen
chute://start/stop/toggle— siehe URL-Schema für die Broadcast-Intents, die sie ersetzen. Ein Broadcast kann den VPN-Zustimmungsdialog nicht aufrufen, daher wirdSTART_VPNstillschweigend verworfen, solange die Zustimmung nicht einmal erteilt wurde;TOGGLE_VPNöffnet stattdessen die App, wo ein Tippen auf den Schalter ihn aufruft, und der Modus Lokaler Proxy braucht überhaupt keine Zustimmung.
Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.