MAATRIX / Блог / WARP+ через wgcf на Linux: настройка

WARP+ через wgcf на Linux: настройка

MAATRIX

Cloudflare WARP — это бесплатный туннель до сети Cloudflare поверх WireGuard, а WARP+ — его платная (или частично бесплатная через рефералки) версия с приоритетным маршрутом Argo. Официальный клиент cloudflare-warp на Linux временами капризничает с зависимостями и требует systemd-демон, который не всегда нужен. Утилита wgcf решает задачу проще: она регистрирует WARP-аккаунт через тот же недокументированный API, что и приложение, и отдаёт обычный .conf для стандартного WireGuard — без демона, без deb-репозитория Cloudflare, без лишнего процесса в фоне.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое wgcf и чем он отличается от официального клиента

wgcf — open-source утилита (Go, автор ViRb3), которая эмулирует регистрацию мобильного клиента Cloudflare WARP и превращает результат в конфиг WireGuard. Ключевая разница с cloudflare-warp:

cloudflare-warp (официальный)wgcf
Что ставитсяsystemd-демон + CLI warp-cliодин бинарник
Формат туннелявнутренний, через демонстандартный WireGuard .conf
Совместимостьтолько со своим клиентомлюбой WireGuard-клиент, роутер, NetworkManager
Гибкость конфигаограничена настройками CLIправите AllowedIPs, MTU, DNS вручную
Поддержка Cloudflareофициальнаянеофициальная (может сломаться при смене API)

Из таблицы виден и главный риск: wgcf опирается на приватный API, который Cloudflare не обязан поддерживать стабильным. Несколько раз за последние годы формат ответа менялся и требовал обновления wgcf — это нормально для такого рода инструментов, но держите бинарник в актуальной версии.

Установка wgcf на Linux

Бинарники публикуются на GitHub в релизах проекта ViRb3/wgcf. Ставится без сборки из исходников:

# скачать актуальный релиз под amd64 (проверьте версию на странице releases)
curl -fsSL -o wgcf https://github.com/ViRb3/wgcf/releases/latest/download/wgcf_linux_amd64
chmod +x wgcf
sudo mv wgcf /usr/local/bin/wgcf

wgcf --version

Если предпочитаете собрать сами — понадобится Go 1.20+:

git clone https://github.com/ViRb3/wgcf.git
cd wgcf
go build -o wgcf .
sudo install -m 755 wgcf /usr/local/bin/wgcf

Для генерации самого WireGuard-конфига дополнительно нужен пакет wireguard-tools — он же понадобится на этапе подключения:

sudo apt update && sudo apt install -y wireguard-tools   # Debian/Ubuntu
sudo dnf install -y wireguard-tools                      # Fedora/AlmaLinux

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Регистрация аккаунта и генерация конфига

Работа с wgcf — это два шага, оба выполняются в рабочей директории (там появятся файлы аккаунта и профиля).

mkdir -p ~/wgcf && cd ~/wgcf

# создаёт новый WARP-аккаунт и сохраняет его в wgcf-account.toml
wgcf register --accept-tos

# генерирует WireGuard-конфиг wgcf-profile.conf на основе данных аккаунта
wgcf generate

После register в wgcf-account.toml лежат приватный ключ устройства, ID аккаунта и служебный токен — файл эквивалентен паролю, храните с правами 600:

chmod 600 wgcf-account.toml

wgcf generate создаёт wgcf-profile.conf примерно такого вида:

[Interface]
PrivateKey = <ваш приватный ключ>
Address = 172.16.0.2/32
Address = 2606:4700:110:xxxx::2/128
DNS = 1.1.1.1
DNS = 2606:4700:4700::1111
MTU = 1280

