Versionshinweise zu Chute tvOS

Version 1.5.1 (90)

Neue Funktionen:

  • Proxy-Verkettung in den Editoren hinzugefügt: Eine Richtlinie bietet jetzt für jeden Proxy-Typ einen underlying-proxy an, sodass ihre Verbindung über die genannte Richtlinie aufgebaut wird — Stream-Protokolle laufen über den Stream des Upstreams, Hysteria2, TUIC, MASQUE und XHTTP über HTTP/3 über dessen UDP-Relais, WireGuard- und AmneziaWG-Tunnel laufen über ihn, und SSH- und AnyTLS-Sitzungen öffnen über ihn —, während eine Kette, die eine Schleife bildet, tiefer als 16 Ebenen läuft oder eine nicht vorhandene Richtlinie nennt, beim Laden abgelehnt wird, statt direkt nach draußen zu wählen. Jeder Proxy-Typ außer Tailscale lässt sich verketten, und TUIC-, Hysteria2-, WireGuard-, AmneziaWG- und ShadowTLS-Richtlinien werden ansonsten genau so zurückgeschrieben, wie sie gelesen wurden
  • Den Upstream auf Gruppenebene hinzugefügt: Ein Gruppen-Editor schreibt underlying-proxy= einmal — in Anführungszeichen gesetzt, wenn der Name ein Komma oder ein Leerzeichen trägt —, sodass jedes Mitglied dieser Gruppe seinen Server über die eine dort genannte Richtlinie erreicht
  • Die Zeile „Front-Proxy“ unter Erweitert hinzugefügt: Sie schreibt global-underlying-proxy, gewählt aus „Keine“ sowie den Richtlinien und Gruppen des Profils, und erfasst jeden Knoten, der keinen eigenen Upstream festlegt; close-if-proxy-chain-missing hat keine Zeile und bleibt genau so erhalten, wie es geschrieben wurde
  • „Download über“ in den Editoren für Regel- und Proxy-Provider hinzugefügt: policy= lädt die Liste über die gewählte Richtlinie, und „Keine“ lädt sie direkt herunter; der Proxy-Provider-Editor behält außerdem den underlying-proxy des Providers bei
  • UDP über TCP im Shadowsocks-Editor hinzugefügt: ein Schalter udp-over-tcp und, solange er aktiv ist, eine Auswahl „UoT-Version“ (1 oder 2; ist keine Version angegeben, gilt 2), sodass das UDP dieses Proxys innerhalb seiner TCP-Verbindungen läuft und auch über einen Upstream, der kein UDP überträgt, weiter funktioniert. Der Server muss UoT unterstützen; mihomo verwendet Version 1. Eine Version, die die Auswahl nicht anzeigen kann, bleibt wie geschrieben erhalten, bis Sie eine andere wählen
  • Zeile „Proxy-Kette“ in den Verbindungsdetails hinzugefügt: Eine Verbindung, die über eine Kette lief, nennt jeden Hop — Airport/HK-01 → Landing — neben der Richtlinie, die sie geroutet hat; die Anfragedetails und die UDP-Liste der Web-Konsole zeigen denselben Pfad, und der HAR-Export enthält ihn
  • 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. „Relay“ steht in der Auswahl des Gruppentyps; eine Relay-Gruppe zeigt „Name“, „Gruppentyp“ und „Ausgeblendet“, behält ihre Mitglieder in dieser Reihenfolge, und ihre Parameter bleiben beim Speichern erhalten; weniger als zwei Mitglieder ohne dynamische Quelle werden mit einer eigenen Meldung abgelehnt
  • 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
  • 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
  • Fehlergrund für nicht geladene Regelsätze hinzugefügt: Konnte der Regelsatz eines Providers nicht geladen werden — weil ein Download nie gelang oder die Nutzlast die Größengrenze überschritt —, steht der Grund in Rot in dessen Zeile; bisher sah ein solcher Provider genauso aus wie ein funktionierender, während jede Regel, die ihn nannte, ins Leere lief
  • Die Editoren verwerfen nicht mehr, was sie nicht anzeigen können: Regeln behalten die Optionen, für die sie keine Zeile haben (notification-text, no-resolve, update-interval usw.), schreiben den Vorabgleich nach der Richtlinie und nur für REJECT, laden das KEY:value einer SUBNET-Regel, unterscheiden in RULE-SET zwischen SYSTEM, LAN, Provider und URL und können AND-/OR-/NOT-Unterregeln erzeugen, die sich parsen lassen; Gruppen laden ihre deklarierten Mitglieder, blenden den Provider aus, den ein policy-path erzeugt, und behalten Filter, include-*, default=, interrupt-exist-connections und unbekannte Parameter in ihrer ursprünglichen Reihenfolge; Hosts behalten die ganze Serverliste mit #proxy und dem Kommentar, zeigen DoH-/DoT-/DoQ-/DoH3-Werte und erhalten den Typ „Skript“; Map Local behält binäre Bodies, Datentyp und Statuscode sowie einen Header im Surge-Stil, dessen Wert einen Doppelpunkt enthält; Module behalten ihr #!system_version und Zeilen für andere Plattformen
  • Zeilen für Einstellungen hinzugefügt, die die Editoren bisher nicht anzeigen konnten: DoT / DoQ / DoH3, eigene DNS für Direkt, Proxy-Server und Fallback, SVCB, verschlüsseltes DNS, das den Regeln folgt und die Zertifikatsprüfung überspringen kann, UDP ohne Relay, proxy-test-url / internet-test-url / test-timeout, MitM-HTTP/2 und QUIC-Blockierung mit ausgenommenen Hostnamen, der Filtermodus von Replica, die REJECT-Varianten und das eingebaute PROXY in den Richtlinienauswahlen, dns-failed bei FINAL sowie IPv6-Literale als Richtlinien-Hosts; die Header-Umschreibung erhält „Header ersetzen (Regex)“, die URL-Umschreibung „Ablehnen (Array)“ und „Ablehnen (Mini-GIF)“, Skripte erhalten den generischen Typ und einen Ereignisnamen, und Portbereiche, HOSTNAME-TYPE, PROTOCOL und die Provider-Formate bekommen Platzhalter, die zeigen, was sie akzeptieren
  • tun-included-routes hinzugefügt: Die aufgeführten CIDRs kommen nach der Standardroute zu den Routen des Tunnels hinzu, sodass ein Bereich, den sonst das eigene Subnetz der Netzwerkschnittstelle ü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 mit protokolliertem Grund abgelehnt, private Bereiche werden mit einer Warnung akzeptiert, und eine geänderte Liste greift bei einem Neuladen im laufenden Betrieb, ohne dass der Tunnel neu gestartet wird
  • jq in der Body-Umschreibung hinzugefügt: http-request-jq und http-response-jq, in die Konfigurationsdatei geschrieben, wenden ein echtes jq-Programm auf einen JSON-Body an (der Editor für die Body-Umschreibung auf dem Apple TV bietet sie nicht an); 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=generic hat keinen automatischen Auslöser und läuft nur auf Abruf, über GET /api/scripts und POST /api/scripts/run
  • Eigene DNS-Pools hinzugefügt: direct-dns-server löst die Domains auf, die eine Regel an DIRECT sendet, proxy-dns-server löst die eigenen Hostnamen Ihrer Proxy-Server auf, und fallback-dns-server wird gefragt, wenn die Hauptserver keine Antwort geben; jeder fällt auf die globalen Server zurück
  • #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 einfache tcp://-Upstreams werden für Pfade akzeptiert, auf denen DNS über UDP verworfen wird
  • encrypted-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-ipv6 und #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>) und führt für diese Domain ein type=dns-Skript aus (script:<name>)
  • FINAL,<policy>,dns-failed hinzugefü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
  • Eingebettete Regelsätze hinzugefügt: Abschnitte [Ruleset Name] in der Konfigurationsdatei werden als RULE-SET,<name> referenziert, einschließlich Verweisen zwischen ihnen — bis zu acht Ebenen tief, Schleifen werden abgelehnt; die Regel-Provider-Liste zeigt sie an, bearbeitet werden sie aber in der Konfigurationsdatei
  • DEST-PORT-, SRC-PORT- und IN-PORT-Bereiche und -Vergleiche hinzugefügt (80-81, >=50000, /-Listen), HOSTNAME-TYPE-Werte IPv4, IPv6, DOMAIN und SIMPLE sowie 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-reply hinzugefügt, standardmäßig aktiv: Ein Ping im Tunnel wird lokal beantwortet, über IPv4 und IPv6, statt in einen Timeout zu laufen
  • Importumfang erweitert: GEOSITE- und Kategorie-GEOIP-Regeln aus mihomo werden zu funktionierenden Regelsätzen aufgelöst, policy-path-Gruppen erzeugen einen Provider mit update-interval, Filtern und Include-Listen, SUB-RULE aus mihomo wird in AND-Regeln umgesetzt, detour aus sing-box und dialer-proxy aus mihomo werden als Verkettung importiert, allowed-ips von WireGuard wird kompiliert und durchgesetzt, sodass ein Split-Tunnel nicht mehr jedes Ziel verschluckt, und interface= / allow-other-interface= einer Richtlinie bindet deren Verbindungen an eine einzige Netzwerkschnittstelle
  • Skript-API erweitert: $httpAPI ruft die eigenen Routen der Engine auf, ohne einen Socket zu öffnen, $httpClient beachtet eine policy, read-etc-hosts speist die Hosts-Datei in DNS ein, und $event.name meldet das Ereignis, das tatsächlich ausgelöst wurde

