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

