Cloudflare WARP даёт серверу исходящий адрес Cloudflare: это удобно для доступа к ресурсам только по IPv6 или для смены видимого исходящего IP. На удалённой машине классическая ловушка в том, что режим WARP по умолчанию перехватывает таблицу маршрутизации и обрывает ваш SSH-сеанс. В этом руководстве два безопасных способа для VPS Linux Infrawire: официальный клиент в режиме прокси и wgcf с WireGuard и частичной маршрутизацией.
📋 Требования
- VPS с Ubuntu 24.04 или Debian 12 и доступом по SSH под root (в личном кабинете вы найдёте IP-адрес и пароль root вашего VPS).
- Записанный отдельно публичный IP вашего VPS (
VPS_IP). - Возможность открыть консоль VPS на случай, если изменение сети заблокирует доступ.
- Установленные пакеты
curl,gpgиlsb-release.
📦 Установка официального клиента
Добавьте репозиторий Cloudflare и установите пакет:
Bashapt update && apt install -y curl gpg lsb-release curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/cloudflare-client.list apt update && apt install -y cloudflare-warp systemctl enable --now warp-svc
🛡️ Режим прокси: SSH остаётся жив
В режиме прокси WARP не трогает таблицу маршрутизации. Он лишь открывает локальный порт SOCKS5, которым вы пользуетесь по необходимости. Выбирайте режим до подключения, а не после.
Bashwarp-cli --accept-tos registration new warp-cli mode proxy warp-cli proxy port 40000 warp-cli connect warp-cli status
Прокси слушает только 127.0.0.1:40000. Чтобы пропустить команду через него:
Bashcurl -x socks5h://127.0.0.1:40000 https://www.cloudflare.com/cdn-cgi/trace
Схема socks5h важна: благодаря ей DNS-запросы тоже идут через прокси. Чтобы остановить, выполните warp-cli disconnect.
🔀 Альтернатива: wgcf и WireGuard
Если вам нужен интерфейс WireGuard в ядре, wgcf создаёт учётную запись WARP и генерирует стандартную конфигурацию. Скачайте релиз wgcf под вашу архитектуру со страницы релизов проекта на GitHub, затем:
Bashapt install -y wireguard-tools chmod +x wgcf_linux_amd64 && mv wgcf_linux_amd64 /usr/local/bin/wgcf cd /root && wgcf register && wgcf generate cp wgcf-profile.conf /etc/wireguard/wgcf.conf
Пока не запускайте его: сгенерированный профиль направляет весь трафик в туннель и оборвёт SSH.
✂️ Частичная маршрутизация и только IPv6
Отредактируйте /etc/wireguard/wgcf.conf. Чтобы через WARP шёл только IPv6, а IPv4 (и ваш SSH-сеанс) остался нетронутым, сузьте AllowedIPs, удалите строку DNS и уменьшите MTU:
INI1[Interface] 2MTU = 1280 3PostUp = ip rule add from VPS_IP lookup main 4PostDown = ip rule del from VPS_IP lookup main 5 6[Peer] 7AllowedIPs = ::/0 8Endpoint = engage.cloudflareclient.com:2408
Оставьте строки с ключами и Address, созданные wgcf. Пара ip rule гарантирует, что ответы с VPS_IP всегда идут по основной таблице, что защищает входящие подключения. Если вы подключаетесь только по IPv4, позже можно заменить ::/0 на 0.0.0.0/0, ::/0, чтобы туннелировать всё. Включите интерфейс:
Bashsystemctl enable --now wg-quick@wgcf
✅ Проверка
Убедитесь, что WARP работает на нужном пути:
Bashcurl -s https://www.cloudflare.com/cdn-cgi/trace | grep warp curl -6 -s https://www.cloudflare.com/cdn-cgi/trace | grep -E 'ip=|warp=' wg show wgcf
warp=on для IPv6-запроса и свежий handshake в wg show означают, что туннель работает. Обычный IPv4-запрос по-прежнему должен показывать warp=off.
🛠️ Устранение неполадок
Доступ по SSH потерян сразу после подключения. WARP работал в режиме полного туннеля. Откройте консоль VPS и выполните warp-cli disconnect (или systemctl stop wg-quick@wgcf), а перед повторным подключением переключитесь на warp-cli mode proxy. Если вы заходите на сервер по IPv6, не используйте ::/0 в AllowedIPs.
DNS перестал разрешать имена. wg-quick переписывает резолвер, если в профиле есть строка DNS. Удалите её или используйте прокси socks5h, чтобы разрешение шло на стороне Cloudflare.
Большие страницы зависают или TLS застревает. Почти всегда это проблема MTU. Оставьте MTU = 1280 в профиле WireGuard и проверьте командой ping -M do -s 1200 1.1.1.1.
🎉 Теперь ваш VPS может использовать Cloudflare WARP по требованию, не обрывая SSH-сеанс.