Перейти к содержимому

WireGuard

Если есть только один пир, можно использовать упрощенную запись.

proxies:
- name: "wg"
type: wireguard
private-key: eCtXsJZ27+4PbhDkHnB923tkUn2Gj59wZw5wFA75MnU=
server: 162.159.192.1
port: 2480
ip: 172.16.0.2
ipv6: fd01:5ca1:ab1e:80fa:ab85:6eea:213f:f4a5
public-key: Cr8hWlKvtDt7nrvf+f0brNQQzabAqrjfBvas9pmowjo=
allowed-ips: ['0.0.0.0/0']
# pre-shared-key: 31aIhAPwktDGpH4JDhA8GNvjFXEf/a6+UaQRyOAiyfM=
# reserved: [209,98,59] # Строковый формат также допустим, например "U4An"
# persistent-keepalive: 0
# ip-stack:
# mode: auto
# congestion-controller: cubic
udp: true
# mtu: 1408
# dialer-proxy: "ss1" # Идентификатор исходящего прокси. Когда значение не пусто, используется указанный proxy/proxy-group для установки соединения
# remote-dns-resolve: true # Принудительное удаленное разрешение DNS, по умолчанию false
# dns: [ 1.1.1.1, 8.8.8.8 ] # Действует только когда remote-dns-resolve установлен в true
# Если присутствует, активирует функции AmneziaWG
# amnezia-wg-option:
# version: 2 # Только версия 3 использует реализацию v3; все остальные значения используют устаревшую реализацию
# jc: 5 # AmneziaWG v1.0+
# jmin: 500 # AmneziaWG v1.0+
# jmax: 501 # AmneziaWG v1.0+
# s1: 30 # AmneziaWG v1.0+
# s2: 40 # AmneziaWG v1.0+
# s3: 50 # AmneziaWG v1.5+
# s4: 8 # AmneziaWG v1.5+
# h1: 123456 # AmneziaWG v1.0/v1.5 поддерживает только одиночные значения; v2+ также поддерживает диапазоны
# h2: 67543 # AmneziaWG v1.0/v1.5 поддерживает только одиночные значения; v2+ также поддерживает диапазоны
# h3: 123123 # AmneziaWG v1.0/v1.5 поддерживает только одиночные значения; v2+ также поддерживает диапазоны
# h4: 32345 # AmneziaWG v1.0/v1.5 поддерживает только одиночные значения; v2+ также поддерживает диапазоны
# i1: <b 0xf6ab3267fa><b 0xf6ab><t><r 10> # AmneziaWG v1.5+
# i2: <b 0xf6ab3267fa><r 100> # AmneziaWG v1.5+
# i3: "" # AmneziaWG v1.5+
# i4: "" # AmneziaWG v1.5+
# i5: "" # AmneziaWG v1.5+
# j1: <b 0xffffffff><c><b 0xf6ab><t><r 10> # Только AmneziaWG v1.5 (удалено в v2+)
# j2: <c><b 0xf6ab><t><wt 1000> # Только AmneziaWG v1.5 (удалено в v2+)
# j3: <t><b 0xf6ab><c><r 10> # Только AmneziaWG v1.5 (удалено в v2+)
# itime: 60 # Только AmneziaWG v1.5 (удалено в v2+)
# header-protection-key: >- # AmneziaWG v3+
# MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY=
# content-padding-addition: 0-32 # AmneziaWG v3+
# rekey-after-time: 120 # AmneziaWG v3+
# rekey-timeout: 5 # AmneziaWG v3+
# reject-after-time: 180 # AmneziaWG v3+
# keepalive-timeout: 10 # AmneziaWG v3+
# max-handshake-attempts: 18 # AmneziaWG v3+
# random-trailers: true # AmneziaWG v3.1+
# disable-cookies: true # AmneziaWG v3.1+

Полная запись позволяет указать несколько пиров.

При использовании нескольких пиров allowed-ips каждого пира должны быть разными; в этом случае поля верхнего уровня server, port, public-key, pre-shared-key, reserved игнорируются, но private-key по-прежнему указывается на верхнем уровне.