[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408

Это уже рабочий туннель на бесплатном тарифе WARP (не WARP+). Обратите внимание на MTU = 1280 — Cloudflare сознательно занижает MTU из-за инкапсуляции WireGuard-over-WireGuard на их бэкенде; уменьшать его вручную обычно не нужно, а вот увеличивать — не стоит, поймаете фрагментацию.

Подключение: wg-quick или NetworkManager

Проще всего поднять туннель через wg-quick:

sudo cp wgcf-profile.conf /etc/wireguard/warp.conf
sudo wg-quick up warp

# проверка
curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp

В выводе curl строка warp=on подтверждает, что трафик действительно идёт через туннель (warp=plus — если активирован WARP+, о нём ниже). Погасить туннель: sudo wg-quick down warp.

Автозапуск при старте системы:

sudo systemctl enable wg-quick@warp

Если нужен постоянный туннель, но с исключениями (например, не заворачивать локальную сеть или SSH-сессию к самому серверу), правьте AllowedIPs в [Peer] — вместо 0.0.0.0/0 укажите нужные подсети, либо добавьте отдельные PostUp/PostDown правила ip route для сплит-туннелинга.

Для рабочего стола с NetworkManager конфиг импортируется как обычный WireGuard-профиль:

sudo nmcli connection import type wireguard file wgcf-profile.conf
nmcli connection up wgcf-profile

Активация WARP+ и реальные ограничения бесплатного лимита

По умолчанию wgcf register создаёт учётку на обычном (бесплатном, без приоритета) WARP. Чтобы получить WARP+ с маршрутизацией через Argo Smart Routing, нужен лицензионный ключ — либо купленный в приложении Cloudflare One, либо полученный по реферальной ссылке warp.plus/xxxxxxx от другого пользователя (Cloudflare начисляет обеим сторонам дополнительный объём трафика на приоритетном тарифе).

wgcf update --license-key ВАШ_КЛЮЧ
wgcf generate   # перегенерировать профиль с учётом нового статуса

Здесь и начинается ключевой нюанс, из-за которого многие разочаровываются в этой схеме: WARP+ по бесплатной/реферальной модели — это не «безлимитный премиум-VPN», а ограниченная квота приоритетного трафика в месяц. Точный размер квоты Cloudflare менял неоднократно за последние годы и завязывает его на количество рефералов и региональные акции — называть конкретную цифру гигабайт не будем, потому что на момент, когда вы читаете это, значение почти наверняка другое. Проверить свою квоту и остаток можно в wgcf-account.toml после wgcf update (там же поле с типом аккаунта) или в приложении Cloudflare One на другом устройстве, привязанном к тому же ключу.

Важно понимать, что происходит после исчерпания лимита: соединение не рвётся и не начинает резаться по скорости искусственно — трафик просто перестаёт идти через приоритетный маршрут Argo и обслуживается как обычный WARP. Для большинства сценариев (обход блокировок, шифрование на публичном Wi-Fi) разница малозаметна; выигрыш от WARP+ ощутим в первую очередь на маршрутах, где обычный путь до Cloudflare нестабилен или длинный.

Ограничения: когда WARP+ через wgcf — не замена своему VPN

Прежде чем полагаться на эту схему как на основной VPN, стоит трезво оценить, чем она отличается от сервера с WireGuard, поднятого самостоятельно:

  • Нет статического выделенного IP. Egress-адрес общий с тысячами других пользователей WARP — сервисы, которые банят по репутации IP (стриминг, банк-клиенты, антифрод-системы), могут блокировать WARP-диапазоны целиком, независимо от вашего поведения.
  • Нет проброса портов и входящих соединений. WARP — это исходящий туннель для клиента, поднять на нём сервер или принять входящее подключение нельзя, в отличие от своего WireGuard-сервера на VPS, где вы полностью управляете и Peer, и firewall.
  • Аккаунт может быть отозван. Массовая автоматическая регистрация через wgcf формально не запрещена, но Cloudflare оставляет за собой право ограничивать или банить нетипичные паттерны использования API.
  • Зависимость от неофициального инструмента. При изменении API регистрации wgcf может перестать работать до выхода новой версии — для критичного канала связи это неприемлемый риск.
  • Нет контроля над юрисдикцией и логами. Вы не знаете и не можете проверить политику хранения логов на стороне Cloudflare для конкретно вашего трафика — для задач, где это принципиально, разумнее держать собственный сервер в понятной юрисдикции.

Практичный вывод: WARP+ через wgcf — удобная бесплатная затычка для разового шифрования трафика на Linux без установки тяжёлого клиента, но не инфраструктурное решение. Если нужен предсказуемый канал с фиксированным IP, портами наружу и контролем над логами — своя связка WireGuard на арендованном сервере обходится в несколько раз надёжнее и при этом дешевле большинства «премиум» VPN-подписок.

Диагностика: если туннель не поднимается

Частые проблемы именно со связкой wgcf + wg-quick:

# проверить статус интерфейса и последний handshake
sudo wg show warp

# если handshake отсутствует — обычно проблема в MTU или в блокировке UDP 2408
sudo journalctl -u wg-quick@warp -n 50 --no-pager

Если wg show не показывает latest handshake вообще — вероятно, исходящий UDP на порт 2408 заблокирован провайдером или корпоративным firewall; попробуйте сменить Endpoint в конфиге на альтернативный IP Cloudflare (162.159.192.1:2408 или 162.159.193.10:2408 из документации проекта wgcf) либо порт 500/1701, которые тоже принимает WARP-бэкенд. Если хендшейк проходит, а трафика нет — почти всегда виновата маршрутизация: проверьте, что AllowedIPs не пересекается с локальной подсетью и что нет второго активного VPN-подключения одновременно — конфликт двух туннелей на одном устройстве описан в материале про второй туннель на телефоне, но та же логика применима и к десктопу.

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

wgcf — это легально?

Да, это open-source инструмент, использующий тот же публичный (хоть и недокументированный) API, что и официальное приложение Cloudflare WARP. Cloudflare явно не запрещает такие клиенты, но и не даёт на них гарантий поддержки.

Можно ли использовать один wgcf-профиль на нескольких устройствах одновременно?

Технически да — Cloudflare не проверяет число одновременных подключений так строго, как коммерческие VPN, но это против условий использования и может привести к более быстрому исчерпанию квоты WARP+ на аккаунте.

Чем WARP отличается от полноценного VPN для обхода блокировок?

WARP — это туннель до сети Cloudflare, а не до конкретной страны или сервиса; он шифрует и слегка меняет маршрут трафика, но не выдаёт вам «чистый» IP произвольной локации, как это делает собственный WireGuard-сервер в нужной юрисдикции.

wgcf generate перезаписывает файл конфига?

Да, каждый вызов перезаписывает wgcf-profile.conf заново на основе текущих данных wgcf-account.toml — если вы вручную правили AllowedIPs или Endpoint, сохраните изменения отдельно перед повторной генерацией.

Нужен ли root для wgcf register/generate?

Нет, эти команды работают от обычного пользователя — root нужен только на этапе wg-quick up, потому что поднятие сетевого интерфейса требует привилегий.

Как проверить, что трафик действительно идёт через WARP+, а не обычный WARP?

Запросите curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp — значение warp=plus означает активный приоритетный маршрут, warp=on — обычный бесплатный WARP без Argo.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →