Re:HomeProxy (бывший HomeProxy-hiddify) — форк проекта ImmortalWRT - HomeProxy, использующий ядра hiddify-core и/или sing-box-extended

Это графическая надстройка для LuCI позволяющая настроить подключение к AmneziaWG, NaiveProxy, Mieru, ShadowTLS, Hysteria2, XRay, VLESS (XHTTP), VMESS, Trojan, TUIC и иным протоколам которые поддерживает Hiddify App и sing-box-extended в т.ч. с помощью подписок (subscription). Ядро hiddify-core полностью совместимо с функциями и протоколами Hiddify App вроде фрагментации TLS.

Также интегрированы средства обхода DPI - ByeDPI и Zapret2 которые могут использоваться для доступа к конкретным сервисам вроде YouTube и Discord.

Есть полный перевод на русский язык.

В данной статье рассматривается установка и настройка Re:HomeProxy примере OpenWrt 24.10 и 25.12. Поддерживаются версии OpenWrt 23.05 (legacy), 24.10 (через opkg) и 25.12 и выше (через apk); установка на версиях ниже 23.05 не поддерживается.

Можно использовать как чистую версию OpenWRT так и от проекта ImmortalWRT.

Потребуется роутер со свободными 40 Мб памяти и минимум 256 Мб ОЗУ (Работающий Re:HomeProxy занимает от 70 Мб ОЗУ).

Оглавление:

Предисловие

Часть 1. Быстрый старт

  • Быстрый старт за 4 шага

  • Ручная установка пакетов OpenWRT

Часть 2. Меню и параметры

  • Ядро и службы

  • Режимы маршрутизации

  • Zapret 2

  • Особый трафик и привязки

  • DNS

  • Диагностика

  • Контроль доступа и сеть

  • Продвинутое: своя маршрутизация

  • Пользовательский JSON

Часть 1. Быстрый старт

Цель этой части — поднять рабочий VPN на роутере за минимум шагов. Подробный разбор всех параметров и возможностей — во второй части.

Адрес страницы в LuCI: Службы → Re:HomeProxy (/cgi-bin/luci/admin/services/homeproxy).

Быстрый старт за 4 шага

1 — Установите приложение. Проще всего — установочным скриптом одной строкой: он ставит приложение, ядро и по желанию ByeDPI/Zapret, а в конце выводит ссылку на страницу LuCI.

wget -qO- https://raw.githubusercontent.com/1andrevich/homeproxy-hiddify/master/install.sh | sh