proxies:
- name: "wg"
type: wireguard
ip: 172.16.0.2
ipv6: fd01:5ca1:ab1e:80fa:ab85:6eea:213f:f4a5
private-key: eCtXsJZ27+4PbhDkHnB923tkUn2Gj59wZw5wFA75MnU=
peers:
- server: 162.159.192.1
port: 2480
public-key: Cr8hWlKvtDt7nrvf+f0brNQQzabAqrjfBvas9pmowjo=
allowed-ips: ['0.0.0.0/0']
# pre-shared-key: 31aIhAPwktDGpH4JDhA8GNvjFXEf/a6+UaQRyOAiyfM=
# reserved: [209,98,59] # Строковый формат также допустим, например "U4An"
udp: true
# mtu: 1408
# dialer-proxy: "ss1" # Идентификатор исходящего прокси. Когда значение не пусто, используется указанный proxy/proxy-group для установки соединения
# remote-dns-resolve: true # Принудительное удаленное разрешение DNS, по умолчанию false
# dns: [ 1.1.1.1, 8.8.8.8 ] # Действует только когда remote-dns-resolve установлен в true

Общие поля

IPv4-адрес, используемый локальной машиной в сети Wireguard

Необязательное поле, IPv6-адрес, используемый локальной машиной в сети Wireguard

Закодированный в base64 приватный ключ клиента Wireguard

Можно использовать команду wg genkey | tee privatekey | wg pubkey > publickey для генерации пары рабочих ключей

Закодированный в base64 публичный ключ сервера Wireguard

Необязательное поле, ограничивает, какие IP-диапазоны клиента будут перенаправляться через сервер. Обычно можно указать ['0.0.0.0/0']

Необязательное поле, предварительно общий ключ

Необязательное поле, значение зарезервированного поля протокола Wireguard, необходимо для некоторых узлов WARP

Необязательное поле, периодически отправляющее пакеты данных для поддержания постоянного соединения.

Необязательная настройка стека IP-протоколов.

Доступные значения: auto, gvisor, mips. Значение по умолчанию — auto. При значении auto всегда используется IP-стек mihomo (MIPS); для gvisor требуется сборка с -tags with_gvisor.

Алгоритм управления перегрузкой TCP. Доступные значения: cubic, reno, bbr, bbr3. Значение по умолчанию — cubic.

При использовании стека IP-протоколов gVisor этот параметр не применяется.

Необязательное поле, устанавливает значение MTU

Необязательное поле, принудительное удаленное разрешение DNS, по умолчанию false

Необязательное поле, действует только когда remote-dns-resolve установлен в true, определяет DNS-сервер для удаленного разрешения

Перевод из стандартного конфигурационного файла Wireguard

Заголовок раздела «Перевод из стандартного конфигурационного файла Wireguard»

Предположим, у нас есть следующий стандартный конфигурационный файл Wireguard:

[Interface]
Address = <IP вашей машины в сети>
ListenPort = <Локальный порт прослушивания>
PrivateKey = <Ваш приватный ключ>
DNS = <Используемый DNS>
MTU = <Предустановленный MTU>
[Peer]
AllowedIPs = <Перенаправляемые IP-диапазоны>
Endpoint = <Удаленный адрес>:<Удаленный порт>
PublicKey = <Удаленный публичный ключ>

Соответствующая конфигурация узла для clash:

- name: "wg"
type: wireguard
ip: <IP вашей машины в сети, для IPv4>
ipv6: <IP вашей машины в сети, для IPv6> # Удалите, если нет v6-адреса
private-key: <Ваш приватный ключ>
peers:
- server: <Удаленный адрес>
port: <Удаленный порт>
public-key: <Удаленный публичный ключ>
allowed-ips: ['0.0.0.0/0'] # Разделение трафика обрабатывается clash
# reserved: [209,98,59] # Заполните при необходимости
udp: true
mtu: <Предустановленный MTU> # Установите по необходимости, удалите если не нужно
remote-dns-resolve: true # Установите по необходимости, удалите если не нужно
dns: <Используемый DNS> # Установите по необходимости, удалите если не нужно