Русский (Russian)

Cloudflare WARP на Linux VPS: warp-cli и wgcf

2 min
VPS/VDS-хостинг

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 и установите пакет:

Bash
apt 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, которым вы пользуетесь по необходимости. Выбирайте режим до подключения, а не после.

Bash
warp-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. Чтобы пропустить команду через него:

Bash
curl -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, затем:

Bash
apt 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:

INI
1[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, чтобы туннелировать всё. Включите интерфейс:

Bash
systemctl enable --now wg-quick@wgcf

✅ Проверка

Убедитесь, что WARP работает на нужном пути:

Bash
curl -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-сеанс.

Следите за последними предложениями, скидками и специальными акциями.

Смотреть акции

Мы используем файлы cookie

Аналитические cookie улучшают работу сайта. Данные не продаются третьим лицам. Подробнее в политике конфиденциальности.