RIDERHUB
Главная/RiderHub Secure/Настройка VLESS Reality на роутерах Keenetic через пакетный менеджер Entware / OPKG и Sing-box: весь домашний Wi-Fi под защитой в ноябре 2026 года
Инженерное руководство · 2026

Настройка VLESS Reality на роутерах Keenetic через пакетный менеджер Entware / OPKG и Sing-box: весь домашний Wi-Fi под защитой в ноябре 2026 года

Протокол: VLESS Reality·Шифрование: XTLS-Vision·Актуально для 2026 года

> **Автор:** Сетевой инженер и специалист по кибербезопасности RiderHub Secure

> **Дата публикации:** Ноябрь 2026 года

> **Совместимость:** KeeneticOS 4.x / 5.x (модели Titan, Hero, Hopper, Speedster, Giga, Viva, Ultra с USB-портом)

> **Уровень сложности:** Экспертный (Embedded Linux & Router Engineering)

---

1. Введение: Почему маршрутизация на роутере — безальтернативное решение в конце 2026 года

В условиях тотального внедрения комплексов ТСПУ 3.x и блокировок протоколов на уровне мобильных и фиксированных операторов настройка обхода ограничений на каждом клиентском устройстве (Smart TV, Apple TV, игровые консоли PlayStation 5 / Xbox Series X, умные колонки, смартфоны гостей) становится нерациональной и трудоемкой задачей. Более того, многие закрытые операционные системы (webOS от LG, Tizen от Samsung, tvOS) не поддерживают сторонние VPN-клиенты с поддержкой современных протоколов маскировки трафика.

Единственным профессиональным решением является вынос криптографического шлюза непосредственно на домашний роутер **Keenetic**.

Преимущества связки Keenetic + Entware + Sing-box:

1. **Прозрачность для клиентов:** Все устройства в домашней локальной сети (LAN/Wi-Fi) получают доступ к YouTube в 4K без буферизации, Discord, Instagram, Twitter/X, ChatGPT и заблокированным профильным IT-ресурсам без установки приложений на сами клиенты.

2. **Селективная маршрутизация на уровне ядра Linux (Smart Split-Tunneling):** Через VLESS Reality направляются **исключительно** запрещенные или замедляемые ресурсы. Российский банковский сектор (Сбер, Т-Банк/Тинькофф, ВТБ, Альфа-Банк), портал Госуслуг, стриминги (Кинопоиск, Иви, Okko) и сервисы Яндекса и VK идут напрямую через шлюз вашего провайдера с минимальным пингом и без блокировок со стороны антифрод-систем.

3. **Энергоэффективность и производительность:** Использование компилированного бинарного файла `sing-box` с аппаратной поддержкой криптографических инструкций ARMv7/ARMv8/MIPS обеспечивает пропускную способность до 300-600 Мбит/с даже на процессорах среднего уровня (MediaTek MT7621 / MT7981).

---

2. Подготовка роутера Keenetic и развертывание Entware (OPKG)

Для развертывания подсистемы Entware необходим роутер Keenetic с разъемом USB 2.0/3.0 и USB-накопитель (флешка или SSD) емкостью от 4 ГБ.

Шаг 1: Подготовка USB-накопителя

1. Подключите USB-накопитель к компьютеру.

2. Отформатируйте накопитель в файловую систему **Ext4** (рекомендуется) или **NTFS**. Использование FAT32 запрещено из-за отсутствия поддержки POSIX-прав доступа и символических ссылок.

3. Присвойте разделу метку тома, например: `ENTWARE`.

4. Вставьте накопитель в USB-разъем роутера Keenetic.

Шаг 2: Установка необходимых компонентов KeeneticOS

1. Перейдите в веб-интерфейс роутера: `http://192.168.1.1`.

2. Авторизуйтесь под учетной записью администратора.

3. Откройте раздел **Управление** -> **Общие настройки** -> в блоке **Обновление и компоненты** нажмите **Изменить набор компонентов**.

4. Убедитесь, что отмечены и установлены следующие модули:

* **Поддержка открытых пакетов (OpenKG / Entware)**

* **Протокол IPv6** (даже если провайдер не предоставляет IPv6, стек необходим для сетевых подсистем)

* **Модули ядра для сетевых фильтров Netfilter (ipset, iptables, xt_TPROXY)**

* **Поддержка файловой системы Ext4**

