В первой части мы разобрали теорию работы SNI-прокси и Smart DNS, а также настроили всю систему вручную — от веб-сервера Nginx/Angie и DNS-сервера AdGuard Home/Blocky до защиты Firewall. В конце я упомянул утилиту Flowgate, которая автоматизирует весь этот процесс.
Судя по комментариям, у многих возникли вопросы по её использованию. Поэтому я подготовил пошаговую инструкцию, которая поможет развернуть полностью рабочий шлюз на чистом VPS с нуля, используя Flowgate. В результате вы получите работающий доступ к ChatGPT, Claude и другим сервисам без необходимости вручную править конфигурационные файлы.
Что понадобится
VPS с зарубежным IP-адресом (любая локация, где доступны нужные вам сервисы).
Операционная система: Debian 12/13 или Ubuntu 22.04/24.04 (рекомендую Debian, если хотите минимальное количество предустановленных пакетов).
Доменное имя (потребуется для настройки шифрованного DNS DoH/DoT).
Терминал и 10 минут времени.
Требования к ресурсам: Решение очень легкое. Минимального тарифа (1 vCPU, 512 MB RAM) будет достаточно.
Шаг 1: Подготовка сервера
Подключаемся к серверу по SSH, обновляем список пакетов, устанавливаем базовые зависимости:
ssh root@IP_ВАШЕГО_VPS
apt update && apt install -y curl wget gnupg ca-certificates python3 python3-yaml
Какие-то пакеты из этого списка могут быть уже установлены ранее в зависимости от образа VPS, это нормально. В этот список входят и те пакеты, которые понадобятся для установки большинства компонентов вручную.
Шаг 2: Установка Angie
Angie — это веб-сервер (форк Nginx), который нам нужен для работы SNI-прокси. Его главное преимущество в данном случае — встроенная поддержка ACME, которая позволяет автоматически получать и обновлять SSL-сертификаты.
Добавляем репозиторий и устанавливаем:
curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
https://angie.software/keys/angie-signing.gpg
echo "deb https://download.angie.software/angie/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" \
| tee /etc/apt/sources.list.d/angie.list
apt update && apt install -y angie
Шаг 3: Проверка порта 53
DNS-сервер должен работать на 53 порту, даже если мы не будем светить его наружу. В Ubuntu и Debian этот порт часто занят системной службой systemd-resolved.
Проверим, занят ли порт:
ss -tlnup | grep :53
Если вывод команды пустой — порт свободен, можно переходить к следующему шагу.

Если вы видите процессы systemd-resolve, службу нужно отключить, чтобы освободить порт для Blocky:
systemctl stop systemd-resolved
systemctl disable systemd-resolved
# Настраиваем DNS для самого сервера (чтобы он мог разрешать доменные имена)
rm -f /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Примечание: В некоторых минимальных образах на VPS эта служба может быть отключена по умолчанию.
Шаг 4: Установка Flowgate и Blocky
Blocky — быстрый DNS-сервер с поддержкой блокировки рекламы и гибкой настройки.
Flowgate — утилита управления, которая связывает Blocky и Angie.
Рекомендуемый способ: Установка из APT-репозитория
Для удобства обновления и управления пакетами рекомендую использовать APT-репозиторий:
# Добавляем GPG-ключ репозитория
curl -fsSL https://crim50n.github.io/flowgate-repo/key.gpg | sudo tee /usr/share/keyrings/flowgate.asc > /dev/null
# Добавляем репозиторий
echo "deb [signed-by=/usr/share/keyrings/flowgate.asc] https://crim50n.github.io/flowgate-repo stable main" | sudo tee /etc/apt/sources.list.d/flowgate.list
# Обновляем список пакетов и устанавливаем
apt update
apt install -y flowgate blocky
# Включаем службу синхронизации конфигурации
systemctl enable --now flowgate-sync.path
Преимущества этого способа:
Автоматические обновления через
apt upgradeПростота установки и удаления
Доступ к исходным кодам через
apt source flowgate
Альтернатива: Установка из .deb файлов
Если по каким-то причинам вы не хотите добавлять репозиторий, можно установить пакеты напрямую:
cd /tmp
wget -q https://github.com/crim50n/flowgate/releases/download/v1.1.3/flowgate_1.1.3-1_all.deb
wget -q https://github.com/crim50n/blocky-deb/releases/download/v0.28.2-4/blocky_0.28.2-4_amd64.deb
# Устанавливаем пакеты (префикс ./ обязателен)
apt install -y ./blocky_0.28.2-4_amd64.deb ./flowgate_1.1.3-1_all.deb
# Включаем службу синхронизации
systemctl enable --now flowgate-sync.path
Альтернатива: Ручная установка
Если вы используете дистрибутив, не основанный на Debian (например, CentOS, AlmaLinux или любой другой) или просто хотите усложнить себе жизнь, установку можно выполнить вручную.
Установка Blocky:
cd /tmp
wget -q https://github.com/0xERR0R/blocky/releases/download/v0.24/blocky_v0.24_Linux_x86_64.tar.gz
tar -xzf blocky_v0.24_Linux_x86_64.tar.gz
mv blocky /usr/local/bin/
chmod +x /usr/local/bin/blocky
# Проверка версии
blocky version
Создаем пользователя и systemd-сервис:
useradd -r -s /usr/sbin/nologin blocky
mkdir -p /etc/blocky
chown blocky:blocky /etc/blocky
cat > /etc/systemd/system/blocky.service << 'EOF'
[Unit]
Description=Blocky DNS Proxy
Documentation=https://0xerr0r.github.io/blocky/
After=network.target
[Service]
Type=simple
User=blocky
Group=blocky
ExecStart=/usr/local/bin/blocky --config /etc/blocky/config.yml
Restart=on-failure
RestartSec=5
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
Установка Flowgate:
cd /tmp
git clone --depth 1 https://github.com/crim50n/flowgate.git
cd flowgate/flowgate
make install INIT_SYSTEM=systemd
Для систем без systemd: используйте
make install INIT_SYSTEM=noneи настройте автозапуск служб средствами вашей системы инициализации.
Шаг 5: Настройка конфигурации
Запустите команду инициализации. Flowgate определит внешний IP сервера, создаст конфигурацию для Blocky и настроит Angie для проксирования трафика.
flowgate init

