mistgate Документация

WARP

Как выпустить трафик профиля через Cloudflare WARP, как получить аккаунт для ноды, что значит «закрыто при сбое» и как читать и чинить связь WARP.

На этой странице

По умолчанию трафик профиля выходит с ноды с её собственного адреса. С WARP он выходит через сеть Cloudflare: сайты видят адрес Cloudflare, а не хостера. У ноды может быть не больше одного аккаунта WARP, и через него идут все профили этой ноды с выходом через WARP. Пользоваться им могут и профили Hysteria2, и профили AmneziaWG.

Как это устроено#

  • Выход — настройка профиля. Выход (в группе Продвинутое у Hysteria2, в группе Основное у AmneziaWG) — Напрямую или WARP.
  • Аккаунт принадлежит ноде. Он настраивается в карточке WARP ноды: нода → Настройки, первая карточка. Туда же ведёт значок WARP в шапке ноды.
  • Профилю с выходом через WARP нужен аккаунт на каждой ноде, где он стоит. Редактор перечисляет ноды профиля без рабочего WARP, каждая — ссылка на её карточку WARP.

Чтобы дать людям оба выхода, сделайте двойника профиля с другим выходом («Копия через WARP»): см. Профили.

Закрыто при сбое#

Профиль с выходом через WARP никогда не выходит напрямую. Если WARP нет, профиль не пропускает трафик — вместо того чтобы молча показывать трафик людей с собственного адреса ноды:

Ситуация Что происходит с профилями ноды с выходом через WARP
У ноды нет аккаунта WARP Они не запускаются («Нет рабочего WARP на ноде»).
WARP на паузе Они перестают пропускать трафик, пока его не возобновят.
Туннель лежит Они перестают пропускать трафик, пока он не поднимется; если он только тормозит — работают медленно.

Окно добавления профиля предупреждает до нажатия кнопки, если у ноды нет WARP, он на паузе или туннель лежит. Проверка доктора Выход через WARP и проверки глазами клиента показывают то же с другой стороны: если прямой профиль ноды работает, а профиль с WARP нет, открывается алерт, который прямо называет выход через WARP. См. Здоровье.

Как получить аккаунт#

В карточке ноды без аккаунта написано Не настроен и предложены два пути. Оба доступны только владельцу и требуют свежего подтверждения входа, и обоим нужен агент с поддержкой WARP; для старого агента будет ссылка на Обновления.

Включить WARP (регистрация)#

Включить WARP регистрирует новый аккаунт Cloudflare WARP для этой ноды и хранит его в зашифрованном виде. Окно объясняет, что делает кнопка:

  • это анонимный аккаунт устройства: без почты и пароля;
  • запрос уходит с адреса панели, не с ноды;
  • от вашего имени принимаются условия Cloudflare WARP, для этого одного аккаунта. Окно даёт ссылку на условия, а Включить WARP недоступна, пока не отмечено «Я прочитал условия Cloudflare WARP и принимаю их для этого аккаунта».

Это занимает несколько секунд; потом нода поднимает туннель. Если Cloudflare отказывает в новых аккаунтах с адреса панели («Cloudflare сейчас отказывает в новых аккаунтах с адреса панели»), окно предложит Импортировать профиль wgcf.

Импорт профиля wgcf#

Нужен, когда регистрация с адреса панели не проходит. Сделайте файлы утилитой wgcf на компьютере, где она работает, и вставьте их или откройте кнопкой Открыть файл:

Файл Обязателен Что даёт
wgcf-profile.conf да Приватный ключ и пир. Нужны [Interface] с PrivateKey и [Peer].
wgcf-account.toml нет Токен доступа. Без него не работает Перечитать у Cloudflare, а Удалить аккаунт удаляет аккаунт только здесь, не у Cloudflare.

Карточка WARP#

Рядом с заголовком карточки видно, откуда аккаунт (Зарегистрирован здесь или Импортирован), его тип (free или plus) и дата-центр Cloudflare по последней проверке.

Состояния#

Состояние Что значит
Не настроен На ноде нет аккаунта.
Ждём ноду Аккаунт есть, но нода ещё не отчиталась или не на связи.
Нет бэкенда На хосте нет ни модуля ядра WireGuard, ни /dev/net/tun.
Запускается Туннель поднимается. «Запуск: проверка не проходит», если проверки продолжают падать.
Работает Рукопожатие и проверки проходят. «Работает: проверка не прошла», если не прошла последняя.
Не работает Не проходят рукопожатие или проверки.
На паузе Вы поставили его на паузу.

Состояние связи#

  • Рукопожатие — когда туннель последний раз завершил рукопожатие с Cloudflare.
  • Эндпоинт — адрес и порт Cloudflare, которые сейчас используются.
  • Трафик — байты внутрь и наружу через туннель.
  • Cloudflare и Другой сайт — две проверки через туннель: одна до Cloudflare, другая до сайта вне его. Каждая показывает ок со временем ответа, медленно (дольше 2 секунд) или не ответил (ничего за 6 секунд).
  • «Проверено: N с назад». Нода проверяет каждые 30 секунд, а пока туннель поднимается — каждые 5. Серия сбоев видна как «3 неудачные проверки подряд».
  • Подробности — бэкенд WireGuard, флаг от самого Cloudflare (warp=on, warp=plus или warp=off) и проставляются ли в пакеты reserved-байты аккаунта.

