惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
A
Arctic Wolf
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Martin Fowler
Martin Fowler
A
About on SuperTechFans
P
Palo Alto Networks Blog
Project Zero
Project Zero
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
T
Tor Project blog
IT之家
IT之家
P
Proofpoint News Feed
Help Net Security
Help Net Security
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
Microsoft Azure Blog
Microsoft Azure Blog
V2EX - 技术
V2EX - 技术
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
MongoDB | Blog
MongoDB | Blog
B
Blog
N
News and Events Feed by Topic
The Cloudflare Blog
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
T
The Blog of Author Tim Ferriss
Recorded Future
Recorded Future
Last Week in AI
Last Week in AI
The Last Watchdog
The Last Watchdog
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
LangChain Blog
I
InfoQ
F
Full Disclosure
The Register - Security
The Register - Security
阮一峰的网络日志
阮一峰的网络日志
H
Hacker News: Front Page
V
V2EX

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Обход блокировок на OpenWRT с помощью HomeProxy-hiddify (hiddify-core) и баз GeoIP, Geosite Re:filter
Андрей · 2026-05-18 · via Все публикации подряд на Хабре

Простой

11 мин

30K

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

Это HomeProxy-hiddify - форк проекта ImmortalWRT - HomeProxy, но использующий ядро hiddify-core вместо sing-box

Результат моей работы - графическая надстройка для hiddify-core позволяющая настроить подключение к NaiveProxy, Mieru, ShadowTLS, Hysteria2, XRay, VLESS (XHTTP), VMESS, Trojan, TUIC и иным протоколам которые поддерживает Hiddify App в т.ч. с помощью подписок (subscription). Основное отличие hiddify-core на сегодняшний день это поддержка дополнительных протоколов прокси и функций клиента Hiddify App вроде фрагментации TLS. Также сделан полный перевод на русский язык.

Отвечая на вопрос "А зачем это всё? Есть же тот же Podkop? V2RayA? оригинальный HomeProxy в конце концов":

  • в Подкопе мне очень не хватило подписок, т.к. в основном пользуюсь сервисами и серверами (вроде Hiddify Manager) механизм распространения доступа которых - ссылка subscription

  • V2RayA хоть и достаточно надежен ограничен xray-core, и одним активным подключением к прокси - в условиях активных блокировок рассчитывать только на одно подключение становится недостаточно

  • HomeProxy в целом хорош, но UI довольно ограничен, не имеет возможности использовать текстовую конфигурацию, а при использовании только sing-box нужен отдельный которая будет перенаправлять в него трафик

Зная о существовании hiddify-core (он же Hiddify-cli) возникло желание совместить хорошую оболочку с перспективным ядром (к сожалению имеющим довольно скудную документацию), заодно пришлось решить проблему с ipk/apk пакетами, так как сам hiddify выпускает только бинарные файлы и так получился HomeProxy-hiddify

В данной статье будет рассматриваться установка пакетов luci-app-homeproxy-hiddify и hiddify-core на примере OpenWRT 24.10.5 (поддерживаются версии 24.10, 25.12 и выше, экспериментально - до 23.05).

Также настроим раздельную маршрутизацию на примере списков Re:filter, но могут использоваться любые .srs, .json и текстовые списки . Конфигурация одна из самых простых, но проверенных мной на практике

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

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

Оглавление:

  • Предисловие

  • 1. Установка luci-app-homeproxy-hiddify

  • 2. Настройка homeproxy-hiddify

  • 3. Дополнительные настройки Homeproxy

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

1. Установка hiddify-core и luci-app-homeproxy-hiddify

Для начала необходимо установить сам hiddify-core достаточно установить ipk файл, для версий с OPKG ( до OpenWRT 24.10 включительно):

wget -O /tmp/hiddify-core.ipk "https://github.com/1andrevich/hiddify-core/releases/latest/download/hiddify-core_$(. /etc/os-release; echo "$OPENWRT_ARCH").ipk"
opkg update
opkg install /tmp/hiddify-core.ipk

После чего устанавливаем luci-app-homeproxy-hiddify вместе с языковым пакетом:

wget -O /tmp/luci-app-homeproxy-hiddify.ipk "$(wget -qO- 'https://api.github.com/repos/1andrevich/homeproxy-hiddify/releases' | grep -o 'https://github\.com/[^"]*luci-app-homeproxy-hiddify[^"]*\.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-homeproxy-hiddify.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/
wget -O /tmp/hiddify-core.apk "https://github.com/1andrevich/hiddify-core/releases/latest/download/hiddify-core_$(. /etc/os-release; echo "$OPENWRT_ARCH").apk"
apk update
apk add /tmp/hiddify-core.apk

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

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

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

/etc/init.d/rpcd restart

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

Если используете версию OpenWRT 23.05 то устанавливайте ipk версию hiddify-core и legacy версию luci-app-homeproxy-hiddify

Если установка прошла успешно, переходим к настройке.

2. Настройка Homeproxy-hiddify

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

Переходим в раздел Службы - Homeproxy-Hiddify

Откроется страница по умолчанию:

Сперва нужно добавить сервер, для этого переходим во вкладку Настройки узлов - Узлы

 Нажимаем Импортировать ссылки для совместного использования для добавления 

статичной конфигурации VLESS, Trojan или иной:

После добавления нажимаем Импорт

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

Для добавления подписки (Subscription) открываем вкладку Подписки

Обновить через прокси - Обновление подписок через прокси (Включать только после настройки HomeProxy-Hiddify)

Фильтровать узлы - Режим черного списка - исключаются только ссылки из фильтра, остальные добавляются, при необходимости меняется на Режим белого списка

Перед скачиванием списка прокси из подписки нажимаем Сохранить текущие настройки - для применения изменений

После чего обновляем подписки - Обновить N подписок

После этого убеждаемся что количество нод из подписки отобразилось внизу страницы:

Если по какой-то причине обновление подписок не происходит, запустите консольную команду и обновите страницу

uc /etc/homeproxy/scripts/update_subscriptions.uc

Далее переходим к настройкам подключения:

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

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

upd 22.05.26 Порты маршрутизации — Все порты - тогда HomeProxy сможет использовать правила для управления трафиком портов, при выборе Общие порты - в правила nft будут прописаны только они и 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 трафика, согласно правилам 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 - 50 мс - разница в задержке прокси при которой будет произведено переключение, например у активного прокси 327 мс, если у другого задержка будет ниже 277 мс - 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:65530'
        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-правил 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

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

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

3. Дополнительные настройки Homeproxy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы хотите направлять пользовательский трафик через Redirect и TProxy используя правила межсетевого экрана 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,
    ...
}

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

Спасибо всем кто дочитал до конца, надеюсь этот проект будет вам полезен

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