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 установлен в trueIPv4-адрес, используемый локальной машиной в сети Wireguard
Необязательное поле, IPv6-адрес, используемый локальной машиной в сети Wireguard
private-key
Заголовок раздела «private-key»Закодированный в base64 приватный ключ клиента Wireguard
Можно использовать команду wg genkey | tee privatekey | wg pubkey > publickey для генерации пары рабочих ключей
public-key
Заголовок раздела «public-key»Закодированный в base64 публичный ключ сервера Wireguard
allowed-ips
Заголовок раздела «allowed-ips»Необязательное поле, ограничивает, какие IP-диапазоны клиента будут перенаправляться через сервер. Обычно можно указать ['0.0.0.0/0']
pre-shared-key
Заголовок раздела «pre-shared-key»Необязательное поле, предварительно общий ключ
reserved
Заголовок раздела «reserved»Необязательное поле, значение зарезервированного поля протокола Wireguard, необходимо для некоторых узлов WARP
persistent-keepalive
Заголовок раздела «persistent-keepalive»Необязательное поле, периодически отправляющее пакеты данных для поддержания постоянного соединения.
ip-stack
Заголовок раздела «ip-stack»Необязательная настройка стека IP-протоколов.
ip-stack.mode
Заголовок раздела «ip-stack.mode»Доступные значения: auto, gvisor, mips. Значение по умолчанию — auto. При значении auto всегда используется IP-стек mihomo (MIPS); для gvisor требуется сборка с -tags with_gvisor.
ip-stack.congestion-controller
Заголовок раздела «ip-stack.congestion-controller»Алгоритм управления перегрузкой TCP. Доступные значения: cubic, reno, bbr, bbr3. Значение по умолчанию — cubic.
При использовании стека IP-протоколов gVisor этот параметр не применяется.
Необязательное поле, устанавливает значение MTU
remote-dns-resolve
Заголовок раздела «remote-dns-resolve»Необязательное поле, принудительное удаленное разрешение 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> # Установите по необходимости, удалите если не нужно