* **Служба интерфейса командной строки (SSH)**

5. Дождитесь перезагрузки роутера после установки компонентов.

Шаг 3: Активация репозитория Entware

1. Перейдите в веб-интерфейсе в раздел **Управление** -> **OPKG**.

2. В строке **Устройство хранения** выберите подключенный USB-накопитель (`ENTWARE`).

3. Нажмите кнопку **Установить** или сохраните настройки. KeeneticOS автоматически загрузит базовый образ окружения Entware и развернет файловую структуру в каталоге `/opt`.

---

3. Подключение по SSH и установка необходимых пакетов

Для дальнейшей настройки используйте терминал (PowerShell / Command Prompt на Windows или Terminal на macOS/Linux).

# Подключение к SSH серверу роутера Keenetic на порту 222 (стандартный порт Entware)
ssh root@192.168.1.1 -p 222

*(Пароль по умолчанию в чистом Entware: `keenetic`, после первого входа система потребует сменить пароль командой `passwd`).*

Обновление списка пакетов и установка утилит:

Выполните последовательно в терминале:

opkg update
opkg upgrade

# Установка базовых утилит ядра, curl, ca-certificates, ipset и iptables
opkg install curl wget ca-certificates ip-full ipset iptables nano jq bind-dig

Установка Sing-box в Entware:

В репозитории Entware для большинства архитектур Keenetic доступен оптимизированный пакет Sing-box:

opkg install sing-box

*Если в вашем репозитории архитектуры пакет отсутствует, можно скачать актуальный статический бинарник напрямую с официального GitHub SagerNet (выбирайте `linux-armv7hf`, `linux-arm64` или `linux-mipsle-softfloat` в зависимости от процессора вашего Keenetic) и поместить его в `/opt/usr/bin/sing-box` с правами `chmod +x`.*

Проверьте установку:

sing-box version

*(Вывод должен показать версию 1.10.x или 1.11.x с поддержкой VLESS, Reality, TPROXY и TUN).*

---

4. Разработка конфигурации `config.json` для архитектуры Router-Gateway

Конфигурация Sing-box на роутере существенно отличается от клиентской версии: здесь трафик перехватывается от всей подсети LAN (`192.168.1.0/24`) через входящий порт TPROXY или виртуальный интерфейс TUN.

Создайте рабочий файл конфигурации:

nano /opt/etc/sing-box/config.json

Вставьте следующую выверенную конфигурацию:

{
  "log": {
    "level": "warn",
    "output": "/opt/var/log/sing-box.log",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "dns-remote",
        "address": "https://1.1.1.1/dns-query",
        "address_resolver": "dns-local",
        "detour": "proxy-out"
      },
      {
        "tag": "dns-local",
        "address": "77.88.8.8",
        "detour": "direct-out"
      }
    ],
    "rules": [
      {
        "outbound": "any",
        "server": "dns-local"
      },
      {
        "rule_set": ["geosite-ru"],
        "server": "dns-local"
      },
      {
        "rule_set": ["blocked-domains"],
        "server": "dns-remote"
      }
    ],
    "final": "dns-local",
    "strategy": "prefer_ipv4"
  },
  "inbounds": [
    {
      "type": "tproxy",
      "tag": "tproxy-in",
      "listen": "::",
      "listen_port": 12345,
      "sniff": true,
      "sniff_override_destination": true
    },
    {
      "type": "direct",
      "tag": "dns-in",
      "listen": "127.0.0.1",
      "listen_port": 1053,
      "override_address": "8.8.8.8",
      "override_port": 53
    }
  ],
  "outbounds": [
    {
      "type": "vless",
      "tag": "proxy-out",
      "server": "198.51.100.88",
      "server_port": 443,
      "uuid": "4a7b2c91-e8d1-42fa-90f3-8b7c6d5e4a3b",
      "flow": "xtls-rprx-vision",
      "tls": {
        "enabled": true,
        "server_name": "swdist.apple.com",
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        },
        "reality": {
          "enabled": true,
          "public_key": "W9vP4tZ8yX2aB5cD7eF9gH1jK3mN5qR7sT9uV1wX3yZ=",
          "short_id": "0123456789abcdef"
        }
      },
      "packet_encoding": "xudp"
    },
    {
      "type": "direct",
      "tag": "direct-out"
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "ip_is_private": true,
        "outbound": "direct-out"
      },
      {
        "rule_set": ["geosite-ru"],
        "outbound": "direct-out"
      },
      {
        "rule_set": ["blocked-domains"],
        "outbound": "proxy-out"
      }
    ],
    "rule_set": [
      {
        "tag": "geosite-ru",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-category-ru.srs",
        "download_detour": "direct-out"
      },
      {
        "tag": "blocked-domains",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs",
        "download_detour": "direct-out"
      }
    ],
    "final": "direct-out",
    "auto_detect_interface": true
  }
}

