Versionshinweise zu Chute iOS
Version 1.2.2 (382)
Neue Funktionen:
- Proxy-Verkettung hinzugefügt: Eine Richtlinie kann einen
underlying-proxyangeben und ihren Server über ihn erreichen, eine Richtliniengruppe kann alle ihre Mitglieder über einen gemeinsamen Upstream leiten, und die neue Zeile „Front-Proxy“ unter „Erweitert“ (global-underlying-proxy) tut dasselbe für jeden Knoten, der keinen eigenen Upstream festlegt. Jeder Transport außer Tailscale lässt sich verketten — Stream-Protokolle laufen über den Stream des Upstreams; Hysteria2, TUIC, MASQUE und XHTTP über HTTP/3 laufen in festen 1280-Byte-Paketen über dessen UDP-Relais; WireGuard- und AmneziaWG-Tunnel laufen mit einer inneren MTU von 1280 Byte durch ihn hindurch; SSH- und AnyTLS-Sitzungen werden darüber geöffnet. Eine Kette, die eine Schleife bildet, mehr als 16 Ebenen tief verschachtelt ist oder eine nicht vorhandene Richtlinie nennt, wird abgelehnt, statt den Verkehr direkt hinauszuschicken - Relay-Gruppen hinzugefügt (
relay, wie in Clash und mihomo): Die Mitglieder werden in der angegebenen Reihenfolge verkettet — das erste wird direkt erreicht, jedes weitere über die vor ihm liegenden, und das letzte verbindet sich mit dem Ziel. Der Gruppen-Editor bietet „Relay“ an, behält die Mitglieder in dieser Reihenfolge bei und verlangt mindestens zwei - Random-Gruppen hinzugefügt (
random, wie in Shadowrocket): Jede Verbindung wählt zufällig ein Mitglied, bei UDP nur unter den Mitgliedern, die UDP übertragen können. Da es bei einer Random-Gruppe keine Auswahl zu ändern gibt, fehlt sie überall dort, wo Sie die Richtlinie einer Gruppe wählen, und der Gruppen-Editor belässt sie als Random-Gruppe - Proxy-Kette im Dashboard und in der Web-Konsole hinzugefügt: Die Anfragedetails und die UDP-Liste nennen jeden Hop (
Airport/HK-01 → Landing), und der HAR-Export enthält den Pfad - „Download über“ in den Editoren für Regel- und Proxy-Provider hinzugefügt:
policy=lädt die Liste über die gewählte Richtlinie, und bei einem nicht vorhandenen Richtliniennamen schlägt der Download fehl, statt die Liste direkt abzurufen - UDP über TCP im Shadowsocks-Editor hinzugefügt —
udp-over-tcp, Version 1 oder 2 —, sodass das UDP eines Proxys innerhalb seiner TCP-Verbindungen läuft und selbst über eine Kette funktioniert, deren Upstream kein UDP überträgt - UDP für VMess und VLESS hinzugefügt: An VMess oder VLESS gesendetes UDP wurde bisher rundweg abgelehnt (es folgte
udp-policy-not-supported-behaviour, standardmäßig REJECT); jetzt läuft es über eine Verbindung je Ziel, wie in mihomo, sing-box und Shadowrocket - jq in der Body-Umschreibung hinzugefügt:
http-request-jqundhttp-response-jqwenden ein echtes jq-Programm auf einen JSON-Body an, und der Editor bietet dafür das Feld „JQ-PROGRAMM“; ein ungültiges Programm wird gemeldet und seine Regel übersprungen, und bei einem Nicht-JSON-Body, einem fehlschlagenden Programm oder leerer Ausgabe bleibt der Body unverändert - Generische Skripte hinzugefügt: Ein Skript mit
type=generichat keinen automatischen Auslöser und läuft nur auf Abruf — über die Schaltfläche „Ausführen“ in seinem Editor oder überGET /api/scriptsundPOST /api/scripts/run. Der Skript-Editor erhält außerdem das Feld „Ereignisname“: Zugestellt wird nurnetwork-changed, ein Ereignisskript, das ein anderes Ereignis nennt, läuft also nie - Eigene DNS-Pools hinzugefügt:
direct-dns-serverlöst die Domains auf, die eine Regel an DIRECT sendet,proxy-dns-serverlöst die eigenen Hostnamen Ihrer Proxy-Server auf, undfallback-dns-serverwird gefragt, wenn die Hauptserver keine Antwort geben; jeder fällt auf die globalen Server zurück, und der DNS-Editor hat für jeden eine Zeile #proxy/#proxy=<policy>für DNS-Upstreams hinzugefügt, DoQ und DoH3 eingeschlossen: Ein QUIC-Resolver läuft über das UDP-Relais der Richtlinie; eine Richtlinie, die kein UDP übertragen kann, überspringt diesen Server, statt ihn direkt zu fragen; ein einfacher Resolver, der über eine Richtlinie geleitet wird, wechselt zu DNS über TCP; und einfachetcp://-Upstreams werden für Pfade akzeptiert, auf denen DNS über UDP verworfen wirdencrypted-dns-follow-outbound-mode,allow-dns-svcb— HTTPS- und SVCB-Anfragen werden leer beantwortet, solange es aus ist — sowie pro Server#h3,#skip-cert-verify,#disable-ipv4,#disable-ipv6und#disable-qtype=hinzugefügt- Lokale DNS-Zuordnung erweitert: Ein
[Host]-Eintrag behält alle aufgeführten Server und fragt sie parallel ab, bildet eine Domain auf mehrere Adressen ab, kann einen Regelsatz als Schlüssel verwenden (RULE-SET:<url>), führt für diese Domain eintype=dns-Skript aus (script:<name>) und akzeptiertssid:<name>für eine Zuordnung pro Netzwerk - Regelbenachrichtigungen hinzugefügt: Jede Regel, FINAL eingeschlossen, akzeptiert
notification-text=undnotification-interval=und sendet bei einem Treffer eine Benachrichtigung, pro Regel höchstens einmal je Intervall; Benachrichtigungen folgen dem Schalter „Benachrichtigung erlauben“ der App, und ein Antippen öffnet die URL, die sie enthält FINAL,<policy>,dns-failedhinzugefügt: Wenn ein Name nicht aufgelöst werden kann, wird die Verbindung auf der FINAL-Richtlinie mit Remote-Auflösung geöffnet, statt geschlossen zu werden- Die REJECT-Familie als echte Richtlinien hinzugefügt — REJECT-DROP, REJECT-NO-DROP, REJECT-TINYGIF, REJECT-IMG, REJECT-DICT, REJECT-ARRAY, REJECT-200 und REJECT-VIDEO —, jede beantwortet eine HTTP-Anfrage mit ihrem dokumentierten Body, und ein Host, der mehr als 50 Mal in 30 Sekunden abgelehnt wird, wird auf REJECT-DROP hochgestuft; die Richtlinienauswahl bietet sie an, schreibt DIRECT-/REJECT-/PROXY-Token, wo früher ein lokalisierter Name geschrieben wurde, und repariert Namen, die ein älterer Build hinterlassen hat
- Eingebettete Regelsätze hinzugefügt: Abschnitte
[Ruleset Name]werden im Konfigurationseditor gesondert aufgelistet, Zeile für Zeile bearbeitet und alsRULE-SET,<name>referenziert, einschließlich Verweisen zwischen ihnen — bis zu acht Ebenen tief, Schleifen werden abgelehnt - Die SSID-Familie hinzugefügt: DNS-Überschreibungen in
[SSID Setting]gelten pro Netzwerk — Namen,BSSID:,TYPE:WIFI/CELLULAR/WIRED,ROUTER:, in Anführungszeichen gesetzte und Wildcard-Namen — und leeren den Cache des vorherigen Resolvers, wenn das Netzwerk wechselt;ssid- undsubnet-Richtliniengruppen wählen Mitglieder aus dem aktuellen Netzwerk, SUBNET-Regeln treffen es, undsuspend=truestoppt jetzt den Tunnel: Ein Netzwerkname oderTYPE:-Eintrag wird zu einer On-Demand-Trennregel, einBSSID:-,ROUTER:- oder Wildcard-Eintrag wird von der Erweiterung selbst ausgesetzt, und die Erweiterung weist darauf hin, wenn „Immer an“ den Tunnel zurückholen würde - DEST-PORT-, SRC-PORT- und IN-PORT-Bereiche und -Vergleiche hinzugefügt (
80-81,>=50000,/-Listen),HOSTNAME-TYPE-WerteIPv4,IPv6,DOMAINundSIMPLEsowie funktionierende IN-TYPE-, IN-USER- und IN-NAME-Regeln, die jetzt echten Verkehr treffen statt nur in einem Probelauf - MitM-Optionen hinzugefügt: HTTP/2 entschlüsseln (
h2), QUIC zu entschlüsselten Hosts blockieren, damit HTTP/3 die Entschlüsselung nicht umgehen kann (auto-quic-block), Hosts von der Entschlüsselung ausnehmen und die Schlüsselwörter<ipv4-address>,<ipv6-address>und<simple-hostname>in der Host-Liste auswerten - QUIC-Routing nach Domain hinzugefügt: Der Name wird aus dem QUIC-Initial des Clients gelesen, ein über mehrere Initials verteilter ClientHello wird wieder zusammengesetzt, und der Flow wird gehalten, bis der Name bekannt ist, sodass DOMAIN-Regeln HTTP/3-Verbindungen routen, die zu einer bloßen Adresse aufgebaut werden
icmp-auto-replyhinzugefügt, standardmäßig aktiv: Ein Ping im Tunnel wird lokal beantwortet, über IPv4 und IPv6, statt in einen Timeout zu laufentun-included-routeshinzugefügt: Die aufgeführten CIDRs kommen nach der Standardroute zu den Routen des Tunnels hinzu, sodass ein Bereich, den sonst das eigene Subnetz der WLAN-Schnittstelle oder ein anderes VPN übernehmen würde — das System bevorzugt die spezifischere Route —, über Chute läuft. Einträge, die den Tunnel abschneiden würden (Loopback, die eigenen Subnetze des Tunnels, Link-Local, Multicast, Broadcast, eine Präfixlänge von 0), werden abgelehnt und protokolliert, private Bereiche werden mit einer Warnung akzeptiert, und eine geänderte Liste greift beim Neuladen, ohne dass der Tunnel neu gestartet wird- Importumfang erweitert: GEOSITE- und Kategorie-GEOIP-Regeln aus mihomo werden zu funktionierenden Regelsätzen aufgelöst,
policy-path-Gruppen erzeugen einen Provider mitupdate-interval, Filtern und Include-Listen,SUB-RULEaus mihomo wird in AND-Regeln umgesetzt,detouraus sing-box unddialer-proxyaus mihomo werden als Verkettung importiert,allowed-ipsvon WireGuard wird kompiliert und durchgesetzt, sodass ein Split-Tunnel nicht mehr jedes Ziel verschluckt, undinterface=/allow-other-interface=einer Richtlinie bindet deren Verbindungen an eine einzige Netzwerkschnittstelle - Skript-API erweitert:
$httpAPIruft die eigenen Routen der Engine auf, ohne einen Socket zu öffnen,$httpClientbeachtet einepolicy,read-etc-hostsspeist die Hosts-Datei in DNS ein, und$event.namemeldet das Ereignis, das tatsächlich ausgelöst wurde - Optionen für Mock-Antworten hinzugefügt — der Body kann Text, eine Datei, base64 oder ein 1×1-GIF sein, mit Statuscode und Validierung — sowie Typ-Tabellen für URL- und Header-Umschreibung, mit einem Modus für reguläre Ausdrücke zum Ersetzen des Werts eines Headers
Verbesserungen:
- Chute setzt jetzt iOS 15 oder neuer voraus
- Jeder strukturierte Editor behält jetzt, was er nicht anzeigt: Jeder Builder übernimmt die Schlüssel, die er nicht darstellt — den Rest der Optionen einer Regel, die Unterregeln von AND / OR / NOT, die weiteren Adressen eines
[Host]-Eintrags, die weiteren Zeilen eines Modulkopfes —, sodass Öffnen und Speichern einer Konfiguration sie nicht mehr umschreibt, und ein Eintrag, dessen Typ der Editor nicht kennt, wird als Text bearbeitet - Die Editoren für Body-Umschreibung, Header-Umschreibung, URL-Umschreibung, Map Local, Mock und Skript schreiben, was die Engine liest: Ein Skript wird mit seinem
type=gespeichert, ein JSONPath-Wert behält seine Art, und Map Local behältstatus-code,data-typeund Header - Der Import eines veröffentlichten Profils verliert kein Routing mehr:
dns-serverakzeptiert verschlüsselte DNS-URLs, Listener-Zeilen akzeptieren ein Passwort, in Anführungszeichen gesetzte Gruppenmitglieder bleiben erhalten, logische Regeln aus sing-box werden wie dokumentiert konvertiert,PASS-Mitglieder werden verworfen, statt zu REJECT zu werden, und ein nicht unterstütztes Protokoll oder ein nicht unterstützter Gruppentyp löst eine Warnung aus, statt seine Gruppe mitzureißen — in importierten mihomo-Profilen machten Regeln, die nie treffen können, bisher den Großteil der Liste aus, jetzt sind es fast keine mehr - Regelsätze brauchen deutlich weniger Speicher: Provider werden nacheinander heruntergeladen, statt nach dem 35. schlicht zu scheitern, die Spitzen bei der Konvertierung sanken um 62–73 %, Indexverbindungen sind begrenzt und werden bei Speicherknappheit freigegeben, und eine für das Gerät zu große Nutzlast wird abgelehnt, wobei der Grund im Status des Regelsatzes angezeigt wird
- Ressourcengrenzen verhindern, dass eine übergroße Konfiguration die Tunnel-Erweiterung über ihr Speicherlimit treibt: Der MitM-Zertifikatsspeicher, der Aufzeichnungsrückstand, Größe und Anzahl der Skripte, das Anfragebudget der Konsole, die Tailscale-Peers und der DNS-Cache sind unter iOS jeweils gedeckelt
- Latenztests nutzen das richtige Ziel:
test-urlundtest-timeouteiner Gruppe,proxy-test-urldes Profils sowietest-urlundexpected-statuseines Mitglieds werden alle berücksichtigt, und ein verketteter Knoten wird über seine Kette geprüft statt direkt - Die Web-Konsole und die Steuerungs-API: Eine zur Laufzeit hinzugefügte Regel bleibt nicht mehr bestehen, nachdem dasselbe Profil neu geladen wurde, Protokollzeiger bleiben monoton, sodass eine Abfrage nie einen Eintrag überspringt, und die Verbindungsdetails nennen die Proxy-Kette
- ShadowTLS prüft jetzt das Zertifikat der Tarn-Website, wenn
sni=angegeben ist, wie es auch sing-box tut;skip-cert-verify=trueschaltet die Prüfung ab (die Option wurde bisher ignoriert, und es wurde überhaupt kein Zertifikat geprüft), und ohnesni=entfällt die Prüfung mit einer Warnung - Downloads und Abonnements: Jeder Download geht in eine eigene Datei, und das Format wird anhand des Bodys bestimmt, sodass eine Aktualisierung nicht mehr ihren ersten Download erneut liest oder das Profil einer anderen Adresse anwendet; ein aus Clash oder sing-box konvertiertes Profil landet als
.confund erhält den Namen, den ihm jede Chute-App gibt; ein bereits verwendeter Name wird nummeriert, statt überschrieben zu werden - Umgang mit Konfigurationen: Speichern unter einem anderen Namen fragt zuerst, lädt den Tunnel neu, wenn es die laufende Datei überschreibt, und entfernt nicht mehr die Datei, aus der eine Konfiguration geöffnet wurde; „Von iCloud synchronisieren“ rechnet die bereits installierten Konfigurationen auf das Limit der Lizenz an; ausgeblendete Richtliniengruppen erscheinen nicht in der Global-Liste und den Select-Listen, bleiben für die Engine aber erreichbar; „Global“ zeigt immer die Gruppe, die es verwendet
- Die Wi-Fi-Upload-Seite behält die Endung der übergebenen Datei, lehnt einen bereits verwendeten Namen mit Begründung ab und sendet Nicht-ASCII-Namen so, wie RFC 6266 es verlangt, sodass
上传的配置.confunter diesem Namen ankommt - Neue Einstellungen, Meldungen und Benachrichtigungen erscheinen in allen acht eingebauten Sprachen, und die Benachrichtigungen des Tunnels nennen den Grund, aus dem der Tunnel gestoppt wurde
Fehlerbehebungen:
- Behoben, dass Hysteria2 jedes UDP-Datagramm verwarf, das nicht in einen einzelnen QUIC-DATAGRAM-Frame passte, wodurch HTTP/3 einer App nicht durchkam und auf TCP zurückfiel; große Datagramme werden jetzt beim Senden aufgeteilt und die aufgeteilten Antworten des Servers wieder zusammengesetzt
- Behoben, dass ein neu gestarteter Tunnel den ersten lokalen Port und die TCP-Sequenznummern des vorherigen Laufs wiederverwendete, worauf ein WireGuard-Peer, der die alte Verbindung noch hielt, mit Resets antwortete; der TCP-Stack des Tunnels initialisiert sich jetzt aus der Zufallsquelle des Systems und wählt die Anfangssequenznummern wie in RFC 6528 beschrieben
- Behoben, dass XHTTP im Tunnel nach dem ersten Schreibvorgang der App stockte, sodass ein TLS-Handshake nie abgeschlossen wurde und ein Upload nur einen einzigen Block sendete; jeder Schreibvorgang wird jetzt der Reihe nach abgeschlossen, und sobald mehr als 1 MB zum Hochladen ansteht, wartet der nächste Schreibvorgang, bis dieser Rückstand abgebaut ist
- Behoben, dass
PROTOCOL,TCPundPROTOCOL,UDPnie trafen: Jede eingehende Verbindung bestimmt jetzt ihr Transportprotokoll, sodass der übliche Weg, QUIC mit einer AND-Regel zu blockieren, funktioniert - Behoben, dass
RULE-SETundDOMAIN-SETinnerhalb von AND / OR / NOT immer als falsch ausgewertet wurden — wodurchNOT,((RULE-SET,…))auch inländischen Verkehr ablehnte — und dassSCRIPTinnerhalb einer logischen Regel immer als wahr ausgewertet wurde - Behoben, dass
RULE-SET,<name>,<policy>,no-resolveno-resolveverlor, wenn es über den Namen geschrieben wurde, dassUNKNOWNbei GEOIP und IP-ASN nie traf, dassstatus-code=von Map Local über HTTP/2 ignoriert wurde und dass eine Antwort-Header-Umschreibung über Klartext-HTTP nur den Pfad traf, sodass ein gegen die vollständige URL geschriebenes Muster nie treffen konnte - Behoben, dass
block-quicnur einen der Surge-Werte akzeptierte, während jeder andere Wert bedeutete, dass QUIC gar nicht blockiert wurde - Skript-API behoben:
$klne.getPolicyGroups()undselectPolicy()werfen nicht mehr beim ersten Aufruf,reloadConfiguration()lädt neu,getActiveConnections()meldet den echten Host, Port und die Id,closeConnection()schließt, und ein Vor-dem-Senden-Skript mitrequires-bodyerhält endlich den Body - Behoben, dass
[Replica] keyword-filterden ganzen Hostnamen verglich, statt zu prüfen, ob er das Schlüsselwort enthält, sodasskeyword-filter = googlenichtwww.google.comerfasste - Behoben, dass PROCESS-NAME-, PROCESS-PATH- und PROCESS-NAME-REGEX-Regeln unter iOS Browser-Verkehr trafen, weil der verglichene Name dort der Produktname des Browsers war und kein Prozess; diese Regeln funktionieren nur unter macOS und treffen unter iOS nichts mehr
- Behoben, dass ein gespeichertes Dashboard-Profil als falscher Typ zurückgelesen wurde, was bei jedem Antippen zum Absturz führte; dass in einer Liste mit Duplikaten verschobene oder gelöschte Zeilen Tabelle und Daten auseinanderlaufen ließen; und Abstürze, wenn ein bereits geschlossener Bildschirm noch einen Rückruf erhielt
- Behoben, dass die automatische Aktualisierung des Abonnements den Hauptthread 30 Sekunden lang blockierte, sodass der Watchdog die App beendete, wenn sie mitten in der Aktualisierung in den Hintergrund ging; dass der Schalter im Kontrollzentrum immer fehlschlug, weil dem Widget die Berechtigung zur Steuerung des VPN fehlte, dass Bild-in-Bild zweimal dargestellt wurde und dass die Continuation des Widgets zweimal fortgesetzt wurde
- Fehler bei Downloads und Namen behoben: Eine aufbewahrte Download-Datei wurde bei der nächsten Aktualisierung erneut gelesen, eine Adresse wurde mit dem Profil einer anderen Adresse beantwortet, wenn beide denselben Namen vorschlugen, ein Import oder eine Kopie löschte die Datei in iCloud, aus der gelesen wurde, ein Upload verlor alles nach seinem ersten Punkt, ein Abonnement, dessen Adresse auf eine bloße Endung endete, wurde als versteckte Datei gespeichert, und eine Bearbeitung wurde ohne Nachfrage über eine lesbare Konfiguration gespeichert
- Behoben, dass ein
chute://-Link — etwa aus einer Kurzbefehle-Automation — nichts bewirkte, wenn Chute nicht bereits lief; auch ein Kaltstart verarbeitet ihn jetzt - Verschiedene Stabilitäts- und Leistungsverbesserungen
Version 1.2.0 (351)
Neue Funktionen:
- Adresse der Web-Konsole im Bedienfeld hinzugefügt: Die Zeile „Web-Konsole“ zeigt den Host, und Antippen bietet „Öffnen“, „Adresse kopieren“ und „Zugriffstoken kopieren“ — „Öffnen“ trägt das Token in der URL, sodass die Anmeldung ohne Eintippen gelingt
- „Laufzeit-Diagnosepaket“ als letzte Zeile des Abschnitts „LOKALER PROXY“ im Bedienfeld hinzugefügt: Die laufende Engine erstellt ein bereinigtes Archiv (Konfiguration, Zustandsaufnahme, Ereignisse dieses Laufs, geladene Regeln und Richtlinien, DNS, Verkehr und die Protokoll-Shards) und übergibt es an die Teilen-Ansicht; der Tunnel muss verbunden sein, ein
external-http-controllerist nicht nötig - „Offline-Diagnosepaket“ unter Einstellungen → DIAGNOSE hinzugefügt, das die App ohne laufenden Tunnel erstellt: Geräte- und App-Angaben, das VPN-Profil, wie iOS es hält, eine Zusammenfassung der gewählten Konfiguration samt Parserfehlern, die drei Diagnoseseiten als Text, der bereinigte Anfang der Konfiguration, wie der vorherige Lauf endete, die Protokollenden der neuesten Sitzung und wartende Absturzberichte
- „Protokoll teilen“ in der Sitzungsansicht hinzugefügt, das alle Shards des Sitzungsprotokolls anbietet
- Rewrite-Zuordnung in den Sitzungsdetails hinzugefügt: Der Abschnitt „RICHTLINIE“ nennt jetzt neben Regel und Richtlinie, die eine Anfrage geroutet haben, die Regel (URL-Umschreibung, Header-Umschreibung, Body-Umschreibung oder Mock-Antwort), die sie verändert hat
- Benachrichtigung „Netzwerkadresse geändert“ hinzugefügt, die „Ausgangs-IP geändert“ ersetzt: Sie zeigt die eigene IPv4- und IPv6-Adresse dieses Geräts auf der physischen Verbindung, eine Zeile je Adressfamilie, und kennzeichnet eine IPv4-Adresse hinter NAT; IPv6 und eine routbare IPv4 werden lokal gelesen, nur eine NAT-lokale IPv4 kostet eine einzelne STUN-Anfrage
- Französisch als eingebaute Sprache hinzugefügt
- Neu gestaltete Wi-Fi-Upload-Seite im Stil der Web-Konsole hinzugefügt, in neun Sprachen lokalisiert
- Der Web-Konsole hinzugefügt: die Reiter „Aktuell“ und „Verlauf“, eine Detailansicht (getroffene Regel, Regelquelle, Richtlinie, Adapter, DNS-Quelle, Prozess, Schließgrund, Anfrage- und Antwortkörper), eine Regelseite, die zeigt, welche Rewrite-Regeln ausgelöst haben, und eine Diagnoseseite (Speicherbedarf, CPU, Laufzeit, Flows, wie der vorherige Lauf endete, Ablehnungszählung, Ereignisprotokoll, Tailscale-Momentaufnahme sowie Ping-, DNS-, Ausgangs- und URL-Test-Sonden); die Konsole ist jetzt in allen neun Sprachen vollständig
- Endpunkte der HTTP-Steuerungs-API hinzugefügt:
/api/health,/api/events,/api/tailscale, die Sonden unter/api/diagnostics/,/api/connections/export?format=har,/api/diagnostics/bundle, Verwaltung von Rewrite-Regeln und MitM-Hosts unter/api/rewritesund/api/mitm/hosts,POST /api/rules/matchfür einen Probelauf einer Anfrage gegen die Regeltabelle (beide DNS-Durchläufe werden gemeldet),GET|PUT /api/loglevelzum Ändern von Protokollstufe und Subsystem-Abschnitten ohne Neuladen sowiePOST /api/config/validatezum Prüfen eines Profils, ohne es anzuwenden
Verbesserungen:
- Die HTTP-Steuerungs-API ist nicht mehr offen, wenn die Konfiguration kein
external-http-secretnennt: Die Engine erzeugt ein Token, das das Bedienfeld anzeigt und kopiert;external-http-secret = nonebehält den anonymen Zugriff bei, und eine Wildcard-Abhöradresse gilt nicht mehr als Loopback - Regelabgleich auf großen Listen ist deutlich schneller: RULE-SET- und DOMAIN-SET-Inhalte werden beim Herunterladen oder Wiederherstellen indiziert, statt pro Verbindung durchgestreamt zu werden, und eine Regeltabelle nur aus Domainregeln wird über einen gehashten Plan abgeglichen — bei einer Liste mit 50.000 Zeilen sinkt ein Abgleich von etwa 94 ms auf unter 2 ms, bei rund 100 KB Speicher je Index
- UDP-Flows werden nur einmal abgeglichen: Die Entscheidung eines Flows wird 60 Sekunden gemerkt, sodass Folgedatagramme beide Abgleichdurchläufe und die DNS-Abfrage dazwischen überspringen
- Bessere Erholung nach einem Netzwerkwechsel: Tunnel, deren Upstream-Quelladresse auf keiner Schnittstelle mehr existiert, werden geschlossen, statt Apps bis zum Leerlauf-Timeout hängen zu lassen; ein gleichartiger Pfadwechsel (Neuanmeldung im Mobilfunk) wird jetzt bemerkt, und ein Pfad, der Verbindungen annimmt, aber keine Daten bewegt, wird als Blackhole gemeldet
- Sitzungsprotokolle werden in 8-MB-Shards geschrieben (bis zu acht je Lauf, die ältesten fallen weg), jeder mit einem Kopf, der Lauf und Startzeit nennt, sodass eine lange Sitzung keine einzelne Datei mehr erzeugt, die zu groß zum Abrufen ist; der Protokollbetrachter lädt alle Shards der Reihe nach und folgt weiter dem, der gerade geschrieben wird
- Die Engine hält während des Laufs eine Laufmarkierung und meldet beim nächsten Start, ob der vorherige Lauf sauber endete oder abgebrochen wurde — im Protokollkopf, unter
/api/statusund in beiden Diagnosepaketen - Der HAR-Export wird jetzt von der Engine aus den aufgezeichneten Frames erstellt, sodass Statuscodes, Zeitstempel und Zeiten echt sind, und jeder Eintrag trägt unter
_kldie gewählte Richtlinie, die getroffene Regel und die Rewrite-Treffer; „HAR exportieren“ im Dashboard und die Verbindungsdetails nutzen ihn beide - Nur die drei Funktionen, die die Kaufseite verkauft, brauchen eine Lizenz — Erweiterte Server-Steuerung, MitM und Datenverkehrs-Aufzeichner; Protokollerkennung, Optimus DNS, Externer Zugriff, HTTP API, Web-Konsole und „DNS-Cache leeren“ verlangen keine mehr
- Das Bedienfeld folgt dem Tunnel: Es setzt seinen Zustand zurück, wenn der Tunnel stoppt, fragt beim Wiederverbinden neu ab und bietet die Konsolenadresse nur an, solange die Seite tatsächlich ausgeliefert wird
- Der Konfigurationseditor sperrt die beiden Listener-Schalter, solange
allow-wifi-accessaktiv ist, da die Engine beide Listener selbst öffnet, und stellt die konfigurierten Schnittstellen wieder her, wenn die Option ausgeschaltet wird - Findet „IAP-Kauf wiederherstellen“ nichts, bietet die Meldung „Handbuch öffnen“ an, das die plattformübergreifende Lizenzanleitung in der Sprache der App öffnet; der Kaufhinweis sagt jetzt, dass ein Kauf drei iPhone- oder iPad-Geräte und drei Apple-TV-Geräte abdeckt
- Die Tailnet-Knotenliste sieht jetzt aus wie die anderen Listen — eingerückt gruppiert, mit einer Zeile „Kein Eintrag“ für einen leeren Abschnitt — und fragt den Knotenstatus bei jedem Erscheinen neu ab
- Bei
loglevel = infoschreibt ein Massen-Flow, der mindestens 1 MiB bewegt hat, beim Schließen eine Zeile, die sagt, wie lange er auf die Gegenseite und wie lange auf die App gewartet hat - Die Diagnoseseiten bieten „Kopieren“ nur in Zeilen an, die etwas zu kopieren haben
Fehlerbehebungen:
- MitM im TUN-Modus behoben: Ein von einer MitM-Regel getroffener Host blieb bis zum Timeout hängen, sodass Header-Umschreibung, Body-Umschreibung, Mock-Antwort und entschlüsselte Aufzeichnungen für HTTPS für App-Verkehr nie wirkten (Verkehr über den lokalen HTTP/SOCKS5-Proxy war nicht betroffen)
- Behoben, dass
allow-wifi-accesskeine Wirkung hatte: Die lokalen HTTP- und SOCKS5-Listener blieben auf Loopback, sodass nichts im WLAN sie erreichen konnte; die Option (und sing-boxallow-lanbeim Import) öffnet jetzt beide Listener, und Ausschalten bindet sie neu - Behoben, dass ein Antwort-Header-Rewrite über MitM-HTTP/1.1 als angewendet aufgezeichnet wurde, während der Client den ursprünglichen Header erhielt, und dass eine gegen die vollständige URL geschriebene Regel nie traf
- Behoben, dass die Mock-Antwort ihre Antwort aus dem Anfrage-Header baute — Anfragezeile anstelle der Statuszeile, übernommene Anfrage-Header, falsche Content-Length — und bei Klartext-HTTP den Header des Ursprungsservers davor sendete
- Behoben, dass
no-resolve-IP-Regeln (IP-CIDR, GEOIP, IP-ASN) eine Verbindung zu einem IP-Literal übersprangen, wenn die Protokollerkennung einen Host-Header oder einen Reverse-DNS-Namen dafür geliefert hatte; ein erkanntes IP-Literal trifft auch keine DOMAIN-Regeln mehr, sodass das Urteil nicht mehr davon abhängt, ob die Erkennung aktiv ist - Behoben, dass RULE-SET-Zeilen mit Optionen nach dem Inhalt (
GEOIP,CN,no-resolve,DOMAIN,example.com,force-remote-dns) verworfen wurden oder nichts trafen und dass AND/OR/NOT-Unterregelnno-resolveverloren - Behoben, dass HOSTNAME-TYPE nie traf: Der Eintragstyp ist jetzt A für eine über IPv4 aufgebaute Verbindung und AAAA über IPv6, und der Platzhalter im Regeleditor sagt das
- Behoben, dass eine von einer AND/OR/NOT-Regel mit Domain-Unterregel an einen Proxy geroutete Domain vom DNS-Server trotzdem echt aufgelöst wurde, sodass DNS-Antwort und Routing-Entscheidung auseinanderliefen
- Behoben, dass ein IPv6-Literal in eckigen Klammern in einem erkannten Host-Header (
[2001:db8::1]:8080) als Hostname[2001gelesen wurde - Behoben, dass ein Tunnelstart mit einer Select-Gruppe auf einem anderen als dem ersten Mitglied eine Benachrichtigung „Richtliniengruppe gewechselt“ auslöste und die Neuaufbauten nach dem Start die Flapping-Warnung auslösten; eine Gruppe ohne gemerkte Wahl folgt jetzt dem
default=des Profils, statt auf ihr erstes Mitglied gezwungen zu werden - Behoben, dass das Bedienfeld die App bei 100 % CPU und steigendem Speicher einfror, wenn es nach längerer Tunnellaufzeit geöffnet wurde
- Behoben, dass der HAR-Export falsche Statuscodes und Zeitstempel aus 1970 schrieb und der Export aus den Verbindungsdetails eine Datei erzeugte, die kein HAR-Leser öffnen konnte
- Behoben, dass
[Replica] hide-crashlytics-requestgeparst, aber nie auf Aufzeichnungen angewendet wurde - Behoben, dass
external-http-controller = *:9090und:::9090— beides dokumentierte Schreibweisen — abgelehnt wurden und der Controller stillschweigend nicht startete - Behoben, dass
$klne.startURLTest()nie einen Latenztest auslöste und ein URL-Test auf eine nicht vorhandene Richtlinie einen plausiblen Fehlschlag statt eines Fehlers meldete - Gelegentlichen Absturz des XHTTP-Transports unter Last behoben
- Behoben, dass neu serialisierte HTTP/1.1-Antworten mit leerem Reason-Phrase ausgingen
- Behoben, dass der Lizenzbildschirm eine für tvOS oder Android ausgestellte Lizenz als „Unbekannt“ und ein Zertifikat, das diese App nicht halten kann, als iOS-&-macOS-&-tvOS-Bundle bezeichnete
- Toten App-Store-Link im Info-Bildschirm behoben; „Bewerten“ öffnet jetzt das Bewertungsblatt
- Verschiedene Stabilitäts- und Leistungsverbesserungen
Version 1.1.9 (322)
Neue Funktionen:
- XHTTP-Transport im Richtlinien-Editor hinzugefügt — Aktivierungsschalter, Modus (auto, packet-up, stream-up, stream-one), Pfad und Host — für Trojan, VMess und VLESS
- Shadowsocks-Verschlüsselungsverfahren AEGIS-128L und AEGIS-256 hinzugefügt
- ECH-Einstellungen (Encrypted Client Hello) für TLS-Richtlinien hinzugefügt — Aktivierungsschalter, festgeschriebene ECH-Konfiguration (
ech-config) und Decknamen-Überschreibung (ech-public-name) - Client-Fingerprint (uTLS) pro Richtlinie sowie einen Standardwert für das gesamte Profil hinzugefügt
- AmneziaWG-Protokoll, eine WireGuard-Variante mit Verschleierung des Datenverkehrs, samt Parameter-Editor hinzugefügt
- Import von Clash- und sing-box-Profilen aus Abonnement-URLs, Dateien und Wi-Fi-Uploads hinzugefügt
- Seite mit kopierbarem Konfigurationsfehlerbericht als Ersatz für die blockierenden Warnungen hinzugefügt
- Post-quantensicheren Hybrid-Schlüsselaustausch X25519MLKEM768 für TLS 1.3 hinzugefügt
Verbesserungen:
- Beim Speichern bewahrt der Richtlinien-Editor jetzt vorhandene Optionen, die in der aktuellen Oberfläche nicht bearbeitet werden können (ECH, ALPN, Zertifikat-Pinning,
test-url,udp-relay)
Fehlerbehebungen:
- Tunnel-Absturz durch fehlerhafte
IP-CIDR-Regeln behoben - Problem behoben, bei dem die SSH-Einstellung
idle-timeoutunter einem falschen Schlüssel geschrieben und beim Speichern verworfen wurde - Onboarding-Regeln behoben, die den Richtliniennamen nach
no-resolvesetzten und IP-basierte Regeln beeinträchtigen konnten - Verschiedene Stabilitäts- und Leistungsverbesserungen
Version 1.1.8 (300)
Neue Funktionen:
- Tailscale als integrierten Proxy-Typ hinzugefügt: Konfigurieren Sie ein Tailscale-Konto direkt in Chute, treten Sie einem tailnet bei und leiten Sie Datenverkehr über Tailscale-Knoten — ohne separaten Client
- Tailscale-Abschnittseditor hinzugefügt: Auth-Key sicher eingeben, Verbindung verifizieren, tailnet-Knoten auflisten und Exit-Knoten aus der App heraus wechseln
- Tailscale-Kontrollfeld hinzugefügt: zeigt Echtzeit-Knotenstatus (online/offline, IP, zuletzt gesehen) und ermöglicht das sofortige Wechseln des Exit-Knotens
- Systembenachrichtigungen für Proxy-Diagnose hinzugefügt, einschließlich Egress-IP-Änderungen und Tailscale-Verbindungsereignissen, mit pro Typ umschaltbaren Optionen in den Einstellungen
- MASQUE-Proxy-Typ zum Richtlinien-Editor hinzugefügt
Verbesserungen:
- TUN-Durchsatz auf iOS verbessert
- Verbindungsstabilität und Durchsatz von Tailscale und WireGuard verbessert
- Stabilität des UDP-Tunnels und Genauigkeit der Verkehrstatistiken verbessert
- Stabilität beim Beenden des VPN verbessert; Fälle, in denen das System die Verbindung abnorm beendet, reduziert
- Zuverlässigkeit des Sprachwechsels verbessert
- Konfigurationsdateinamen bereinigt, um Ladefehler durch ungültige Pfadzeichen zu verhindern
Fehlerbehebungen:
- Problem behoben, bei dem On-Demand-Regeln zwischen VPN-Start und -Stopp inkonsistent wurden
- Seltenen Absturz durch gleichzeitigen Sprachwechsel behoben
- Behandlung von Netzwechseln korrigiert, um unnötige VPN-Wiederverbindungen zu vermeiden
- Verschiedene Stabilitäts- und Leistungsverbesserungen
Version 1.1.7 (290)
Neue Funktionen:
- JavaScript-Scripting-System hinzugefügt: Führen Sie benutzerdefinierte Skripte für Anfrage-/Antwortmodifikation, DNS-Auflösung, benutzerdefinierte Regelabgleiche und geplante Aufgaben aus
- Body-Umschreibung hinzugefügt: Suchen und Ersetzen von HTTP-Anfrage-/Antwort-Body-Inhalten mit Regex (mit Capture-Group-Unterstützung) oder JSONPath-Ausdrücken
- ShadowTLS-Protokollunterstützung hinzugefügt
- gRPC-Transport für VMess- und VLESS-Protokolle hinzugefügt
- DNS-over-QUIC (DoQ) und DNS-over-HTTP/3 (DoH3) Unterstützung hinzugefügt
- DNS-over-TLS (DoT) Unterstützung hinzugefügt
- HTTP Control API und Web UI zur Überwachung und Steuerung der Proxy-Laufzeit hinzugefügt
- Modulsystem (.sgmodule) für modulare Konfigurationsverwaltung hinzugefügt
- Proxy-Provider für dynamische Proxy-Listenaktualisierungen hinzugefügt
- Benachrichtigungsberichte hinzugefügt: erkennt Verbindungsfehler, Proxy-Nichtverfügbarkeit, Verkehrsspitzen, Konfigurationsaktualisierungsfehler und Richtliniengruppenwechsel; sendet Ereignisse für Systembenachrichtigungen
- Mock-Antwort hinzugefügt: Gibt Mock-Daten für übereinstimmende Anfragen zurück, ohne den echten Server zu erreichen
- LoadBalance-Richtliniengruppe mit Round-Robin-, Consistent-Hashing- und Sticky-Sessions-Strategien hinzugefügt
- Neue URL-Umschreibungsmodi hinzugefügt: reject-200, reject-img, reject-dict
- Header-Umschreibung mit Antwortrichtungsunterstützung hinzugefügt
- PROTOCOL-Regeltyp mit 10 Protokolltypwerten hinzugefügt
- SCRIPT-Regeltyp für JavaScript-basierten benutzerdefinierten Abgleich hinzugefügt
- extended-matching- und requires-resolve-Optionen für Regeln hinzugefügt
- AnyTLS-Mehrschicht-Padding-Schema hinzugefügt
- SS2022-Verschlüsselungsmethoden hinzugefügt (2022-blake3-aes-128/256-gcm, chacha20-poly1305)
- Unterstützung für verwaltete Konfiguration hinzugefügt
- Replikat-Unterstützung für Konfigurationsreplikation hinzugefügt
- WireGuard-Konfigurations-UI hinzugefügt
- Globale Option interrupt-exist-connections hinzugefügt
Verbesserungen:
- Richtliniengruppen unterstützen jetzt expected-status, hidden, idle-timeout und lazy-Optionen
- Erweiterte URL-Umschreibung mit Vorlagenvariablen-Unterstützung im Map-Local-Format
- Verbesserter DNS-Server mit DoQ-, DoH3- und DoT-Protokollunterstützung
- Erweitertes Regelsystem von 6 auf über 30 Regeltypen mit vollständiger Abdeckung
Fehlerbehebungen:
- IPv6-Standardwert behoben (false → true)
- Standardwert der Protokollebene behoben (notify → warning), none- und fatal-Ebenen hinzugefügt
- Shadowsocks/ShadowsocksR-Benennungskonsistenz in der gesamten Dokumentation behoben
- Verschiedene Stabilitäts- und Leistungsverbesserungen
Version 1.1.6 (256)
Neue Funktionen:
- Hysteria2-Protokollunterstützung hinzugefügt
- WireGuard-Protokollunterstützung hinzugefügt
- VLESS REALITY-Protokollunterstützung hinzugefügt
- Protokoll-Sniffer für TUN-Verkehr hinzugefügt
- IP-ASN-Regelunterstützung hinzugefügt
- AND/OR/NOT-Unterstützung für logische Regeln hinzugefügt
Fehlerbehebungen:
- Speicherprobleme des UDP-Adapters behoben
- Leistung für Rule-Set- und Domain-Set-Abgleich optimiert
- Weitere kleinere Fehler und Stabilitätsprobleme behoben
- Absturz der Lizenzansicht behoben
Version 1.1.5 (245)
Neue Funktionen:
- TUIC-Protokollunterstützung hinzugefügt
- Shadowsocks 2022 (SS2022) Unterstützung hinzugefügt
- Tunnelkonfiguration eingeführt
- Verbesserte Protokollanzeige in der Sitzung
Fehlerbehebungen:
- Problem mit UDP-Adapter behoben
- Leistung für Rule-Set- und Domain-Set-Abgleich optimiert
- Weitere kleinere Fehler und Stabilitätsprobleme behoben
Version 1.1.2 (231)
Neue Funktionen:
- iOS 26 UI
Fehlerbehebungen:
- DNS-IPv6-Antwort für Gemini App behoben
- RULE-SET mit Kommentarinhaltsunterstützung
- Status der Widget-Center-Umschalttaste behoben
Version 1.1.1 (218)
Neue Funktionen:
- AnyTLS-Richtlinienunterstützung
- Domain-Set-Unterstützung
- Remote-Rule-Set-Unterstützung
Verbesserungen:
- Tunnel-Neuaufbau für bessere Leistung
- Vollständig getesteter UDP-Tunnel
Fehlerbehebungen:
- Speicherlecks behoben
Version 1.1.0 (210)
Fehlerbehebungen:
- Einige Fehler behoben
Version 1.0.9 (199)
Neue Funktionen:
- iOS 18 Kontrollzentrum-Umschalttaste
Fehlerbehebungen:
- TUN mit IPv6 leitet jetzt zum IPv6-Tunnel um, um einige Dienstprobleme zu beheben
Version 1.0.8 (188)
Neue Funktionen:
- SSH-Richtlinienunterstützung hinzugefügt
- Remote-Dashboard-Verbindung hinzugefügt
Verbesserungen:
- TUN-Netzwerk auf 198.18.0.0/15 geändert, um IPv4-Problem mit internen Adressen zu vermeiden
- Einige Texte aktualisiert
Fehlerbehebungen:
- DNS-Probleme behoben
Version 1.0.7 (167)
Neue Funktionen:
- PIP-Modus
- iCloud-Synchronisation für Konfigurationsdateien
- Remote-Konfigurationsmanager für tvOS hinzugefügt
Fehlerbehebungen:
- Vmess mit Websocket behoben
Version 1.0.6 (160)
Neue Funktionen
- Neue UI
- Hochladen der Konfiguration über Wi-Fi hinzugefügt
- Netzwerkdiagnose & Proxy-Diagnose hinzugefügt
- Funktion zum Zurücksetzen der VPN-Konfiguration hinzugefügt
- ICMP(Ping)-Paketunterstützung hinzugefügt
- VPN-Statusprüfung hinzugefügt
Verbesserungen:
- UI/UX der Konfigurationsbearbeitung verbessert
- MTU auf 4000 aktualisiert
Fehlerbehebungen
- Fehlerbehebung
- IPv6-TUN-Einstellung behoben
Version 1.0.5 (147)
Neue Funktionen
- VLESS-Protokollunterstützung hinzugefügt
- XTLS-Unterstützung mit VLESS hinzugefügt
- Sitzungsbetrachter hinzugefügt, um Proxy-Sitzungen und Protokolle zu überprüfen
- Sie können Ihre UDP-Verbindung mit der Chute Dashboard macOS-Anwendung überprüfen
Verbesserungen:
- Konfigurationsbearbeitung verbessert
- Lokalen DNS-Server verbessert, um DNS-Verschmutzung zu vermeiden
- UDP-Relay verbessert
Fehlerbehebungen
- IPv6-Anzeige behoben
- DNS-Server behoben
Version 1.0.4 (143)
Neue Funktionen
- Unterstützung für lokalen HTTP/Socks5-Proxyserver
- Vollständige IPv6-Unterstützung
syslib-Unterstützung für DNS-Server hinzugefügt
Verbesserungen:
- Konfigurationsbearbeitung verbessert
- Optimistic DNS-Schalter hinzugefügt
- Lokalen DNS-Server verbessert
Fehlerbehebungen
- Behoben, dass die Adresse des lokalen iOS-Proxyservers den Netzzugriff der Anwendung unterbrechen konnte
- DNS-Server behoben
Version 1.0.3 (138)
Neue Funktionen
- Fake-IP, um DNS-Cache-Vergiftung zu vermeiden
- Konfigurationsdatei aus dem Internet oder per QR-Code herunterladen
Fehlerbehebungen
- Problem mit der Bearbeitung der FINAL-Regel behoben
Version 1.0.2 (130)
Neue Funktionen
- iPad-Unterstützung
- Unterstützung für
chute://-Schema &x-callback-url - Dashboard-Aktion
- iPhone 12 Unterstützung
- DNS-Server für bessere Leistung & Stabilität neu aufgebaut
Fehlerbehebungen
- TCP-Stabilität verbessert
- TCP-Sperre für bessere Leistung neu aufgebaut
- UDP-Stabilität verbessert
- Absturz bei der Konfiguration behoben
Version 1.0.1 (111)
- Fehler bei WeChat Share Extension behoben
- IPv6-Unterstützung behoben
- HTTP-Vollständigkeitsprüfung aktualisiert
Version 1.0.0 (101)
- Erstveröffentlichung
Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.