В первой части мы разобрали теорию работы 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

Если вывод команды пустой — порт свободен, можно переходить к следующему шагу.

Проверка порта 53
Проверка порта 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
Инициализация Flowgate

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

flowgate status
Статус служб Flowgate
Статус служб Flowgate

Шаг 6: Проверка работы

Убедимся, что DNS-сервер корректно обрабатывает запросы. Для проверки используем утилиту dig (из пакета dnsutils).

Проверяем домен, который должен проксироваться (например, chatgpt.com):

apt install -y dnsutils
dig @127.0.0.1 chatgpt.com +short
Проверка DNS для ChatGPT
Проверка DNS для ChatGPT

В ответе должен вернуться 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 запросов

Успешная настройка DNS домена
Успешная настройка DNS домена

Проверка выпуска сертификата:

Если в выводе команды вы видите ошибки 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-query

  • DoT: 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 и потребляет минимум ресурсов.

Буду признателен за ваши отзывы и предложения в комментариях! Конечная цель проекта - сделать из утилиты одну большую кнопку с надписью "сделать хорошо", так что работы предостаточно.

Комментарии (2)


  1. saipr
    12.01.2026 06:57

    Буду признателен за ваши отзывы и предложения в комментариях!

    На мой взгляд, это статья может служить (помимо своего целевого назначения) образцом для написания аналогичных статей по настройке того или иного функционала.


    1. crims0n_ru Автор
      12.01.2026 06:57

      Спасибо! Рад, что вам понравился формат статьи, но моей заслуги здесь минимум: я просто пошагово описал свои действия.