Конфигурация WireGuard

Chute поддерживает WireGuard как протокол исходящего прокси. Вы можете задать параметры WireGuard прямо в строке раздела [Proxy] или определить именованный раздел [WireGuard] и ссылаться на него.

Раздел WireGuard

Раздел [WireGuard] определяет полную конфигурацию туннеля WireGuard, на которую можно ссылаться по имени из прокси-сервера WireGuard.

[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

Параметры

Ключ Обязательно Описание
private-key Да Закрытый ключ WireGuard в кодировке base64
peer-public-key Да Открытый ключ пира в кодировке base64
self-ip Нет Локальный IPv4-адрес для интерфейса WireGuard (по умолчанию 10.0.0.2, и для WireGuard, и для AmneziaWG)
self-ip-v6 Нет Локальный IPv6-адрес для интерфейса WireGuard
preshared-key Нет Предварительно разделённый ключ (PSK) для постквантовой устойчивости
server Да* Адрес удалённого сервера (используется, когда строка прокси его не указывает; строка прокси имеет приоритет)
port Да* Порт удалённого сервера (тот же приоритет, что и у server)
wg-mtu Нет MTU для интерфейса WireGuard (по умолчанию: 1420). mtu в разделе читается как wg-mtu; явно заданный wg-mtu имеет приоритет
keepalive Нет Интервал постоянного keepalive в секундах. Если не задан, keepalive не отправляется
allowed-ips Нет Адреса назначения, которые пропускает пир, — CIDR через запятую (например, allowed-ips = 10.0.0.0/8, 192.168.1.0/24). Соединение с адресом вне этих диапазонов отклоняется (TCP) или отбрасывается (UDP). Если ключа нет или в нём есть и 0.0.0.0/0, и ::/0, подразумеваются все адреса; запись, которая не является CIDR, игнорируется с предупреждением
reserved Нет Зарезервированные байты для заголовка рукопожатия WireGuard (например, reserved=0,1,2) — разбирается, но текущий движок его не применяет и пишет предупреждение

* server и port должны присутствовать либо в разделе, либо в ссылающейся строке [Proxy]; в противном случае политика отклоняется как неполная.

Синтаксис peer из Surge

Раздел может описывать пира так, как это делает Surge:

[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")
  • public-key становится peer-public-key, endpoint (host:port или [v6]:port) — server и port, client-id = a/b/c — reserved, а preshared-key и keepalive сохраняют свои имена. Ключ, записанный прямо в разделе, имеет приоритет над тем же значением внутри peer. Текущий движок разбирает reserved, но не применяет его.
  • Используется только один пир; второй сообщается как предупреждение и игнорируется.
  • allowed-ips компилируется и применяется к TCP и UDP WireGuard: адрес вне CIDR-сетей пира отклоняется или отбрасывается, поскольку этот пир не может маршрутизировать его обратно. Ключи раздела Surge dns-server и prefer-ipv6 сохраняются без эффекта и попадают в уведомление о проигнорированных параметрах.
  • При сохранении конфигурации раздел записывается с перечисленными выше ключами вместо строки peer = (…).

Использование

Ссылка на раздел из прокси-сервера:

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

[Proxy Group]
WGGroup = select, WG

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

Можно определить несколько разделов [WireGuard] для разных туннелей:

[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

Примечание: WireGuard работает через собственный UDP-туннель со стеком TCP/IP в пользовательском пространстве. Имена (например, wg0) чувствительны к регистру.

Раздел AmneziaWG

Chute также поддерживает AmneziaWG — вариант WireGuard с обфускацией трафика. Раздел [AmneziaWG <name>] принимает те же ключи, что и раздел [WireGuard], плюс следующие параметры обфускации:

  • jc, jmin, jmax — количество мусорных пакетов и диапазон их размеров. Если jc больше нуля, должны быть заданы и jmin, и jmax, причём jmax не может быть меньше jmin, иначе туннель отклоняется.
  • s1, s2, s3, s4 — мусор, добавляемый в начало пакетов init/response/cookie/transport. s1–s3 не могут превышать 64 байта (s4 — 32), а s1 + 148 должно отличаться от s2 + 92, иначе туннель отклоняется.
  • h1, h2, h3, h4 — пользовательские значения заголовка типа сообщения. Каждое — десятичное число или диапазон start-end в пределах 32 бит, и оно должно быть больше 4, поскольку 1–4 — собственные типы сообщений WireGuard; четыре значения не должны пересекаться, иначе туннель отклоняется.
  • i1, i2, i3, i4, i5 — определения специальных мусорных пакетов. Определение, которое не удаётся разобрать, отклоняет туннель.

Отклонённое сочетание параметров записывается в журнал как WireGuard: AmneziaWG parameters rejected: <reason>, после чего туннель завершается ошибкой Failed to create BoringTun tunnel.

Политика ссылается на раздел через тип amneziawg (псевдоним 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

Правила перекрестной проверки:

  • Параметры AmneziaWG в обычном разделе [WireGuard] — ошибка конфигурации; используйте вместо этого раздел [AmneziaWG].
  • reserved нельзя использовать в разделе [AmneziaWG]: он записывает те же байты заголовка, которые заменяет h4, поэтому такое сочетание отклоняется как ошибка.
  • Раздел [AmneziaWG] без параметров обфускации получает предупреждение — он работает как обычный WireGuard.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""