Проверяем статус служб:
flowgate status

Шаг 6: Проверка работы
Убедимся, что DNS-сервер корректно обрабатывает запросы. Для проверки используем утилиту dig (из пакета dnsutils).
Проверяем домен, который должен проксироваться (например, chatgpt.com):
apt install -y dnsutils
dig @127.0.0.1 chatgpt.com +short

В ответе должен вернуться IP-адрес вашего VPS. Это означает, что Smart DNS работает и перенаправляет трафик на ваш прокси.
Проверяем обычный домен (например, ya.ru):
dig @127.0.0.1 ya.ru +short
Здесь должны вернуться реальные IP-адреса Яндекса.
Шаг 7: Настройка DNS-over-HTTPS (DoH)
Для безопасного использования DNS (чтобы провайдер не мог перехватывать или подменять DNS-запросы) настроим шифрование.
Вам понадобится доменное имя (например, dns.example.com), направленное на IP вашего VPS.
Варианты доменов:
Собственный домен (рекомендуется): Зарегистрируйте домен у регистратора (~$1/год) и добавьте A-запись, указывающую на IP вашего VPS.
Динамический DNS (бесплатно): Существуют бесплатные сервисы динамического DNS (например, DuckDNS, FreeDNS и другие). Зарегистрируйтесь на любом из них, создайте поддомен и настройте его на IP вашего VPS.
Важно: У некоторых бесплатных DNS-сервисов бывают проблемы со стабильностью NS-серверов, что может приводить к временным ошибкам при получении сертификатов Let's Encrypt. Обычно помогает повторная попытка через несколько минут. Для production-использования рекомендуется собственный домен.
flowgate dns dns.example.com
# или для динамического DNS:
flowgate dns dns.your-subdomain.yourdyndns.org
Эта команда автоматически:
Настроит параметры http-блока Angie (resolver, variables_hash_bucket_size)
Получит SSL-сертификат через ACME
Настроит Angie на приём DoH/DoT запросов

Проверка выпуска сертификата:
Если в выводе команды вы видите ошибки ACME или сертификат не был выпущен, проверьте:
# Убедитесь, что домен резолвится на ваш сервер
dig +short dns.example.com
# Проверьте, что порты 80 и 443 открыты
ss -tlnp | grep -E ':80|:443'
# Посмотрите логи Angie для диагностики
tail -20 /var/log/angie/error.log
# Проверьте наличие сертификата
ls -la /var/lib/angie/acme/
Если сертификат выпущен успешно, вы увидите директорию вида acme_dns_example_com/ с файлами certificate.pem и private.key.
Частые причины ошибок:
Домен не указывает на IP вашего сервера
Порт 80 заблокирован firewall (нужен для ACME HTTP-01 challenge)
Превышен лимит запросов Let's Encrypt (5 сертификатов на домен в неделю)
Нестабильные NS-серверы у бесплатных DNS-сервисов
Теперь ваш DNS-сервер доступен по адресам:
DoH:
https://dns.example.com/dns-queryDoT:
dns.example.com(порт 853)
Проверка работы DoT:
apt install -y knot-dnsutils
kdig @dns.example.com -p 853 +tls chatgpt.com
Вы должны увидеть IP вашего VPS в ответе, что подтверждает работу Smart DNS через зашифрованное соединение.
Шаг 8: Настройка безопасности и клиентов
Теперь осталось защитить сервер и настроить ваши устройства для использования нового DNS-сервера. Подробные инструкции по настройке Firewall и для каждой платформы (Android, iOS, Windows, браузеры, роутеры) есть в первой части статьи.
Основные команды Flowgate
Управление осуществляется через консольную утилиту (я специально не рассматриваю веб-интерфейс, так как для большинства пользователей он излишен, а настраивается достаточно просто):
# Добавить домен в список проксируемых
flowgate add notion.so
# Удалить домен из списка
flowgate remove notion.so
# Настроить обратный прокси для локального сервиса
# (например, для веб-интерфейса Flowgate, если вы решите его использовать)
flowgate service flowgate.example.com 5000
# Показать статус служб и список доменов
flowgate status
Возможные проблемы
Ошибка "address already in use" при запуске Blocky
Обычно означает, что порт 53 занят другой службой. Вернитесь к Шагу 3 и убедитесь, что systemd-resolved отключен.
Ошибки конфигурации Angie
Используйте команду angie -t для диагностики. Flowgate автоматически добавляет необходимые параметры (resolver, variables_hash_bucket_size) при синхронизации.
Заключение
Мы развернули собственный шлюз, который позволяет пользоваться AI-сервисами без VPN-клиентов на устройствах. Решение работает прозрачно для приложений, использует шифрованный DNS и потребляет минимум ресурсов.
Буду признателен за ваши отзывы и предложения в комментариях! Конечная цель проекта - сделать из утилиты одну большую кнопку с надписью "сделать хорошо", так что работы предостаточно.