---

5. Настройка маршрутизации Linux: Netfilter, Ipset и TPROXY

Для направления сетевых пакетов из локальной сети в процесс Sing-box без накладных расходов виртуальных сетевых адаптеров TUN используется механизм **TPROXY (Transparent Proxy)**.

Создадим скрипт конфигурации правил брандмауэра:

nano /opt/etc/sing-box/tproxy_rules.sh

Вставьте следующий shell-скрипт:

#!/bin/sh

# Создание таблицы маршрутизации 100 для локального редиректа
ip -4 rule del fwmark 1 table 100 2>/dev/null
ip -4 rule add fwmark 1 table 100
ip -4 route flush table 100
ip -4 route add local 0.0.0.0/0 dev lo table 100

# Создание ipset таблицы для заблокированных подсетей
ipset create unblock_ips hash:net 2>/dev/null

# Очистка старых цепочек iptables
iptables -t mangle -D PREROUTING -j SINGBOX_TPROXY 2>/dev/null
iptables -t mangle -F SINGBOX_TPROXY 2>/dev/null
iptables -t mangle -X SINGBOX_TPROXY 2>/dev/null

# Создание пользовательской цепочки SINGBOX_TPROXY в таблице mangle
iptables -t mangle -N SINGBOX_TPROXY

# Пропуск локального трафика и широковещательных пакетов
iptables -t mangle -A SINGBOX_TPROXY -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SINGBOX_TPROXY -d 240.0.0.0/4 -j RETURN

# Перенаправление пакетов, адресованных IP-адресам из списка unblock_ips, на TPROXY порт 12345
iptables -t mangle -A SINGBOX_TPROXY -p tcp -m set --match-set unblock_ips dst -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A SINGBOX_TPROXY -p udp -m set --match-set unblock_ips dst -j TPROXY --on-port 12345 --tproxy-mark 1

# Подключение цепочки к системному PREROUTING
iptables -t mangle -A PREROUTING -j SINGBOX_TPROXY

echo "[RiderHub Secure] TPROXY iptables rules successfully applied."

Сделайте файл исполняемым:

chmod +x /opt/etc/sing-box/tproxy_rules.sh

---

6. Автоматическая загрузка списков блокировок через Cron

Для поддержания списков заблокированных IP-адресов в актуальном состоянии настроим ежедневную автоматическую синхронизацию со списком `Antifilter Community`:

Создайте скрипт обновления IP-листов:

nano /opt/etc/sing-box/update_antifilter.sh

Вставьте код:

#!/bin/sh

URL="https://community.antifilter.download/list/community.lst"
TMP_FILE="/opt/tmp/antifilter.lst"

mkdir -p /opt/tmp
echo "[INFO] Downloading latest AntiFilter IP list..."
curl -s -L "$URL" -o "$TMP_FILE"

if [ -s "$TMP_FILE" ]; then
    echo "[INFO] Processing ipset entries..."
    # Создаем временный ipset для бесшовного обновления
    ipset create unblock_temp hash:net 2>/dev/null
    ipset flush unblock_temp

    while read -r line; do
        # Пропуск пустых строк и комментариев
        [ -z "$line" ] && continue
        case "$line" in \#*) continue ;; esac
        ipset add unblock_temp "$line" 2>/dev/null
    done < "$TMP_FILE"

    # Атомарная замена набора
    ipset swap unblock_temp unblock_ips
    ipset destroy unblock_temp 2>/dev/null
    rm -f "$TMP_FILE"
    echo "[SUCCESS] IPSet unblock_ips updated: $(ipset list unblock_ips | grep -c '^[0-9]') CIDRs active."
else
    echo "[ERROR] Failed to fetch IP list. Retaining current rules."
fi

Сделайте скрипт исполняемым и добавьте его в планировщик задач `cron`:

chmod +x /opt/etc/sing-box/update_antifilter.sh

