Import

Chute kann Proxy-Konfigurationen importieren, die für andere Clients geschrieben wurden. Zwei Arten von Eingaben werden akzeptiert: Share-Links für einzelne Knoten (ss://, vmess://, …) und vollständige Profile als Clash/mihomo-YAML oder sing-box-JSON. Beide werden in native Chute-Konfiguration umgewandelt — was Sie danach erhalten, ist ein gewöhnliches Chute-Profil mit den Abschnitten [Proxy], [Proxy Group] und [Rule], keine fremde Datei, die Chute weiterhin interpretiert.

http://- und https://-Adressen werden nie als Share-Links behandelt. Sie sind Abonnement-Adressen: Der Inhalt wird zuerst heruntergeladen und dann entsprechend dem importiert, was der heruntergeladene Body tatsächlich enthält.


Schema Resultierender Richtlinientyp Standard-Port
ss:// ss 8388
vmess:// vmess 443
vless:// vless 443
trojan:// trojan 443
hysteria2://, hy2:// hysteria2 443
tuic:// tuic 443
anytls:// anytls 443
socks5://, socks:// socks5 1080
ssh:// ssh 22

Die meisten Links verwenden die Form userinfo@host:port?query#name. Zwei weichen davon ab: vmess:// trägt ein base64-kodiertes JSON-Objekt (das v2rayN-Format mit den Feldnamen add / ps / scy / net / aid), und ss:// akzeptiert sowohl SIP002 (base64(method:password)@host:port) als auch die ältere Form, bei der der gesamte Body kodiert ist (base64(method:password@host:port)). Base64-Nutzlasten dürfen ohne Padding vorliegen und das URL-sichere Alphabet verwenden.

trojan://[email protected]:443?sni=example.com&alpn=h2,http/1.1#Tokyo%20Node

wird umgewandelt zu:

[Proxy]
Tokyo Node = trojan, example.com, 443, password=password, tls=true, sni=example.com, alpn=h2|http/1.1

Der Text nach # wird prozentdekodiert und wird zum Richtliniennamen; vmess:// entnimmt ihn stattdessen dem Feld ps. Ein Link ohne Namen erhält den Namen host:port. Zeichen, die das Konfigurationsformat reserviert — =, ,, [, ], ", Tabulator und Zeilenumbruch — werden im Namen durch Leerzeichen ersetzt.

Trojan, Hysteria2, TUIC und AnyTLS sind reine TLS-Protokolle, daher wird tls=true auch dann ergänzt, wenn der Link es nicht ausdrücklich angibt.

Mehrere Links. Eine Nutzlast kann aus vielen Share-Links bestehen, die durch Zeilenumbrüche getrennt und optional in eine äußere Base64-Schicht eingepackt sind. Jede Zeile, die sich parsen lässt, wird zu einer Richtlinie, und wiederholte Namen erhalten das Suffix 2, 3 …, damit Regeln und Gruppen jeden Knoten weiterhin einzeln ansprechen können. Zeilen, die sich nicht parsen lassen, werden als Warnungen gemeldet, während der Rest der Nutzlast dennoch importiert wird; der Import schlägt nur fehl, wenn sich überhaupt nichts umwandeln ließ.

Ein Link, dessen Schema nicht in der obigen Tabelle steht, wird nicht als Share-Link erkannt. Ein Link mit bekanntem Schema, dem erforderliche Felder fehlen, wird mit einer Meldung abgelehnt, die dieses Schema benennt.

Nur die untenstehenden Query-Parameter werden gelesen; alles andere in einem Link wird ignoriert.

Parameter Gilt für Umgewandelt zu
sni, peer, servername Alle sni
alpn (kommagetrennt) Alle alpn (Werte mit `\ ` verbunden)
fp Alle fingerprint (das uTLS-ClientHello-Profil)
allowInsecure, insecure, skip-cert-verify Alle skip-cert-verify=true
security=tls, xtls, reality Alle tls=true
pbk, sid REALITY reality=true, public-key, short-id
flow VLESS xtls=true, flow
type/network=ws + path, host Alle ws=true, ws-path, ws-headers=Host:…
type/network=grpc + serviceName (oder path) Alle grpc=true, grpc-service-name
type/network=xhttp oder splithttp + path, host, mode Alle xhttp=true, xhttp-path, xhttp-host, xhttp-mode
obfs, obfs-password, up, down Hysteria2 Gleiche Optionsnamen
plugin=… Shadowsocks Siehe unten

Ein Shadowsocks-plugin-Wert wird als name;key=value;… gelesen. obfs-local / simple-obfs / obfs werden zu obfs und obfs_param; v2ray-plugin in seinem (voreingestellten) WebSocket-Modus wird zu ws=true mit ws-path und ws-headers. Jedes andere Plugin erzeugt eine Warnung und wird nicht übernommen — die resultierende Richtlinie kann sich nicht mit einem Server verbinden, der es voraussetzt.

Hinweis: Ein VMess-aid (alterId) ungleich null wird als Warnung gemeldet. Chute spricht ausschließlich VMess AEAD, und ein Server, der noch den alten MD5-Handshake verlangt, kann die Verbindung nicht authentifizieren.


Profil-Import

Drei Formate werden erkannt:

Format Handhabung
Natives Chute-/Surge-Profil Wird unverändert verwendet, ohne Umwandlungsschritt
Clash / mihomo YAML Wird in native Konfiguration umgewandelt
sing-box JSON Wird in native Konfiguration umgewandelt

Das Format wird aus dem Inhalt erkannt, der Dateiname dient nur als Hinweis. Inhalt, der mit { beginnt, wird als sing-box-JSON behandelt, wie auch immer die Datei heißt (ein als .yaml gespeichertes sing-box-Profil lässt sich weiterhin als YAML parsen, dem Namen allein ist also nicht zu trauen). Andernfalls bedeutet die Endung .conf nativ, .json sing-box und .yaml / .yml Clash. Wenn kein brauchbarer Dateiname vorliegt — etwa bei einem Abonnement-Body —, entscheidet die erste bedeutungstragende Zeile: #!MANAGED-CONFIG oder eine [Section]-Kopfzeile bedeutet nativ, und proxies:, proxy-groups:, rules:, proxy-providers: oder rule-providers: bedeutet Clash. Alles andere wird als nativ behandelt.

Ein Dokument, das sich zwar parsen lässt, aber keinen der Abschnitte enthält, die seinen Dialekt ausmachen, wird abgelehnt, statt als erfolgreicher Import von nichts gemeldet zu werden: Clash-YAML benötigt mindestens eines von proxies, proxy-groups, rules, proxy-providers oder rule-providers, und sing-box-JSON benötigt outbounds, endpoints oder route.

Ein einzelner nicht umwandelbarer Eintrag lässt den Import nie scheitern. Jeder Proxy, jede Gruppe und jede Regel wird für sich umgewandelt; diejenigen ohne Chute-Entsprechung werden übersprungen und gemeldet. Das Ergebnis umfasst die umgewandelte Konfiguration, eine Liste von Warnungen und eine Liste der übersprungenen Quellfelder. Dieselben Warnungen werden außerdem als Kommentare in den umgewandelten Text geschrieben, direkt neben dem Abschnitt, aus dem sie stammen:

[Proxy]
HK 01 = ss, example.com, 8388, aes-128-gcm, password
# KL-CONVERT-WARNING [proxies[3]]: proxy type 'snell' was skipped — Snell is a Surge-proprietary protocol KLNEKit does not implement

Zum Schluss wird der umgewandelte Text mit Chutes eigenem Parser erneut geparst. Jede Zeile, die der Parser ablehnt, wird als # KL-CONVERT-DROPPED: … auskommentiert und gemeldet, sodass ein zu 95 % umwandelbares Profil dennoch importiert wird und läuft.

Knotennamen werden dort umgeschrieben, wo sie das Konfigurationsformat brechen würden: , wird zu einem Leerzeichen und = wird zu -, und ein Name, der dadurch mit einem anderen kollidiert, erhält ein numerisches Suffix. Gruppenmitglieder und Regelziele werden entsprechend umgeschrieben, sodass jede Referenz weiterhin auf denselben Knoten zeigt. direct-Proxys/-Outbounds werden auf das integrierte DIRECT abgebildet und reject / block / dns auf REJECT.

Hinweis: Ein umgewandeltes Profil ist eine statische Momentaufnahme. Chute lädt ein Abonnement erneut herunter und parst es als natives Profil; ein Profil, das umgewandelt werden musste, wird deshalb ohne Auto-Update-URL gespeichert und aktualisiert sich nicht selbst.

Hinweise zur Clash-/mihomo-Umwandlung

Hinweis: dialer-proxy wird in underlying-proxy umgewandelt. Chute parst und bewahrt diese Option, implementiert aber keine Proxy-Verkettung — eine Richtlinie, die sie trägt, protokolliert eine Warnung und verbindet sich direkt mit ihrem eigenen Server. Datenverkehr, der unter mihomo verkettet war, ist es nach dem Import nicht mehr.

  • Umgewandelte Proxy-Typen: ss, ssr, vmess, vless, trojan, http, socks5, hysteria2, tuic, anytls, wireguard, ssh. Typen, für die Chute keine Implementierung hat — snell, hysteria (v1), mieru, juicity, shadowquic, trusttunnel, openvpn, sudoku, vmess-http — werden mit einer Warnung übersprungen, die das Protokoll benennt. Zwei weitere werden übersprungen, obwohl Chute das Protokoll unterstützt: ein masque-Proxy, weil das mihomo-Feldlayout abweicht, und ein tailscale-Proxy, der einmalig im Abschnitt [Tailscale] konfiguriert und über die integrierte Richtlinie TAILSCALE genutzt wird.
  • Die beiden Fingerabdruck-Schlüssel von mihomo bedeuten Unterschiedliches und werden auseinandergehalten: client-fingerprint wird zu fingerprint (das uTLS-ClientHello-Profil) und fingerprint wird zu cert-fingerprint-sha256 (ein Zertifikats-Pin).
  • udp: false wird zu udp-relay=false, tfo wird zu tfo=true, und ein aktivierter smux-Block wird zu mux=true.
  • Die Gruppentypen select, url-test, fallback und load-balance werden samt ihren Health-Check-Optionen umgewandelt. Eine relay-Gruppe wird übersprungen — sie ist Verkettung, die nicht implementiert ist. use:-Mitglieder werden zu policy-provider:<name>-Referenzen, und include-all / include-all-proxies / include-all-providers werden zu einer expliziten Mitgliederliste expandiert.
  • filter und exclude-filter werden in Anführungszeichen übernommen, aber ein Muster, das ein Komma oder ein Anführungszeichen enthält, kann das Format der Konfigurationszeile nicht überstehen und wird mit einer Warnung verworfen.
  • Regeltypen werden dort umbenannt, wo die Namen abweichen: MATCHFINAL, DST-PORTDEST-PORT, SRC-IP-CIDRSRC-IP. REJECT-DROP und REJECT-TINYGIF fallen mit REJECT zusammen; eine Regel, die auf PASS oder COMPATIBLE zielt, wird übersprungen.
  • Ein Inline-rule-provider (type: inline mit einer payload-Liste) wird zu den entsprechenden konkreten Regeln expandiert, da eine Chute-[Rule Provider]-Zeile keine Nutzlast einbetten kann.
  • Allgemeine Schlüssel werden dort abgebildet, wo eine Entsprechung existiert: mixed-port wird zum HTTP-port (SOCKS5 benötigt sein eigenes socks-port), allow-lan wird zu allow-wifi-access, log-level wird auf loglevel abgebildet, external-controller/secret werden zu den Optionen des externen HTTP-Controllers, und ein aktivierter sniffer wird zu sniffing-enabled.

Hinweise zur sing-box-Umwandlung

  • Umgewandelte Outbound-Typen: shadowsocks, vmess, vless, trojan, hysteria2, tuic, anytls, shadowtls, wireguard, http, socks, ssh. selector und urltest werden zu den Richtliniengruppen select und url-test.
  • detour erzeugt aus demselben Grund eine Warnung wie dialer-proxy: Outbound-Verkettung ist nicht implementiert, und der Outbound wählt seinen eigenen Server direkt an.
  • route.rule_set-Einträge werden zu [Rule Provider]-Zeilen (type=http für entfernte, type=file für lokale, stets gelesen als klassische mihomo-YAML-Regellisten). Ein Regelsatz im binären .srs-Format wird abgelehnt — Chute liest ausschließlich textbasierte Regel-Nutzlasten.
  • Routing-Regeln folgen dem Schlüssel action: route/bypass verwenden den benannten Outbound, reject wird zu REJECT, und hijack-dns, sniff und resolve erzeugen nichts, weil Chute diese aus [General] heraus steuert.
  • multiplex-Einstellungen und dns.rules (DNS-Routing pro Domain) haben keine Entsprechung und werden als verworfen gemeldet.

Einschränkungen

  • Proxy-Verkettung ist nicht implementiert. mihomos dialer-proxy, sing-boxs detour und Clashs relay-Gruppen beschreiben allesamt eine Kette; keine davon erzeugt in Chute verketteten Datenverkehr.
  • Optionen ohne Chute-Entsprechung werden mit einer Warnung verworfen statt stillschweigend: pro Proxy ip-version, interface-name, routing-mark und mptcp; pro Gruppe exclude-type, disable-udp, interface-name, routing-mark und icon; sowie die General-Schlüssel bind-address, tcp-concurrent, geodata-mode, geox-url, find-process-mode, unified-delay, authentication, tproxy-port, redir-port und weitere.
  • Regeltypen ohne Entsprechung werden übersprungen: GEOSITE, IP-SUFFIX, SRC-IP-SUFFIX, SRC-GEOIP, SRC-IP-ASN, DSCP, UID, SUB-RULE, PROCESS-PATH-REGEX, PROCESS-NAME-WILDCARD, PROCESS-PATH-WILDCARD und IP-ACCEPT. Eine Regel mit dem src-Modifikator von mihomo wird ebenfalls übersprungen, statt am falschen Endpunkt abzugleichen. mihomo-sub-rules (verschachtelte Regelbäume) werden verworfen.
  • Protokolldetails, die Chute selbst verwaltet, werden nicht übernommen: Hysteria2-Port-Hopping (ports), TUIC-heartbeat, AnyTLS-Session-Pool-Feinabstimmung, WireGuard-peers-Listen (es wird ein einzelner Peer konfiguriert) und workers.
  • Transporte, die Chute nicht implementiert, werden gemeldet statt umgewandelt: h2, http-Verschleierung, httpupgrade, die WebSocket-Variante v2ray-http-upgrade, WebSocket-max-early-data und XHTTP-extra (XMUX / Download-Settings).
  • Clashs Betriebs-mode ist in Chute ein Laufzeitschalter, kein Konfigurationsschlüssel; ein Profil im Modus global oder direct wird mit einer Warnung in den Regel-Modus umgewandelt.
  • YAML wird mit einem Standard-Parser gelesen, daher funktionieren Anker und der Merge-Schlüssel <<. Ein als mehrzeiliger Skalar geschriebener Wert wird auf eine Zeile zusammengefaltet, weil ein Zeilenumbruch die Konfigurationszeile spalten würde, in der er landet.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-13 17:01:32

results matching ""

    No results matching ""