Cloudflare WARP на вашем VPS без официального клиента.
Нативный WireGuard + умный watchdog с авто-ротацией IP. Сделан для работы с Xray-core, Remnawave, 3X-UI и Marzban.
Хостинги блокируют, Cloudflare шейпит трафик из датацентров — WARP перестаёт работать. Стандартный warp-cli жирный и капризный.
VPS-WARP поднимает туннель через wg-quick и ставит systemd-watchdog, который каждые 3 минуты пингует 1.1.1.1, 8.8.8.8 и 9.9.9.9 через интерфейс. Если пинг упал или хэндшейк не обновлялся больше 3 минут — скрипт сам меняет endpoint на случайный из пула Cloudflare и перезапускает туннель. Тихо, без вашего участия.
- Нативный WireGuard — никаких проприетарных демонов Cloudflare
- Авто-ротация IP — при падении соединения сам находит живой endpoint из пула
162.159.{192,193,195}.x - Изолированная маршрутизация (
Table = off) — WARP не трогает основной трафик сервера, только то что вы явно туда направите - TCP MSS Clamping — iptables-правила на
OUTPUTиFORWARD, предотвращают зависания на тяжёлых сайтах - Только IPv4 — IPv6-эндпоинты вырезаются из конфига, нет проблем с маршрутизацией у провайдеров
- Поддержка WARP+ — опционально, ввод лицензионного ключа при установке
- CLI-утилита
vps-warp— статус, трафик, управление
bash <(curl -fsSL https://raw.githubusercontent.com/tagashi666/vps-warp/main/warp_install.sh)Запускать от root. Скрипт спросит язык и опционально ключ WARP+.
| Команда | Описание |
|---|---|
vps-warp |
Статус туннеля: IP, endpoint, handshake, трафик |
vps-warp start |
Запустить интерфейс |
vps-warp stop |
Остановить интерфейс |
vps-warp restart |
Перезапустить и сменить endpoint |
vps-warp log |
Логи watchdog (история ротации IP) |
После установки скрипт выведет локальный IP туннеля (вида 172.16.0.x). Есть два способа направить трафик через WARP.
Добавьте в секцию outbounds:
{
"tag": "warp-out",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIP"
},
"streamSettings": {
"sockopt": {
"interface": "warp",
"tcpFastOpen": true
}
}
}Если sockopt.interface не поддерживается вашей версией Xray:
{
"tag": "warp-out",
"protocol": "freedom",
"sendThrough": "<LOCAL_WARP_IP>",
"settings": {
"domainStrategy": "UseIP"
}
}<LOCAL_WARP_IP> — IP, который вывел скрипт после установки.
{
"type": "field",
"domain": [
"geosite:openai",
"domain:instagram.com",
"domain:google.com"
],
"outboundTag": "warp-out"
}Xray/Sing-box
│
│ (трафик для заблокированных доменов)
▼
warp (wg-quick интерфейс)
│
│ WireGuard UDP
▼
162.159.x.x:2408 ←── watchdog меняет endpoint при блокировке
│
▼
Cloudflare WARP → целевой ресурс
Watchdog (warp-watchdog.timer) срабатывает каждые 3 минуты:
- Проверяет, активен ли сервис
- Смотрит возраст последнего handshake
- Пингует три DNS-резолвера через интерфейс
warp - Если что-то не так — меняет
Endpointв/etc/wireguard/warp.confи делаетsystemctl restart wg-quick@warp
systemctl disable --now wg-quick@warp warp-watchdog.timer warp-watchdog.service
rm -rf /opt/vps-warp /etc/wireguard/warp.conf /usr/local/bin/vps-warp
rm -f /etc/systemd/system/warp-watchdog.{service,timer}
systemctl daemon-reload
apt remove --purge -y wireguardMIT — LICENSE