Verbesserungen:

  • Jeder Text, den die App anzeigt, liegt jetzt in allen acht Sprachen vor: Acht Beschriftungen, die bisher auf Englisch zurückfielen, darunter die Tailscale-Zeilen, sind übersetzt, und 88 Texte, bei denen der eingebaute Wortlaut der App von ihren Sprachdateien abwich, stimmen jetzt überein
  • Begriffe sind jetzt in allen Chute-Apps einheitlich: Der Schweregrad-Filter des Protokolls und seine sieben Badges verwenden die Stufennamen der Engine, die Load-Balance-Bezeichnungen folgen Chute Mac, und Web-Konsole, Datenverkehrsaufzeichnung, Mock-Antwort, Lokale DNS-Zuordnung und HTTP-Control-API werden innerhalb jeder der acht Sprachen einheitlich benannt
  • Der Import eines veröffentlichten Profils verliert kein Routing mehr: dns-server akzeptiert 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 Apple TV zu große Nutzlast wird abgelehnt, wobei der Grund in der Zeile ihres Providers 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 auf dem Apple TV jeweils gedeckelt
  • Latenztests nutzen das richtige Ziel: test-url und test-timeout einer Gruppe, proxy-test-url des Profils sowie test-url und expected-status eines 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, und Protokollzeiger bleiben monoton, sodass eine Abfrage nie einen Eintrag überspringt
  • ShadowTLS prüft jetzt das Zertifikat der Tarn-Website, wenn sni= angegeben ist, wie es auch sing-box tut; skip-cert-verify=true schaltet die Prüfung ab (die Option wurde bisher ignoriert, und es wurde überhaupt kein Zertifikat geprüft), und ohne sni= entfällt die Prüfung mit einer Warnung

