Когда вы оказываетесь за границей — в отпуске, командировке или после релокации — может неожиданно выясниться, что ваш привычный Netflix «похудел». Одни сериалы и фильмы исчезли, другие появились, а некоторые премьеры выходят только в США или Великобритании. Всё дело в региональных лицензиях: каталоги у Netflix различаются по странам, и то, что доступно в Лондоне или Нью-Йорке, может быть недоступно в Москве, Белграде или Берлине.
На форумах и в блогах чаще всего советуют использовать «специальный VPN для Netflix». Но у такого решения есть очевидные проблемы: коммерческие VPN-сервисы работают на ограниченных пулах IP, которые быстро попадают в базы «подозрительных адресов» и блокируются. Ещё хуже, если попытаться просто направить клиент Netflix через произвольный прокси или VPS в дата-центре — такие IP легко вычисляются по ASN, обратному DNS и истории использования, и блокируются ещё быстрее.
Cloudflare WARP устроен иначе. Его официальная цель — улучшить приватность и ускорить соединение, а не предоставлять смену геолокации. Поэтому стриминговые сервисы обычно не блокируют WARP: он не воспринимается ими как «сервис обхода», а его IP-адреса выглядят как нормальные резидентские, а не как дата-центровые.
Из коробки WARP всегда подключается к ближайшему узлу Cloudflare, фактически «садя» вас в вашей текущей стране. Но если направить трафик WARP через SOCKS5-прокси (например, Dante) в США или Великобританию, именно этот прокси станет точкой выхода. Для WARP это выглядит так: он видит, что вы пришли с адреса прокси, определяет страну этого адреса и подключает вас к своей инфраструктуре именно там. В итоге Netflix будет считать, что вы находитесь в США или UK, и покажет «американский» или «британский» каталог. Другими словами, используя прокси, мы можем «зайти» в WARP уже в нужной нам стране — а не в той, где реально находимся.
В этой статье разберём упрощённую настройку Dante SOCKS5-прокси, специально предназначенного для того, чтобы пропускать трафик WireGuard WARP через прокси. Идея проста: нам не нужен полноценный SOCKS-прокси, который обрабатывает все возможные соединения. Достаточно минимальной, безопасной конфигурации, которая разрешает WARP отправлять только UDP-пакеты и блокирует всё остальное. Такой подход делает схему предсказуемой, управляемой и безопасной.
Схема работы выглядит так:
Client (WireGuard) → Dante SOCKS5 (Ubuntu 24) → Cloudflare WARP (UDP/2408)Базовая рабочая конфигурация (проверенный вариант)
Только IPv4 — в этой конфигурации IPv6 не используется.
Прослушивание на
0.0.0.0:1080— привязка к реальному интерфейсу, чтобы клиент получал корректныйBND.ADDR.Аутентификация по логину/паролю — создаём системного пользователя
danteuserбез shell-доступа.Разрешён только SOCKS5 UDP ASSOCIATE — причём только к WARP endpoint на порту
2408.Явное правило
udpreply— чтобы ответы от сервера возвращались клиенту.Всё остальное блокируется — любые TCP (CONNECT/BIND) и произвольные UDP-запросы.
Без закрепления диапазона UDP-портов — Dante использует эфемерные сокеты, а возвратный трафик обычно пропускается stateful-файрволами автоматически.
Шаг 1. Установка Dante и создание пользователя
Сначала обновим пакеты и установим сам сервер Dante:
sudo apt update
sudo apt install -y dante-serverТеперь создадим отдельного системного пользователя, который будет использоваться только для аутентификации в SOCKS5. У него не будет домашней папки и shell-доступа (чтобы исключить интерактивный вход в систему):
# Создаём системного пользователя без shell
sudo useradd --system --no-create-home --shell /usr/sbin/nologin danteuser
# Задаём пароль для этого пользователя (он понадобится клиенту для подключения)
sudo passwd danteuserДалее нужно определить, какой сетевой интерфейс будет использовать Dante. Это важно, чтобы прокси правильно возвращал клиенту адрес (BND.ADDR):
ip -o -4 route get 1.1.1.1 | awk '{print $5}'На VPS чаще всего это будет что-то вроде ens3 или eth0. Сохраните это имя — оно понадобится в конфигурации.
Шаг 2. Рабочая конфигурация — жёсткая привязка к одному IP (рекомендуется)
Файл конфигурации находится по пути: /etc/danted.conf.
Перед редактированием учтите:
замените
ens3на название интерфейса, найденное на предыдущем шаге;замените
162.159.192.1/32на точный IP-адрес WARP endpoint (при использовании «буквального» IP обязательно указывать маску/32).
Пример конфигурации:
# Логирование в syslog
logoutput: syslog
# Привязка к реальному интерфейсу, чтобы UDP ASSOCIATE возвращал корректный BND.ADDR
internal: ens3 port = 1080
external: ens3
# Аутентификация
clientmethod: none
socksmethod: username
# Разделение привилегий
user.privileged: root
user.notprivileged: nobody
# Кто может подключаться к прокси (аутентификация всё равно проверяется на этапе SOCKS)
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
# --- Разрешить ТОЛЬКО UDP ASSOCIATE к WARP endpoint на 2408 ---
socks pass {
from: 0.0.0.0/0
to: 162.159.192.1/32 port = 2408
command: udpassociate
protocol: udp
log: connect disconnect error
}
# --- Разрешить UDP-ответы от endpoint обратно клиенту ---
socks pass {
from: 162.159.192.1/32 port = 2408
to: 0.0.0.0/0
command: udpreply
protocol: udp
log: connect disconnect error
}
# --- Заблокировать всё остальное (TCP и UDP) ---
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error
}
Вариант экспериментальный — использование hostname
Можно указывать доменное имя вместо IP. Однако если DNS вернёт несколько адресов, Dante будет использовать любой из них, и предсказать поведение сложнее.
# Разрешить UDP ASSOCIATE к домену:2408
socks pass {
from: 0.0.0.0/0
to: engage.cloudflareclient.com port = 2408
command: udpassociate
protocol: udp
log: connect disconnect error
}
# Разрешить UDP-ответы от домена:2408
socks pass {
from: engage.cloudflareclient.com port = 2408
to: 0.0.0.0/0
command: udpreply
protocol: udp
log: connect disconnect error
}
📌 Рекомендация: для стабильной работы лучше использовать literal IP с маской
/32.
Шаг 3. Запуск и проверка
a) Проверка синтаксиса конфигурации (foreground)
Перед тем как запускать сервис, убедимся, что конфигурация корректна:
sudo /usr/sbin/danted -f /etc/danted.conf -N -DЕсли всё настроено правильно, вы увидите логи запуска.
Остановить можно сочетанием Ctrl + C.
b) Запуск как сервис systemd
Включим автозапуск и сразу поднимем сервис:
sudo systemctl enable --now danted
sudo systemctl --no-pager status dantedenable --now— активирует сервис сразу и добавляет его в автозагрузку.status— показывает текущее состояние и ошибки при старте.
c) Проверка, что Dante слушает порт 1080 (только IPv4)
ss -ltnp | grep :1080Если всё верно, увидите процесс danted, привязанный к интерфейсу и порту.
d) Проверка блокировки TCP (ожидаемое поведение)
Попробуем выполнить HTTP-запрос через SOCKS-прокси. Он должен завершиться ошибкой, так как CONNECT-запросы мы блокируем:
curl -v -x socks5h://danteuser:ПАРОЛЬ@IP_СЕРВЕРА:1080 https://example.come) Логи в реальном времени
Запустите просмот�� логов и попробуйте подключиться клиентом WARP:
sudo journalctl -u danted -fВ логах должны появиться записи о udpassociate и udpreply.
f) (Опционально) Быстрый просмотр UDP-пакетов
Чтобы убедиться, что пакеты реально уходят к Cloudflare WARP (порт 2408), можно воспользоваться tcpdump:
IFACE=$(ip -o -4 route get 1.1.1.1 | awk '{print $5}')
sudo tcpdump -ni "$IFACE" "udp and port 2408"Если всё настроено правильно, вы увидите обмен UDP-пакетами между сервером и WARP endpoint.
Шаг 4. Замеченные проблемы и их решения
В процессе настройки мы столкнулись с несколькими типичными ошибками. Вот краткий список и как их исправить:
Ошибка парсера рядом с
portпри указании IP
→ При использовании «буквального» IP нужно добавлять маску/32.
Пример:to: 162.159.192.1/32 port = 2408Клиент закрывается через ~5 секунд, в логах видно
@0.0.0.0.0
→ Такая ошибка возникает, если в конфиге указаноinternal: 0.0.0.0.
Решение: привяжитеinternal:к реальному интерфейсу (например,ens3), чтобыBND.ADDRбыл корректным.Ответы не доходят до клиента
→ Без отдельного правилаudpreplyответы от WARP endpoint не будут возвращаться. Нужно обязательно добавить правило, ограниченное нужным IP/портом.Нет закрепления диапазона UDP-портов
→ Dante по умолчанию использует эфемерные UDP-сокеты. Убедитесь, что firewall на сервере не блокирует их. Обычно stateful-файрволы разрешают обратный трафик автоматически, но если есть кастомные правила, их нужно проверить.
Шаг 5. Следующие шаги
Теперь, когда Dante настроен и проверен, можно перейти к следующему этапу — использовать его для запуска WARP через WireSock Secure Connect.
Сгенерировать WARP-конфиг с помощью wgcf
Установите wgcf на своём компьютере.
Зарегистрируйте WARP-аккаунт(
wgcf register) и создайте WireGuard-конфиг (wgcf generate).Получившийся
.confфайл можно импортировать в WireSock Secure Connect.
Указать Dante SOCKS5-прокси в WireSock Secure Connect
В настройках клиента задайте адрес вашего VPS, порт (1080), логин и пароль (
danteuser).Теперь трафик WARP будет идти через Dante, а точкой выхода станет выбранная страна (где развёрнут VPS).
Подключить другие устройства через Mobile Hotspot
WireSock Secure Connect полностью совместим с функцией Mobile Hotspot в Windows.
Запустите WARP через WireSock, затем включите раздачу Wi-Fi на ноутбуке.
Любое устройство (смарт-ТВ, приставка, телефон) сможет подключиться к этой сети и использовать WARP-трафик как будто напрямую.
Таким образом, настроив всего один ноутбук и VPS, вы получаете универсальный «шлюз» для всех домашних устройств с Netflix или другим стримингом.
Вот аккуратно сформулированный блок заключения, с упоминанием про DPI:
Заключение
Мы собрали минимальную и безопасную схему: Dante SOCKS5-прокси пропускает только UDP-трафик WARP и блокирует всё остальное. Такой прокси легко использовать вместе с WireSock Secure Connect и конфигурацией, сгенерированной утилитой wgcf. А благодаря совместимости WireSock с Mobile Hotspot достаточно одного ноутбука, чтобы раздать подключение на все устройства дома — телевизор, приставку или телефон с Netflix.
Отдельный плюс — устойчивость к анализу трафика. WireGuard-пакеты, «обёрнутые» в SOCKS5, выглядят иначе, чем прямой WireGuard-туннель, и их гораздо труднее надёжно распознать методами DPI (Deep Packet Inspection). Это добавляет дополнительный уровень стойкости против фильтрации и блокировок.
