WireGuard-Konfiguration

Chute unterstützt WireGuard als ausgehendes Proxy-Protokoll. Sie können WireGuard entweder inline im Abschnitt [Proxy] konfigurieren oder einen benannten [WireGuard]-Abschnitt definieren und darauf verweisen.

WireGuard-Abschnitt

Ein [WireGuard]-Abschnitt definiert eine vollständige WireGuard-Tunnelkonfiguration, die namentlich von einem WireGuard-Proxy-Server referenziert werden kann.

[WireGuard wg0]
private-key = base64_private_key
peer-public-key = base64_peer_public_key
self-ip = 10.0.0.2
self-ip-v6 = fd00::2
preshared-key = base64_preshared_key
server = example.com
port = 51820
wg-mtu = 1420
keepalive = 25

Parameter

Schlüssel Erforderlich Beschreibung
private-key Ja WireGuard-Privatschlüssel, base64-kodiert
peer-public-key Ja Öffentlicher Peer-Schlüssel, base64-kodiert
self-ip Nein Lokale IPv4-Adresse für die WireGuard-Schnittstelle (Standard: 10.0.0.2, für WireGuard wie für AmneziaWG)
self-ip-v6 Nein Lokale IPv6-Adresse für die WireGuard-Schnittstelle
preshared-key Nein Pre-Shared-Key für Post-Quanten-Resistenz
server Ja* Remote-Serveradresse (wird verwendet, wenn die Proxy-Zeile keine angibt; die Proxy-Zeile hat Vorrang)
port Ja* Remote-Serverport (gleicher Vorrang wie server)
wg-mtu Nein MTU für die WireGuard-Schnittstelle (Standard: 1420). mtu im Abschnitt wird als wg-mtu gelesen; ein ausdrückliches wg-mtu hat Vorrang
keepalive Nein Persistentes Keepalive-Intervall in Sekunden. Fehlt es, wird kein Keepalive gesendet
allowed-ips Nein Die Ziele, die der Peer transportiert, als kommagetrennte CIDRs (z. B. allowed-ips = 10.0.0.0/8, 192.168.1.0/24). Eine Verbindung zu einer Adresse außerhalb davon wird abgewiesen (TCP) oder verworfen (UDP). Fehlt der Schlüssel oder enthält er sowohl 0.0.0.0/0 als auch ::/0, sind alle Ziele gemeint; ein Eintrag, der kein CIDR ist, wird mit einer Warnung ignoriert
reserved Nein Reservierte Bytes für den WireGuard-Handshake-Header (z. B. reserved=0,1,2) — wird geparst, von der aktuellen Engine aber nicht angewendet; eine Warnung wird protokolliert

* server und port müssen entweder im Abschnitt oder auf der referenzierenden [Proxy]-Zeile vorhanden sein; andernfalls wird die Richtlinie als unvollständig abgelehnt.

Surges peer-Syntax

Ein Abschnitt kann seinen Peer so beschreiben, wie Surge es tut:

[WireGuard wg0]
private-key = base64_private_key
self-ip = 10.0.0.2
mtu = 1280
peer = (public-key = base64_peer_public_key, endpoint = example.com:51820, preshared-key = base64_preshared_key, keepalive = 25, client-id = 1/2/3, allowed-ips = "0.0.0.0/0, ::/0")
  • Aus public-key wird peer-public-key, aus endpoint (host:port oder [v6]:port) werden server und port, aus client-id = a/b/c wird reserved; preshared-key und keepalive behalten ihre Namen. Ein direkt im Abschnitt geschriebener Schlüssel hat Vorrang vor demselben Wert in peer. Die aktuelle Engine parst reserved, wendet es aber nicht an.
  • Es wird nur ein Peer verwendet; ein zweiter wird als Hinweis gemeldet und ignoriert.
  • allowed-ips wird kompiliert und für WireGuard-TCP und -UDP durchgesetzt: Ziele außerhalb der CIDR-Netze des Peers werden abgelehnt oder verworfen, weil dieser Peer sie nicht zurückrouten kann. Die Surge-Abschnittsschlüssel dns-server und prefer-ipv6 bleiben ohne Wirkung erhalten und erscheinen im Hinweis zu ignorierten Optionen.
  • Beim Speichern der Konfiguration wird der Abschnitt mit den obigen Schlüsseln statt der Zeile peer = (…) zurückgeschrieben.