Fehlerbehebungen:

  • Behoben, dass die Konfigurationsliste nach einem App-Update verschwand: Konfigurationen liegen im Caches-Ordner der App — dem einzigen Ort, an dem tvOS eine App schreiben lässt, und einem, den das System leert, sobald es den Platz zurückhaben will —, sodass nach einem Upgrade eine leere Liste zurückbleiben konnte, ohne dass auf dem Bildschirm stand, warum. Ab dieser Version wird jede Konfiguration zusätzlich im Einstellungsspeicher der App abgelegt, den das System nicht leert (ihr Text, solange er höchstens 256 KB groß ist, ihre Abonnementadresse und ihr Aktualisierungsintervall immer); fehlende Dateien werden beim Start und bei der Rückkehr der App in den Vordergrund zurückgeschrieben, Konfigurationen, von denen nur die Adresse erhalten blieb, werden erneut heruntergeladen, und der Hauptbildschirm meldet „N Konfiguration(en) wiederhergestellt.“ Eine Konfiguration, die Sie löschen, wird vergessen und kehrt daher nicht zurück. Nicht zurückholen lassen sich Konfigurationen, die verloren gingen, bevor diese Version zum ersten Mal lief, oder eine Konfiguration über 256 KB, die von keiner Adresse stammt; und wird der Tunnel im Kontrollzentrum gestartet, bevor die App je geöffnet wurde, wird nichts wiederhergestellt
  • Fehler in den SSID-Einstellungen auf dem Apple TV behoben: Das Öffnen von „SSID-SUSPENDIERUNG“ löste bei jedem Eintrag ohne SSID (TYPE:, BSSID: oder ROUTER:) einen Fehler aus, die Liste schrieb [SSID Setting] bei jedem Aufruf um, und die SSID- und Subnetz-Editoren ließen Mitglieder fallen, für die sie keine Zeile hatten. Die Liste zeigt jetzt nur die einfachen "<name>" suspend=true-Einträge und lässt alles andere an seinem Platz, der ssid-Gruppen-Editor behält seine Mitglieder in Deklarationsreihenfolge und bietet die Auswahl „Abgleich nach“, und beim Speichern eines dieser Einträge weist ein Hinweis darauf hin, dass die Einstellungen auf dem Apple TV nicht verfügbar sind und für die Verwendung unter iOS und macOS gespeichert werden
  • Behoben, dass Editoren Einträge beschädigten, die sie nicht vollständig anzeigen konnten: Ein [Host]-Eintrag mit mehreren Adressen wurde schon beim Öffnen auf die erste gekürzt, ein [Script]-Wert mit einem Komma (ein Cron-Ausdruck 0 8,20 * * *, ein JSON-Argument) wurde bei jedem Speichern abgeschnitten, eine [Body Rewrite]-Zeile verlor ihre zusätzlichen Regex-Paare, eine Regel-, Gruppen-, Host-, Map-Local- oder Header-Umschreibungszeile verlor die Optionen, für die sie keine Zeile hatte, und „Erweitert“ entfernte bei jedem Aufruf die Leerzeichen in seinen Listeneinträgen. Ein Profil, das gespeichert wurde, ohne den Eintrag zu öffnen, war nie betroffen, weshalb das unbemerkt blieb
  • Behoben, dass Downloads durcheinandergerieten: Jeder Download landet jetzt in einer eigenen temporären Datei, die gelöscht wird, sobald sie gelesen wurde, und ebenso, wenn Download oder Lesen fehlschlagen, sodass eine verwaltete Aktualisierung nicht mehr endlos ihren ersten Download liest und zwei Adressen mit demselben vorgeschlagenen Namen sich nicht mehr gegenseitig überschreiben — und ein vom Server vorgeschlagener Dateiname kann nicht mehr bestimmen, wohin die Datei geschrieben wird
  • Behoben, dass das Format vom Dateinamen entschieden wurde: „Von URL herunterladen“ und die Aktualisierung der verwalteten Konfiguration beurteilen jetzt anhand des Bodys, was eine Adresse ausliefert, sodass eine .conf-Adresse, die Clash ausliefert, beim Hinzufügen konvertiert wird und eine Aktualisierung, die eine solche findet, die Datei so lässt, wie sie ist; die Konvertierung geschieht, bevor ein MANAGED-CONFIG-Header hinzugefügt wird, eine fehlgeschlagene Konvertierung zeigt ihren ersten Fehler, und ihre Hinweise werden auf dem Bildschirm gezählt und ins Protokoll geschrieben
  • Fehler bei Upload und Download der Wi-Fi-Seite behoben: /up konvertiert Clash und sing-box wie /upload, beide speichern <name>.conf, ein Name, der bereits von einer anderen Konfiguration belegt ist, wird abgelehnt, /download erzeugt kein .conf.conf mehr und sendet jetzt ein kodiertes filename*, und /delete vergleicht Namen in NFC, zuerst auf exakte Übereinstimmung — so kann die verwendete Konfiguration über denselben Namen in einer anderen Unicode-Form weder gelöscht werden noch an der Prüfung auf Verwendung vorbeikommen
  • Behoben, dass das Speichern über eine gleichnamige Konfiguration stillschweigend geschah: Der Editor und „Von URL herunterladen“ fragen jetzt zuerst, und das Überschreiben der Konfiguration, die der Tunnel gerade ausführt, lädt ihn neu
  • Behoben, dass ausgeblendete Richtliniengruppen in den Gruppen- und Global-Listen des Tunnels erschienen; eine ausgeblendete Gruppe, die in Verwendung ist, bleibt, und ein Global, das auf eine Select-Gruppe zeigt, wird aufgelistet, angehakt und über den Namen wiederhergestellt
  • Behoben wurde die QR-Übergabe der Wi-Fi-Upload-Seite: Die chute://tv?url=-Übergabe steht wieder inline in der Seite, sodass ein Scan die Chute-iOS-App öffnet, wie die Seite es verspricht; auch ein iPad übergibt jetzt, weil iPadOS sich als Desktop-Browser ausgibt, was die reine Telefon-Prüfung übersah; und ein Browser, der ein eigenes URL-Schema nicht ohne Tippen öffnet, erhält jetzt eine Schaltfläche „In Chute öffnen“, lokalisiert in den neun Sprachen der Seite
  • Mehrere Abstürze behoben: unter Einstellungen › Sitzungen, im Konfigurationseditor bei einem Profil mit loglevel = none, bei einer Sitzung, die der Tunnel halb geschrieben hinterlassen hatte (und die sich danach nie mehr öffnen ließ), bei jedem Start nach einer unerwarteten Antwort des Lizenzservers, beim Start und unter „Lizenz anzeigen“, wenn sich eine Lizenz nicht lesen ließ, sowie bei jedem Aufruf der Konfigurationsliste, wenn im geteilten Ordner eine verirrte Systemdatei lag. Das Leeren eines Feldes in den Einstellungen leert es jetzt wirklich
  • Behoben, dass eine fällige Abonnement-Aktualisierung die Konfigurationsliste und das Speichern von Änderungen bis zu 30 Sekunden lang aufhielt; die Aktualisierung läuft jetzt weiter, sobald ihr Download abgeschlossen ist, ohne etwas aufzuhalten
  • Abstürze behoben, die entstanden, wenn zwei Threads gleichzeitig dieselben Daten änderten — beim Kaltstart, beim Lesen des Sitzungsprotokolls und beim Aktualisieren der Sitzungsliste
  • 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,TCP und PROTOCOL,UDP nie trafen: Jede eingehende Verbindung bestimmt jetzt ihr Transportprotokoll, sodass der übliche Weg, QUIC mit einer AND-Regel zu blockieren, funktioniert
  • Behoben, dass RULE-SET und DOMAIN-SET innerhalb von AND / OR / NOT immer als falsch ausgewertet wurden — wodurch NOT,((RULE-SET,…)) auch inländischen Verkehr ablehnte — und dass SCRIPT innerhalb einer logischen Regel immer als wahr ausgewertet wurde
  • Behoben, dass RULE-SET,<name>,<policy>,no-resolve no-resolve verlor, wenn es über den Namen geschrieben wurde, dass UNKNOWN bei GEOIP und IP-ASN nie traf, dass status-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-quic nur einen der Surge-Werte akzeptierte, während jeder andere Wert bedeutete, dass QUIC gar nicht blockiert wurde
  • Skript-API behoben: $klne.getPolicyGroups() und selectPolicy() 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 mit requires-body erhält endlich den Body
  • Behoben, dass [Replica] keyword-filter den ganzen Hostnamen verglich, statt zu prüfen, ob er das Schlüsselwort enthält, sodass keyword-filter = google nicht www.google.com erfasste
  • Behoben, dass PROCESS-PATH- und PROCESS-NAME-REGEX-Regeln auf dem Apple TV mit einem Namen verglichen wurden, der kein Prozess ist; wie PROCESS-NAME funktionieren sie nur unter macOS und treffen hier nie
  • Verschiedene Stabilitäts- und Leistungsverbesserungen