# Добавление в crontab выполнение каждую ночь в 04:30
echo "30 4 * * * /opt/etc/sing-box/update_antifilter.sh > /opt/var/log/antifilter_cron.log 2>&1" >> /opt/etc/crontab

Выполните первоначальное наполнение списка:

/opt/etc/sing-box/update_antifilter.sh

---

7. Создание стартового демона `/opt/etc/init.d/S99sing-box`

Для гарантированного автозапуска Sing-box и правил TPROXY при включении и перезагрузке Keenetic создадим системный сервис Entware:

nano /opt/etc/init.d/S99sing-box

Содержимое файла инициализации:

#!/bin/sh

ENABLED=yes
PROCS=sing-box
ARGS="run -c /opt/etc/sing-box/config.json"
PREARGS=""
DESC="Sing-Box VLESS Reality TPROXY Client"
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

start_custom() {
    echo "Starting $DESC..."
    # Применение правил брандмауэра
    /opt/etc/sing-box/tproxy_rules.sh
    # Запуск демона
    sing-box run -c /opt/etc/sing-box/config.json > /dev/null 2>&1 &
    echo "Done."
}

stop_custom() {
    echo "Stopping $DESC..."
    killall -9 sing-box 2>/dev/null
    # Очистка mangle правил
    iptables -t mangle -D PREROUTING -j SINGBOX_TPROXY 2>/dev/null
    iptables -t mangle -F SINGBOX_TPROXY 2>/dev/null
    iptables -t mangle -X SINGBOX_TPROXY 2>/dev/null
    echo "Done."
}

case "$1" in
    start)
        start_custom
        ;;
    stop)
        stop_custom
        ;;
    restart)
        stop_custom
        sleep 2
        start_custom
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

Выдайте права на запуск:

chmod +x /opt/etc/init.d/S99sing-box

Запустите сервис:

/opt/etc/init.d/S99sing-box start

---

8. Проверка работы с клиентских устройств и траблшутинг

Контроль работы шлюза с любого домашнего компьютера:

1. Подключитесь к Wi-Fi сети роутера.

2. Откройте в браузере заблокированные ресурсы: `https://www.youtube.com`, `https://discord.com`, `https://instagram.com`.

3. Откройте ресурсы РФ: `https://gosuslugi.ru`, `https://sberbank.ru`, `https://tbank.ru`. Убедитесь, что авторизация проходит мгновенно, капчи отсутствуют, а личный кабинет определяет вас в домашнем регионе.

Таблица диагностики типовых проблем:

СимптомПричинаМетод исправления
Роутер перезагружается или виснет при высокой нагрузкеНедостаток ОЗУ (Out of Memory)Создайте файл подкачки swap: `dd if=/dev/zero of=/opt/swap bs=1M count=512 && mkswap /opt/swap && swapon /opt/swap`. Добавьте команду в автозапуск.
Ошибка `iptables: No chain/target/match by that name`Не установлены модули xt_TPROXY в KeeneticOSУстановите компонент ядра «Модули Netfilter» в веб-интерфейсе Keenetic.
Голосовая связь Discord не работаетНе перехватывается протокол UDP в iptablesПроверьте наличие строки `iptables -t mangle -A SINGBOX_TPROXY -p udp ... -j TPROXY` в скрипте правил.
Российские сервисы определяют заграничный IPОшибка в правилах ipset или DNSПроверьте, что в `unblock_ips` не попали диапазоны Яндекса или Сбера командой `ipset test unblock_ips 77.88.8.8`.

---

9. Заключение

Интеграция Sing-box с VLESS Reality в роутер Keenetic на базе подсистемы Entware превращает домашнюю сеть в защищенную корпоративную инфраструктуру, полностью невидимую для систем ТСПУ РКН. Благодаря архитектуре TPROXY и гибридным спискам IP/Geosite домашний роутер обеспечивает максимальную скорость до 1 Гбит/с без задержек и потери качества передачи контента.

Инженерная служба под ключ

Устали разбираться с кодом и конфигами?

Подключимся удаленно через AnyDesk и настроим ваш Keenetic, MikroTik, Asus или VPS под ключ за 40 минут. Запустим YouTube 4K на всех телевизорах без падения скорости.

Удаленная настройка AnyDesk:3 500 – 5 000 ₽
Готовый роутер Keenetic Hopper:14 900 ₽ (с сервером на 1 год)
Личный VPS в Европе:12 900 ₽ / год