Когда проверка падает, карточка словами говорит, что случилось и что это значит: Cloudflare не ответил через WARP, трафик идёт не через WARP (warp=off), рукопожатия не было больше 3 минут, рукопожатия ещё не было, интерфейс не поднят, на хосте нет WireGuard.

Самовосстановление#

Пока туннель лежит, нода идёт по лестнице, по шагу на каждую неудачную проверку:

  1. заново настраивает маршруты, правила и устройство;
  2. пробует другие адреса и порты Cloudflare: порты 2408, 500, 1701 и 4500, сначала эндпоинт IPv4, потом IPv6, если он есть у аккаунта;
  3. просит панель заново прочитать аккаунт у Cloudflare (для этого нужен токен доступа; ничего не создаётся);
  4. сдаётся, и карточка пишет Нужно твоё внимание.

После последнего шага она 10 минут отдыхает, но после каждой неудачной проверки всё равно пробует следующий адрес, а потом начинает сначала. Карточка показывает, на каком шаге она сейчас («Пробую восстановить: сменил адрес и порт на …»).

Кнопки#

Кнопка Когда Что делает
Перезапустить WARP Туннель лежит Пауза и возобновление одним действием: нода сносит туннель и поднимает его заново, лестница начинается сначала. Если нода не успела подтвердить паузу, возобновление всё равно уходит: «WARP снова включён, но нода не подтвердила паузу — загляни через минуту».
Зарегистрировать заново Cloudflare больше не знает аккаунт (отозван) Регистрирует новый аккаунт и одним шагом ставит его на место старого; старое устройство удаляется у Cloudflare. Окно с условиями то же, что у Включить WARP.
Перечитать у Cloudflare У аккаунта есть токен доступа Заново читает у Cloudflare эндпоинт, адреса и id клиента. Ничего не создаёт.
Пауза / Возобновить Всегда Пауза сносит туннель. Окно называет профили, которые остановятся, и сколько подключений идёт через них сейчас. Аккаунт на паузе возобновляют, а не перезапускают.
Удалить аккаунт Всегда Для подтверждения нужно ввести имя ноды и заново подтвердить вход. Нода теряет WARP, профили с выходом через WARP останавливаются. Если токен сохранён, устройство удаляется и у Cloudflare. Потом можно зарегистрировать или импортировать другой аккаунт.

Некоторые проблемы решает не кнопка, а вы. Карточка их называет:

  • таблицу маршрутов, которую занимает WARP (51820), держит другая программа, чаще всего wg-quick: освободите таблицу или остановите другой туннель;
  • другая программа занимает приоритеты правил маршрутизации, нужные WARP (90 и 110);
  • сетевой интерфейс с именем mgwarp уже есть, и он не от WARP;
  • нода не смогла применить аккаунт: причина в событиях ноды.

IPv4 и IPv6#

  • Эндпоинт Cloudflare хранится в аккаунте как IP-адреса, никогда как имя. Нода сначала пробует эндпоинт IPv4 на всех портах, потом IPv6, если он есть у аккаунта.
  • У новых аккаунтов часто нет IPv6-адреса внутри туннеля. Тогда выход через WARP соединяется только по IPv4, и адреса, доступные только по IPv6, через WARP не открываются.
  • Нода без IPv6 для WARP не помеха: доктор отметит, что WARP идёт через свой IPv4-адрес.
  • Имена разрешаются резолверами из DNS для трафика пользователей ноды, так же как для прямого выхода. См. DNS.

Что нужно хосту#

Модуль ядра WireGuard или /dev/net/tun для userspace. Нода, установленная со старым юнитом службы, может прятать /dev/net/tun от агента; один раз выполните mistgate-node install текущим бинарником, чтобы юнит переписался.

Параметры регистрации#

Две вещи, связанные с регистрацией, есть не в админке, а только в API (WarpService.GetWarpRegistrationParams и UpdateWarpRegistrationParams, только для владельца):

  • значения, из которых собирается запрос регистрации (версия API, user agent, версия клиента и отпечаток TLS). Cloudflare время от времени меняет то, что принимает. Пустое значение заменяется встроенным, а запрос чтения возвращает встроенные значения рядом с вашими;
  • автоматическая перерегистрация, по умолчанию выключена. Если она включена и Cloudflare отзывает зарегистрированный аккаунт, панель сама регистрирует новый — не чаще раза в час на ноду. Включая её, вы принимаете условия Cloudflare и для этих будущих аккаунтов.

См. API.

Важно

каждая нода пользуется одним бесплатным потребительским аккаунтом WARP, и через него идёт трафик всех, кто на ней сидит. Cloudflare может ограничить или приостановить такой аккаунт; тогда профили с выходом через WARP будут лежать, пока вы не зарегистрируете или не импортируете другой. Не полагайтесь на WARP там, где сбой недопустим.

Править страницу на GitHub