Version 1.4 (75)

Neue Funktionen:

  • Zeile „Adresse der Web-Konsole“ im Bedienfeld hinzugefügt: Sie erscheint, sobald der Listener der Konsole tatsächlich läuft, und beim Öffnen zeigt sie einen QR-Code, dessen URL das Zugriffstoken trägt — ein Scan mit dem Telefon meldet an, ohne dass Adresse und 32 Hexadezimalzeichen mit der Fernbedienung abgetippt werden müssen
  • „Offline-Diagnosepaket“ unter Einstellungen hinzugefügt, das die App ohne laufenden Tunnel erstellt: Geräte- und App-Angaben, das VPN-Profil, wie tvOS es hält, eine Zusammenfassung der gewählten Konfiguration samt Parserfehlern, ein Netzwerkabschnitt (Erreichbarkeit, Verbindungsart, DNS-Server, lokale Adressen und Schnittstellen), der bereinigte Anfang der Konfiguration, wie der vorherige Lauf endete, die Protokoll-Shards der neuesten Sitzung und wartende Absturzberichte. Da tvOS keine Teilen-Ansicht hat, liefert ein einmaliger lokaler HTTP-Server das Archiv unter einem nicht erratbaren Pfad aus und zeigt es als QR-Code; der Link erlischt, sobald die Ansicht geschlossen wird
  • Schweregrad-Filter im Sitzungsprotokoll hinzugefügt — Alle, Notify+, Warning+, Fatal — sodass „zeig mir die Warnungen“ ein Klick ist statt einer über die Bildschirmtastatur getippten Suche; Zeilen, die der Parser nicht einordnen kann, werden nie ausgeblendet
  • Rewrite-Zuordnung in den Sitzungsdetails hinzugefügt: Ein Abschnitt „REWRITES“ nennt 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
  • Zeile „WLAN-Zugriff erlauben“ im Konfigurationseditor hinzugefügt — der Schlüssel, den ein Import von Surges http-listen = 0.0.0.0:… oder sing-box allow-lan erzeugt und den der Editor bislang gar nicht darstellen konnte; solange sie aktiv ist, zeigen die beiden Listener-Zeilen „An“ und sind gesperrt, weil die Engine beide Listener selbst öffnet
  • Französisch als eingebaute Sprache hinzugefügt und alle acht eingebauten Sprachen im App Store deklariert
  • Der Web-Konsole hinzugefügt: die Reiter „Aktuell“ und „Verlauf“, eine Detailansicht (getroffene Regel, Regelquelle, Richtlinie, Adapter, DNS-Quelle, 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 — und weil der Fernseher selbst keinen Ort für eine Datei hat, lädt man dort auch das Laufzeit-Diagnosepaket und den HAR-Export herunter
  • 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/rewrites und /api/mitm/hosts, POST /api/rules/match für einen Probelauf einer Anfrage gegen die Regeltabelle (beide DNS-Durchläufe werden gemeldet), GET|PUT /api/loglevel zum Ändern von Protokollstufe und Subsystem-Abschnitten ohne Neuladen sowie POST /api/config/validate zum Prüfen eines Profils, ohne es anzuwenden

Verbesserungen:

  • Die HTTP-Steuerungs-API ist nicht mehr offen, wenn die Konfiguration kein external-http-secret nennt: Die Engine erzeugt ein Token, das der QR-Code der Adresse der Web-Konsole trägt; external-http-secret = none behä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, 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); die Protokollansicht nimmt die neuesten Shards bis zum Umfang eines Shards, statt einen ganzen Lauf in den Speicher zu lesen, sagt, wenn ältere Shards ausgelassen wurden, und folgt dem gerade geschriebenen Shard über eine Rotation hinweg
  • 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/status und 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 _kl die gewählte Richtlinie, die getroffene Regel und die Rewrite-Treffer
  • Nur die drei Funktionen, die die Kaufseite verkauft, brauchen eine Lizenz — Mehrere Konfigurationen, Lokale Proxy-Server-Steuerung und Datenverkehrs-Aufzeichner; die Schalter für HTTP API und Web-Konsole, Protokollerkennung, Optimus DNS, „DNS-Cache leeren“ und die Zeile „Adresse der Web-Konsole“ verlangen keine mehr, und einem Nutzer ohne Lizenz mit gestopptem Tunnel wird gesagt, dass er ihn starten soll, statt ihm eine Kaufseite zu zeigen
  • Ist die Konsole an eine Loopback-Adresse gebunden, sagt sie jetzt, dass sie sich nur auf diesem Apple TV öffnen lässt und was stattdessen zu setzen ist, statt einen QR-Code anzubieten, der ins Leere führt; das Zugriffstoken steht nicht mehr auf einem Bildschirm, den der ganze Raum lesen kann
  • Der Kaufhinweis sagt jetzt, dass ein Kauf drei Apple-TV-Geräte und drei iPhone- oder iPad-Geräte abdeckt; findet „IAP-Kauf wiederherstellen“ nichts, bietet die Meldung „Handbuch öffnen“ an und zeigt einen QR-Code zur plattformübergreifenden Lizenzanleitung in der Sprache der App
  • Bei loglevel = info schreibt 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

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-access keine Wirkung hatte: Die lokalen HTTP- und SOCKS5-Listener blieben auf Loopback, sodass nichts im WLAN sie erreichen konnte; die Option (und sing-box allow-lan beim Import) öffnet jetzt beide Listener, und Ausschalten bindet sie neu
  • Behoben, dass das Umlegen eines beliebigen Schalters im zweiten Abschnitt des Bedienfelds die App zum Absturz brachte, sobald die Zeile „Adresse der Web-Konsole“ erscheinen konnte, weil sich die Zeilenzahl der Tabelle unter einem zeilenweisen Neuladen änderte
  • Behoben, dass die Sitzungsansicht nur einen beliebigen Ausschnitt eines Laufs zeigte und eine Sitzung nach der achten Rotation ihr Datum verlor, seit die Engine ihr Protokoll bei fester Größe rotiert; Shards werden jetzt nach Index geordnet, und die Live-Ansicht friert an einer Rotation nicht mehr ein
  • Behoben, dass die Protokollansicht alle Shards einer Sitzung auf einmal in den Speicher las — bis zu 64 MB Text auf einem Apple TV — und dass der Schweregrad-Filter die Folgezeilen eines mehrzeiligen Eintrags durchließ, obwohl er den Eintrag selbst ausblendete
  • 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
  • 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-Unterregeln no-resolve verloren
  • Behoben, dass HOSTNAME-TYPE nie traf: Der Eintragstyp ist jetzt A für eine über IPv4 aufgebaute Verbindung und AAAA über IPv6. Der Platzhalter im Regeleditor zeigte dafür http | https, was zu PROTOCOL gehört, und für IN-TYPE TCP | UDP; beide nennen jetzt, was die Regel wirklich annimmt
  • Behoben, dass ein IPv6-Literal in eckigen Klammern in einem erkannten Host-Header ([2001:db8::1]:8080) als Hostname [2001 gelesen 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 external-http-controller = *:9090 und :::9090 — beides dokumentierte Schreibweisen — abgelehnt wurden und der Controller stillschweigend nicht startete
  • Gelegentlichen Absturz des XHTTP-Transports unter Last behoben
  • Behoben, dass der Lizenzbildschirm das Zertifikat eines anderen Produkts als Chute-Bundle bezeichnete; was diese App nicht rechtmäßig halten kann, heißt jetzt „Unbekannt“, und die Android-Bezeichnung kam hinzu
  • Behoben, dass der QR-Code „Chute iOS“ im Info-Bildschirm auf eine tote App-Store-ID zeigte und „Bewerten“ die iOS-Seite statt der dieser App öffnete
  • Layout der Wi-Fi-Upload-Seite korrigiert
  • Die chinesischen und thailändischen Namen der Rewrite-Familien korrigiert, sodass sie zum Handbuch und zu den Abschnittsnamen der Konfigurationsdatei passen
  • Verschiedene Stabilitäts- und Leistungsverbesserungen

Version 1.3 (62)

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
  • Fehlende Shadowsocks-2022-Verschlüsselungsverfahren (SS2022) hinzugefügt: 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm und 2022-blake3-chacha20-poly1305
  • 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, hinzugefügt
  • Bildschirm mit Konfigurationsfehlerbericht und tvOS-Fokusnavigation als Ersatz für die blockierende Warnung 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-timeout und die REALITY-Einstellung spiderx unter falschen Schlüsseln geschrieben und beim Speichern verworfen wurden
  • Absturz beim Sprachwechsel behoben
  • Anzeigeprobleme bei Bedienelementen auf dem Bildschirm behoben
  • Verschiedene Stabilitäts- und Leistungsverbesserungen

Version 1.2 (45)

Neue Funktionen:

  • Tailscale als integrierten Proxy-Typ hinzugefügt: Konfigurieren Sie ein Tailscale-Konto, treten Sie einem tailnet bei und leiten Sie Apple-TV-Datenverkehr über Tailscale-Knoten — ohne separaten Client
  • Tailscale-Kontrollfeld hinzugefügt: zeigt Echtzeit-Knotenstatus (online/offline, IP, zuletzt gesehen) und ermöglicht das Wechseln des Exit-Knotens über die Fernbedienung
  • Vollbild-Dashboard- und Sessions-Ansicht mit dunklem, pro Stufe gegliedertem Sitzungsprotokoll hinzugefügt
  • Tunnel-Detail-Paneel zur Überprüfung aktiver Tunnel hinzugefügt
  • MASQUE-Proxy-Typ zum Richtlinien-Editor hinzugefügt

Verbesserungen:

  • TUN-Durchsatz auf Apple TV verbessert
  • Verbindungsstabilität und Durchsatz von Tailscale und WireGuard verbessert
  • Fokusnavigation auf dem Startbildschirm über Listen, Power-Taste und About-Zeile vorhersehbarer gestaltet
  • Einstellungslayout an iOS angepasst (Always-On-Eintrag entfernt, Twitter→X, APNs/Rate/Language-Zeilen überarbeitet)
  • Geräte-IP nur bei ausgeschaltetem VPN in der rechten Startliste angezeigt

Fehlerbehebungen:

  • Falsche „VPN läuft nicht“-Statusanzeige und verbliebene „Läuft“-Labels im Dashboard behoben
  • Fokusverlust und -sprünge beim Öffnen von Dashboard/Sessions und beim Zurückkehren aus der Tailscale-Knotenliste behoben
  • Menu-Tasten-Verhalten korrigiert, sodass Listen zuverlässig geschlossen und der Fokus korrekt zurückgeführt wird
  • Fußzeilentext der Sitzungsliste von „Wischen zum Löschen“ auf „Lange drücken zum Löschen“ korrigiert
  • Verschiedene Stabilitäts- und Leistungsverbesserungen

Version 1.0 (35)

  • Erstveröffentlichung
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-10-01 17:54:51

Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.

results matching ""

    No results matching ""