2 — Добавьте серверы

 Перейдите в меню Настройки узлов

 Добавьте хотя бы один источник:

  • подписку по URL (https://)

  • ссылку-конфигурацию (vless://, trojan://, hysteria2://, а также vpn:// - формат AmneziaWG и XRay)

  • или импортируйте конфигурации .conf (WG/AWG).

Для добавления ключа vless://, vpn:// и других (не https://) – Импортировать ключ ссылку-конфигурацию для подключения либо Импорт .conf – Для импорта файла-конфигурации AmneziaWG:

Копируете ссылку во всплывающее окно, можно несколько - каждую на отдельной строке
Копируете ссылку во всплывающее окно, можно несколько - каждую на отдельной строке
После импорта появится оповещение
После импорта появится оповещение

Для добавления подписки (https://) – Настройка узлов - Подписки

Добавить подписку – Применить – Обновить N подписок

3. Настройка Подключения

Переходим в Настройки клиента – Основной узел

Для формирования автоматического пула серверов выбираем URLTest
Для формирования автоматического пула серверов выбираем URLTest

И выбираете желаемые серверы для механизма URLTest – автовыбора сервера на основе доступности и пинга

4 — Сохраните и примените изменения — служба запустится.

После добавление серверов и Применении настроек - появится статус РАБОТАЕТ
После добавление серверов и Применении настроек - появится статус РАБОТАЕТ

Готово: правила настроены, VPN работает.

Дополнительно можно настроить часть ресурсов для работы через ByeDPI, Zapret об этом в разделах ByeDPI и Zapret2

Ниже приведена дополнительная информация о настройке Re:HomeProxy, для базовой настройки она не нужна.

Ручная установка пакетов OpenWrt

Ядро (hiddify-core или sing-box-extended) ставится из интерфейса на вкладке «Ядро и службы» — отдельно скачивать его не требуется (но возможно), поэтому здесь устанавливается только сам пакет приложения.

Для версий с OPKG (ipk, OpenWrt 24.10 и ниже):

opkg update

Устанавливаем luci-app-re-homeproxy вместе с языковым пакетом:

wget -O /tmp/luci-app-re-homeproxy.ipk "$(wget -qO- 'https://api.github.com/repos/1andrevich/homeproxy-hiddify/releases' | grep -o 'https://github\.com/[^"]*luci-app-re-homeproxy[^"]*\.ipk' | head -1)"
wget -O /tmp/luci-i18n-homeproxy-ru.ipk "$(wget -qO- 'https://api.github.com/repos/1andrevich/homeproxy-hiddify/releases' | grep -o 'https://github\.com/[^"]*luci-i18n-homeproxy-ru[^"]*\.ipk' | head -1)"
opkg install /tmp/luci-app-re-homeproxy.ipk
opkg install /tmp/luci-i18n-homeproxy-ru.ipk

После ручной установки рекомендую запустить команду:

/etc/init.d/rpcd restart

Для версий с Alpine APK (OpenWrt 25.12 и выше):

wget -O /tmp/homeproxy-hiddify.pub https://github.com/1andrevich/homeproxy-hiddify/releases/latest/download/homeproxy-hiddify.pub
cp /tmp/homeproxy-hiddify.pub /etc/apk/keys/
apk update

Далее — luci-app-re-homeproxy вместе с языковым пакетом:

wget -O /tmp/luci-app-re-homeproxy.apk "$(wget -qO- 'https://api.github.com/repos/1andrevich/homeproxy-hiddify/releases' | grep -o 'https://github\.com/[^"]*luci-app-re-homeproxy[^"]*\.apk' | head -1)"
wget -O /tmp/luci-i18n-homeproxy-ru.apk "$(wget -qO- 'https://api.github.com/repos/1andrevich/homeproxy-hiddify/releases' | grep -o 'https://github\.com/[^"]*luci-i18n-homeproxy-ru[^"]*\.apk' | head -1)"
apk add /tmp/luci-app-re-homeproxy.apk
apk add /tmp/luci-i18n-homeproxy-ru.apk

После установки:

/etc/init.d/rpcd restart

Если вы обладатель мощного устройства с ограниченным объёмом памяти без возможности расширения, вроде Mercusys MR90X, то можете воспользоваться релизом с пакетами со сжатыми бинарными файлами (16Мб против 26Мб у обычного), но возможны неожиданные баги при их использовании.

Если используете версию OpenWRT 23.05 то устанавливайте ipk версию hiddify-core или sing-box-extended и legacy-сборку luci-app-re-homeproxy — имя пакета то же, отличается только пакет: файл с суффиксом _all-legacy.ipk из отдельного релиза (тег вида <tag>-legacy, без зависимости от ucode-mod-digest)

После успешной установки переходите к настройке (Часть 1, шаги 2–4) или к подробному разбору меню во второй части.

Часть 2. Меню и параметры

Во второй части — подробный разбор интерфейса Re:HomeProxy по разделам. Большинству пользователей это меню не понадобится: рабочую конфигурацию даёт готовый пресет из Части 1. Раздел пригодится, когда нужно тонко настроить обход, диагностику или маршрутизацию.

Ядро и службы

Вкладка «Ядро и службы» — центральная точка управления движками обхода. Отсюда в один клик ставятся ядро и вспомогательные службы; установщик сам подбирает сборку под объём флеш-памяти, включая компактную UPX-версию (16 Мб против 26 у обычной версии) для устройств с малым объемом постоянной памяти.

Доступно два ядра:

• hiddify-core — ядро по умолчанию. Поддерживает подписки и широкий набор протоколов (VLESS, Trojan, Hysteria2, TUIC, ShadowTLS, NaiveProxy, Mieru, VMess и др.), а также пока эксклюзивные функции клиента Hiddify App вроде фрагментации TLS.

• sing-box-extended — расширенное ядро от shtorm7 с поддержкой AmneziaWG/WARP и более широким набором протоколов. Выбирайте его, если нужны WireGuard/AmneziaWG или функции, которых нет в hiddify-core.

Ядро требует модулей kmod-nft-tproxy и kmod-tun — установщик подтянет их автоматически. С этой же вкладки ставятся дополнительные службы обхода DPI:

• ByeDPI — обход DPI на уровне SOCKS без поднятия полноценного VPN (ciadpi). Требует curl для тестирования стратегий.

• Zapret 2 — обход DPI на уровне пакетов (nfqws2). Требует модуль ядра kmod-nft-queue (NFQUEUE).

Здесь же ставится пакет русской локализации и доступен просмотр логов (см. раздел «Диагностика»). Подписи apk-пакетов: приложение, ядро и ByeDPI проверяются ключом homeproxy-hiddify.pub, Zapret — ключом zapret2-1andrevich.pub.

Режимы маршрутизации

Режим выбирается на одноимённой вкладке. Готовые пресеты по странам настраивают правила, rule-sets и DNS автоматически — вручную ничего прописывать не нужно. Региональные списки подключаются через sing-box rule-sets (.srs) формата geosite/geoip, а не встроенными файлами.

• «Россия (Обход Блокировок)» — раздельное туннелирование (по умолчанию для русского интерфейса). Весь трафик идёт напрямую, через прокси направляется только заблокированное в РФ: Re:filter (60k+ доменов и 25k+ IP), Russia Inside (itdoginfo, 1000+ записей) и сервисные списки (YouTube, Discord, Telegram, Meta).

• «Китай (обход материкового)» и «Иран (обход внутреннего)» — зеркальная логика: по умолчанию весь трафик идёт через прокси, а домены и IP региона (geosite/geoip CN/IR) — напрямую.

• Глобальный — весь трафик через прокси (повышенный расход трафика и выше риск быстрее «засветить» подключение).

• «Пользовательская маршрутизация» / «Пользовательский JSON» — режимы для продвинутых; ручная настройка правил описана ниже в разделах «Продвинутое: своя маршрутизация» и «Пользовательский JSON».

Вкладка «Правила прокси». На ней видно, как пресет распределяет трафик, и сюда же добавляются собственные правила. Маршрут по умолчанию — прямой; добавленные правила проксируются с автоматическим приоритетом. Встроенные списки:

• Cписки по сервисам (YouTube, Discord и т. п.) от itdog;

• Russia Inside (1000+ доменов, itdoginfo) — общий набор небольших списков (YouTube, Discord, Telegram, Meta…);

Re:filter (60000+ доменов и 25000+ IP) — заблокированные в России домены и IP (Роскомнадзор, списки от сообщества).

Каждое правило состоит из полей «Включить», «Источник» (какой список проксировать) и «Узел» (через какой outbound; по умолчанию «Как основной узел»); кнопка «Добавить» создаёт новое правило. Чтобы пустить отдельный список через ByeDPI, Zapret или конкретный сервер, укажите его в поле «Узел».

DNS в пресетах настраивается сам: российский UDP-резолвер используется напрямую, а защищённый DoH/DoT — через прокси (подробнее в разделе «DNS»).

ByeDPI

ByeDPI обходит DPI на уровне SOCKS-прокси, не поднимая полноценный VPN: трафик не уходит на внешний сервер, а обрабатывается локально — ByeDPI на лету изменяет исходящие пакеты, чтобы DPI не распознал соединение, поэтому подходит, когда нужен только обход блокировок без смены IP. За работу отвечает ciadpi; для скачивания и проверки стратегий требуется curl.

В комплекте идут готовые пресеты стратегий (47) и встроенный тестер: он перебирает стратегии и подсказывает рабочую для вашего провайдера, чтобы не подбирать параметры вручную.

Где включить. Настройки узлов → вкладка ByeDPI → Установить (если пакет ещё не установлен) → Включить и выбрать «Готовую стратегию» либо задать аргументы ciadpi вручную в поле «Стратегия» → Сохранить и применить. Демон запускается автоматически; Re:HomeProxy также предотвращает зацикливание трафика. DNS через ByeDPI не направляется — разрешение имён выполняется напрямую или через VPN, иначе рассинхронизация пакетов нарушит работу DoH/DoT.

Как направить трафик. ByeDPI появляется как цель в правиле маршрутизации: в режиме «Россия (Обход Блокировок)» откройте «Правила прокси (РФ)» и укажите для нужного списка узел ByeDPI — либо сделайте ByeDPI основным узлом, если весь обход должен идти через него.

Тестер стратегий. Кнопки «Проверить все стратегии» (полная проверка по четырём эталонным сайтам: YouTube и Telegram, Discord и Speedtest ; индикатор ●●●● означает, что все проверки пройдены) и «Проверить текущую». Проверка идёт на отдельном временном порту и не затрагивает основной трафик.

Zapret 2

Zapret 2 обходит DPI на уровне пакетов через nfqws2 и очередь NFQUEUE ядра, поэтому требует модуль kmod-nft-queue. В отличие от ByeDPI работает с трафиком напрямую и справляется с тем, чего не может SOCKS-обход: видео и QUIC, а также звонки в мессенджерах (в т. ч. Discord).

В Re:HomeProxy входит 36 готовых стратегий (две группы — рекомендованные и авто), например «Default (fake + multidisorder)», «Multisplit», «Fake repeats (x6)», «YouTube (Google seqovl + fake-QUIC)», «Discord (TLS seqovl + STUN voice)» и «YouTube + Discord (combined)». В интерфейсе: переключатель «Включить», выбор пресета и поле опций nfqws2, плюс встроенный тестер стратегий. Хостлистов нет — выбранные опции применяются ко всему трафику, который правила маршрутизации направляют в Zapret.

Где включить. Настройки узлов → вкладка Zapret → Установить → Включить и выбрать «Пресет стратегии» (при необходимости — поле «Стратегия рассинхронизации» с аргументами nfqws2) → Сохранить и применить. Есть отдельный переключатель «Звонки Discord через Zapret». Работает на обоих ядрах и обрабатывает как TCP, так и UDP/QUIC.

Как направить трафик. Zapret подключён как помеченный direct-outbound zapret-out (routing_mark 110): правило маршрутизации выбирает цель «Zapret», ядро выпускает поток с меткой, а цепочка nftables заворачивает первые пакеты в очередь NFQUEUE, где их обрабатывает nfqws2. Что именно обрабатывать, решают правила маршрутизации, а выбранные опции применяются ко всему направленному на Zapret трафику.

Тестер. Кнопки «Полная проверка стратегий» и «Проверить текущую» — как и у ByeDPI, на отдельной временной очереди, без влияния на основной трафик.

Особый трафик и привязки

Для частых сценариев в интерфейсе есть готовые переключатели — отдельные правила вручную создавать не нужно:

• Звонки в мессенджерах через прокси — направляет голосовой/видеотрафик мессенджеров (Telegram, WhatsApp, Discord, Viber и т. п.) через прокси.

• Исключить торренты из прокси — оставляет торрент-трафик идти напрямую, чтобы не нагружать прокси и не «светить» сервер.

• Расширенные правила — позволяет использовать расширенные правила из Пользовательских правил вместе с региональными режимами.

DNS

В режимах-пресетах DNS настраивается автоматически и устроен так, чтобы избежать утечки DNS:

• Российский резолвер по UDP используется для трафика, идущего напрямую.

• Защищённый DoH/DoT-резолвер используется для проксируемого трафика и идёт через прокси.

Такое разделение не даёт провайдеру видеть запросы к заблокированным доменам и одновременно сохраняет корректную работу локальных и российских сервисов. Ручная настройка DNS-серверов и DNS-правил описана в разделе «Продвинутое: своя маршрутизация».

Диагностика

Вкладка диагностики помогает быстро понять, работает ли обход и где проблема. Доступны:

• тесты связности и DNS — отдельно для российского и для защищённого резолвера;

• текущий активный узел, выходной IP и его географическую принадлежность;

• счётчики трафика;

• полный отчёт одной кнопкой — пароли, ключи и ссылки-подписки в нём скрываются автоматически, поэтому отчёт можно безопасно прикладывать к issue.

Если GitHub заблокирован и списки/пакеты не скачиваются, в настройках можно включить резервное зеркало (параметр homeproxy.config.github_mirror в uci).

 Продвинутое: своя маршрутизация (ручная настройка)

Этот раздел оставлен для справки и продвинутых сценариев. Всё, что описано ниже (выбор узлов URLTest, наборы правил Re:filter, правила маршрутизации, порты и DNS-серверы), в готовых пресетах из «Режимов маршрутизации» настраивается автоматически — повторять это вручную не нужно. Используйте раздел если хотите собрать собственную маршрутизацию или понять, что делает пресет под капотом.

Прежде чем собирать маршрутизацию вручную, полезно держать в голове четыре сущности, которыми оперирует Re:HomeProxy:

Серверы (outbound). Сервер — это точка выхода: ваш VPS, узел из подписки или импортированный профиль AmneziaWG или обходчик DPI. В терминах ядра каждый сервер становится отдельным outbound со своим тегом, а правила маршрутизации направляют трафик именно в эти теги. Набор параметров зависит от протокола (адрес и порт, UUID или пароль, TLS/SNI, фрагментация и т. п.) и в большинстве случаев заполняется автоматически при импорте ссылки, подписки или .conf.

Основной узел и URLTest. «Основной узел» — он же Main Node - это outbound, на который уходит проксируемый трафик. Вместо одного фиксированного сервера удобно выбрать URLTest — виртуальный outbound, который периодически проверяет все указанные серверы и сам переключается на самый быстрый из доступных, поэтому подключение переживает блокировку отдельного сервера. Параметры URLTest (URL для теста, Test interval, Test tolerance, Idle timeout) разобраны ниже.

Наборы правил (rule-set). Внешний список доменов или IP (формат .srs — бинарный, а .json — исходный), который ядро скачивает по ссылке и обновляет по расписанию. Сам по себе он ничего не маршрутизирует — лишь задаёт множество адресов, на которое затем ссылается правило. Ключевые параметры: Тип (Удалённый/Локальный), Формат (Бинарный srs / Исходный json), URL, Outbound для скачивания и Интервал обновления.

Правила маршрутизации. Правило связывает условие с действием: «если трафик подходит под такой-то признак — направить его в такой-то outbound». Условием может быть набор правил, протокол (HTTP, TLS, QUIC, STUN…), сеть (TCP/UDP), порты и диапазоны портов, версия IP, а также входящий интерфейс (inbound) — последнее позволяет направлять трафик с конкретного inbound в отдельный прокси. Действие — это outbound (proxy, direct и т. д.).

Дальше — подробнее о параметрах каждой из этих сущностей: какие поля задаются у сервера, какие входящие точки (inbound) можно добавить, по каким условиям срабатывают правила маршрутизации и что можно выбрать узлом.

Поля сервера (outbound). База — как у sing-box: TLS (Reality, uTLS, ECH, ALPN), транспорт (gRPC, WS, HTTP, HTTPUpgrade, XHTTP) и мультиплекс. Специфика расширенных ядер: фрагментация TLS (tls_fragment) — только hiddify-core (режимы SNI/Domain и Random; размер фрагмента 100–200, обычно на байт меньше длины домена; интервал; Mixed SNI case; padding — фрагментацию и padding одновременно включать нельзя); AmneziaWG с параметрами Jc/Jmin/Jmax/S1/S2/H1–H4/I1–I5 — только sing-box-extended; WireGuard/WARP — в сборках с with_wireguard; Mieru и NaiveProxy — по флагам сборки. Большинству эти поля вручную заполнять не нужно — импорт ссылки или подписки делает это сам.

Дополнительные inbound (Настройки сервера). Кроме исходящих узлов можно поднять свои инбаунды. Общие поля: Метка, Включить, Брандмауэр (доступ из интернета), Тип, Адрес и Порт прослушивания, Имя пользователя/Пароль; протокол-специфичные поля появляются после выбора типа. Типы: всегда доступны AnyTLS, HTTP, Смешанный (HTTP+SOCKS), Shadowsocks, SOCKS, Trojan, VLESS, VMess; в зависимости от сборки — Hysteria/Hysteria2/NaïveProxy/TUIC и MTProxy (только sing-box-extended). TLS — свой сертификат или ACME.

Поля правил маршрутизации. В расширенном режиме правило сопоставляет трафик по: протоколу (определяется сниффингом — BitTorrent, DNS, QUIC, TLS, HTTP, STUN, SSH, RDP, DTLS), версии IP и сети (TCP/UDP), доменам (domain, domain_suffix, domain_keyword, domain_regex) и IP-CIDR назначения и источника, портам и диапазонам портов (назначения и источника), а также имени или пути процесса (трафик самого роутера). Внутри одной категории условия объединяются по ИЛИ, между категориями — по И; правила проверяются сверху вниз, срабатывает первое подходящее.

Типы узла в правиле. Целью правила (как и основным узлом) может быть: конкретный сервер, URLTest (авто-выбор быстрейшего из пула — со своими «Узлами URLTest», «Интервалом теста» и «Допуском теста»), ByeDPI или Zapret. Есть и отдельный UDP-узел — например, чтобы направлять QUIC и голос через другой сервер. В расширенном режиме «Правила узлов» можно описать именованный outbound — конкретный узел, URLTest или цепочку (трафик одного узла идёт через другой) со своим резолвером и стратегией доменов. Отдельного Selector (ручного переключателя) в интерфейсе нет.

На примере русскоязычного интерфейса

Для раздельного туннелирования выбираем режим Режим маршрутизации — Пользовательская маршрутизация - проксирование подключений согласно правилам (hiddify, Sing-box Rule-set).

Для направления всего трафика через Главный узел можно выбрать Глобальный режим (большой расход трафика и шанс быстрее засветить подключение), также я добавил режим Пользовательский JSON, о нём расскажу в конце статьи.

upd 22.05.26 Порты маршрутизации — Все порты - тогда Re:HomeProxy сможет использовать правила для управления трафиком портов, при выборе Общие порты - в правила nft будут прописаны только они и Re:HomeProxy не сможет управлять другими портами, не указанными в списке, например VoIP - 50000-65535

Общие порты - 22,53,80,143,443,465,587,853,873,993,995,5222,8080,8443,9418

их можно изменить в /etc/config/homeproxy

Режим прокси — Перенаправление TCP + TProxy UDP - оставляем параметр по умолчанию

Перенаправление TCP (перенаправление только TCP трафика, согласно правилам Re:HomeProxy, а не основного firewall).

При установке ip-full и kmod-tun также доступны:

Перенаправление TCP + Tun UDP как Перенаправление TCP + TProxy UDP, но UDP трафик идёт через интерфейс singtun0 и регулируется основными правилами firewall.

Tun TCP/UDP — весь трафик идёт через интерфейс singtun регулируется правилами firewall

Поддержка IPv6 - рекомендую выключить т.к. большинство списков, включая Re:filter, пока не включают адресов IPv6

outbound по умолчанию - Напрямую - весь трафик не направленный правилами в прокси будет идти через шлюз по умолчанию

outbound DNS по умолчанию - DNS по умолчанию (от WAN) - используется для трафика не направляемого в прокси если нет иных правил DNS (при использовании MultiWAN лучше указывать конкретный DNS сервер из выпадающего списка)

Далее - Применяем изменения и переходим во вкладку Узлы маршрутизации

Внизу страницы добавляем новый элемент, можно назвать его proxy и нажимаем Добавить

само название не принципиально, но оно должно быть уникальным

Далее по параметрам:

Узел - URLTest

Узлы URLTest - выбираем нужные из выпадающего списка (ранее добавляли через Subscriptions и статичные конфигурации)

URL для теста - это страница для тестирования подключения к прокси, я использую эти captive portal:

http://captive.apple.com/hotspot-detect.html

http://www.gstatic.com/generate_204

Но можно использовать любой Captive Portal

можно использовать настройки по умолчанию:

Test interval - 180 сек - каждая нода через заданный промежуток (180 сек) будет протестирована на доступность и величину задержки

Test tolerance - 150 мс - разница в задержке прокси при которой будет произведено переключение, например у активного прокси 327 мс, если у другого задержка будет ниже 177 мс - hiddify-core сделает активным его

Idle timeout - 1800 сек - если не было сетевой активности на прокси в течении заданного промежутка, проверка нод приостановится (для снижения нагрузки) до возобновления активности

Сохраняем - Применяем изменения

Переходим во вкладку Набор правил

На примере Re:filter

Добавляем 1ый набор правил - ipsum:

Тип - Удаленный - регулярное скачивание списка по ссылке, альтернативно можно использовать Локальный

Формат - Бинарный файл - использование формата srsтакже можно использовать json при выборе Исходный файл

URL набора правил - https://github.com/1andrevich/Re-filter-lists/releases/latest/download/ruleset-ip-refilter_ipsum.srs - srs список заблокированных подсетей refilter_ipsum

Outbound - proxy - скачивание списков через выбранный outbound - прокси

Интервал обновления - 1d - для регулярного скачивания списков, например 1 день , ставьте по вашему усмотрению

Сохраняем и добавляем 2ой набор правил - domains:

Аналогично:

Тип - Удаленный - регулярное скачивание списка по ссылке, альтернативно можно использовать Локальный

Формат - Бинарный файл - использование формата srsтакже можно использовать json при выборе Исходный файл

URL набора правил - https://github.com/1andrevich/Re-filter-lists/releases/latest/download/ruleset-domain-refilter_domains.srs - srs список заблокированных доменов refilter_domains

Outbound - proxy - скачивание списков через выбранный outbound - прокси

Интервал обновления - 1d - для регулярного скачивания списков, например 1 день , ставьте по вашему усмотрению

Сохраняем - Применяем изменения

Переходим к Правилам маршрутизации:

Добавляем первое правило - refilter_ipsum (Направление IP адресов из списка в прокси):

Версия IP - IPv4

Набор правил - ipsum - выбираем из выпадающего списка

Outbound - proxy

Сохранить

Добавляем второе правило - refilter_domains (Направление доменов из списка в прокси):

Протокол - (из списка) HTTP, QUIC, TLS, STUN

Набор правил - domains

Outbound - proxy

Сохранить - Применить изменения

После применения изменений раздельная маршрутизация уже должна работать, но для полноценной работы VoIP трафика (Telegram, WhatsApp, Discord, Viber) нужны дополнительные правила для портов и настройка DNS для избежания утечки DNS

Сперва добавляем правило для UDP портов:

Метка - Calls UDP - может быть любая, не обязательно совпадает с названием правила

Сеть - UDP

Outbound - proxy

Далее переходим во вкладку - Поля портов

Порты - 1400 и 8443

Диапазон портов - 50000:65535 596:599 3478:3497 16384:16387 16393:16402 - каждый диапазон через двоеточие, это диапазоны для работы звонков Whatsapp, Viber, Facetime, Telegram и Discord, ранее писал об этом в статье по V2RayA

Сохраняем и создаём ещё одно правило для TCP+UDP портов:

Метка - TCP+UDP Ports

Outbound - proxy

Далее переходим во вкладку - Поля портов

Порт - 4244 7985 5222 5223 5242 5243 - Для работы WhatsApp и Viber

Сохраняем - Применяем изменения

Альтернативным способом создания правил является редактирование файла настроек - можно вставить этот набор правил в конец файла, главное проверить совпадение названия outbound, если вы вдруг назвали его не "proxy" или имеете несколько outbound для прокси

/etc/config/homeproxy:

config routing_rule 'refilter_ipsum'
        option label 'refilter_ipsum'
        option enabled '1'
        option mode 'default'
        option ip_version '4'
        list rule_set 'ipsum'
        option outbound 'proxy'

config routing_rule 'refilter_domains'
        option label 'refilter_domains'
        option enabled '1'
        option mode 'default'
        list protocol 'http'
        list protocol 'quic'
        list protocol 'tls'
        list rule_set 'domains'
        option outbound 'proxy'

config routing_rule 'udp'
        option label 'Calls UDP'
        option enabled '1'
        option mode 'default'
        option network 'udp'
        option outbound 'proxy'
        list port '1400'
        list port '8443'
        list port_range '50000:65535'
        list port_range '596:599'
        list port_range '3478:3497'
        list port_range '16384:16387'     
        list port_range '16393:16402'

config routing_rule 'tcp_udp'
        option label 'TCP+UDP Ports'
        option enabled '1'
        option mode 'default'
        option outbound 'proxy'
        list port '4244'
        list port '7985'
        list port '5222'
        list port '5223'
        list port '5242'
        list port '5243'

Теперь к настройке DNS:

без прописанных DNS-правил Re:HomeProxy использует DNS-outbound по умолчанию, для избежания утечки DNS и подмен укажем сначала два DNS сервера, для proxy и для работы напрямую

Добавим сначала Яндекс DNS сервера с названием dns_direct во вкладке DNS-серверы:

Тип - UDP - Также доступны варианты UDP, TCP, QUIC, HTTP/3, TLS

Адрес - 77.88.8.1  (можно также указать например провайдерский DNS сервер)

Порт - авто

Резолвер адресов - Отсутствует (т.к. указан IP адрес)

Outbound - Напрямую

Теперь добавим Google DNS сервер с названием dns_proxy:

Тип - HTTPS - Также доступны варианты UDP, TCP, QUIC, HTTP/3, TLS

Адрес - dns.google

Порт - авто

Path -/dns-query

Резолвер адресов - dns_direct (для избежания потенциальных проблем с настройкой DNS и доступен к сторонним DNS серверам в т.ч. на белых списках)

Стратегия адресации - Предпочитать IPv4

Outbound - proxy

Применяем изменения

Теперь добавим правило dns_out для проксируемых доменов во вкладке DNS-правила:

Действие - Маршрут

Сервер - dns_proxy

Стратегия доменов - Предпочитать IPv4

Сохранить

Это правило будет выполняться для доменов из списка domains из набора правил, для прочих укажем правило по умолчанию на вкладке Настройки DNS:

Стратегия DNS по умолчанию - Предпочитать IPv4

DNS-сервер по умолчанию - dns_direct

Сохранить и применить изменения

На вкладке Статус службы можно посмотреть логи Re:HomeProxy и hiddify-core, выбрать степень логгирования (log level)

Контроль доступа и сеть

в меню Контроль доступа есть вкладки:

Управление интерфейсами - Здесь настраивается входной и выходной интерфейс, по умолчанию остаётся пустым и определяется автоматически

О решении проблем с Multi-WAN здесь

в Политике IP для LAN:

Режим фильтрации прокси — имеет опции:

Проксировать только указанные — проксирует трафик только для IP/MAC из списка.

Проксировать всё кроме указанных — проксирует трафик для всех, кроме IP/MAC из списка.

Также можно указать IPv4, IPv6 и MAC адреса локальных устройства для игрового режима - для них не будет проксироваться UDP трафик

Также в Re:HomeProxy есть возможность указать дополнительные inbound на вкладке Настройки сервера:

Можно выбрать протокол, адрес и порт на котором сервер будет слушать подключения, в зависимости от протокола - логин и пароль для подключения, в качестве примера смешанный HTTP/SOCKS5 прокси на 127.0.0.1 и порту 20170

Если вы выбрали Tun TCP/UDP необходимо перейти в раздел Сеть - Межсетевой Экран -

Добавить новый интерфейс.

Выбрать Протокол неуправляемый, из списка устройств singtun0, присвоить название, например Proxy и Создать интерфейс.

После чего перейти в настройки интерфейса singtun0 (Изменить)

Настройки межсетевого экрана — wan (или нужный вам вариант).

Пользовательский JSON

Это новый режим, которого нет в оригинальном HomeProxy, если вы хотите использовать текстовую конфигурацию, вы можете разместить его в /etc/homeproxy/hiddify-c.json и выбрать Пользовательский JSON в Режимах Маршрутизации

Если вы хотите направлять пользовательский трафик через Redirect и TProxy используя правила межсетевого экрана Re:HomeProxy, то нужно будет добавить в конфигурацию следующие параметры:

"inbounds": [
    {
        "type": "direct",
        "tag": "dns-in",
        "listen": "::",
        "listen_port": 5333
    },
    {
        "type": "mixed",
        "tag": "mixed-in",
        "listen": "::",
        "listen_port": 5330,
        "udp_timeout": "300s",
        "sniff": true,
        "sniff_override_destination": true,
        "set_system_proxy": false
    },
    {
        "type": "redirect",
        "tag": "redirect-in",
        "listen": "::",
        "listen_port": 5331,
        "sniff": true,
        "sniff_override_destination": true
    },
    {
        "type": "tproxy",
        "tag": "tproxy-in",
        "listen": "::",
        "listen_port": 5332,
        "network": "udp",
        "udp_timeout": "300s",
        "sniff": true,
        "sniff_override_destination": true
    }
]

Также нужно добавить метку default_mark  в секции route для предотвращения петель маршрутизации tproxy либо routing_mark для каждого outbound . Без него собственный исходящий трафик hiddify-core перехватывается правилами nftables и снова направляется в прокси. Значение должно совпадать с self_mark в /etc/config/homeproxy (по умолчанию: 100):

"route": {
    "default_mark": 100,
    ...
}

Информация о Re:HomeProxy также есть в вики проекта

Спасибо всем кто дочитал до конца

Завёл также, с опозданием на много лет, телеграм канал Telegram: View @one_andrevich