Verwendung

Referenzieren Sie den Abschnitt aus einem Proxy-Server:

[Proxy]
WG = wireguard, section-name=wg0

[Proxy Group]
WGGroup = select, WG

[Rule]
IP-CIDR,10.0.0.0/8,WGGroup
FINAL,DIRECT

Mehrere [WireGuard]-Abschnitte können für verschiedene Tunnel definiert werden:

[WireGuard us]
private-key = ...
peer-public-key = ...
self-ip = 10.0.1.2

[WireGuard eu]
private-key = ...
peer-public-key = ...
self-ip = 10.0.2.2

Hinweis: WireGuard läuft über einen eigenen UDP-Tunnel mit einem Userspace-TCP/IP-Stack. Die Namen (z. B. wg0) unterscheiden zwischen Groß- und Kleinschreibung.

AmneziaWG-Abschnitt

Chute unterstützt auch AmneziaWG, eine WireGuard-Variante mit Verschleierung des Datenverkehrs. Ein [AmneziaWG <name>]-Abschnitt akzeptiert dieselben Schlüssel wie ein [WireGuard]-Abschnitt sowie zusätzlich die folgenden Verschleierungsparameter:

  • jc, jmin, jmax — Anzahl der Junk-Pakete und deren Größenbereich. Ist jc größer als null, müssen jmin und jmax beide gesetzt sein, und jmax darf nicht kleiner als jmin sein, sonst wird der Tunnel abgelehnt.
  • s1, s2, s3, s4 — Junk, der Init-, Response-, Cookie- und Transport-Paketen vorangestellt wird. s1–s3 dürfen 64 Byte nicht überschreiten (s4 32), und s1 + 148 muss sich von s2 + 92 unterscheiden, sonst wird der Tunnel abgelehnt.
  • h1, h2, h3, h4 — benutzerdefinierte Werte für die Nachrichtentyp-Header. Jeder ist eine Dezimalzahl oder ein Bereich start-end innerhalb von 32 Bit und muss größer als 4 sein, da 1–4 die eigenen Nachrichtentypen von WireGuard sind; die vier dürfen sich nicht überschneiden, sonst wird der Tunnel abgelehnt.
  • i1, i2, i3, i4, i5 — Definitionen spezieller Junk-Pakete. Eine Definition, die sich nicht parsen lässt, führt zur Ablehnung des Tunnels.

Eine abgelehnte Parameterkombination wird als WireGuard: AmneziaWG parameters rejected: <reason> protokolliert, danach scheitert der Tunnel mit Failed to create BoringTun tunnel.

Eine Richtlinie referenziert den Abschnitt mit dem Typ amneziawg (Alias awg):

[AmneziaWG awg0]
private-key = base64_private_key
peer-public-key = base64_peer_public_key
self-ip = 10.0.0.2
server = example.com
port = 51820
jc = 4
jmin = 40
jmax = 70
s1 = 15
s2 = 60
h1 = 123456
h2 = 67543
h3 = 32345
h4 = 123123

[Proxy]
AWG = amneziawg, section-name=awg0

Regeln zur Gegenprüfung:

  • AmneziaWG-Parameter in einem einfachen [WireGuard]-Abschnitt sind ein Konfigurationsfehler — verwenden Sie stattdessen einen [AmneziaWG]-Abschnitt.
  • reserved kann in einem [AmneziaWG]-Abschnitt nicht verwendet werden: Es schreibt dieselben Header-Bytes, die h4 ersetzt, daher wird diese Kombination als Fehler zurückgewiesen.
  • Ein [AmneziaWG]-Abschnitt ohne Verschleierungsparameter erzeugt einen Hinweis — er verhält sich wie einfaches WireGuard.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

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

results matching ""

    No results matching ""