TGViewer
ITDog ITDog @itdoginfo · 19.3K subscribers
Post #156 42.9K
ITDog Podkop Beta 0.4.0 Podkop - программа для "точечной маршрутизации" трафика на уровне роутера. Написана для ОС OpenWrt и имеет веб-интерфейс. Под капотом Sing-box и nftables 📦🔥 Возможности: - VLESS. Импорт через ссылку vless://. - Shadowsocks. Импорт через…
Почему Podkop использует Sing-box для направления трафика, а не Dnsmasq + nftables sets

Сначала чутка дедовых историй. Помните Getdomains? Это скрипт настраивающий OpenWrt на "точечную маршрутизацию" по списку доменов. Я его написал, потому что два года назад десяток людей в чате попросили автоматизировать развёртывание этих настроек на роутере, и чтобы без Ansible! 😣 Скрипт набрал популярность. Думаю, из-за его простоты и чёткого выполнения своей задачи. Мы его допиливали по необходимости, но всё равно не хватало гибкости, более удобного управления и, конечно же, веб-интерфейса.

Прошлым летом, имея за плечами фидбэк от нескольких тысяч людей и с пониманием, что именно нужно, я начал делать Podkop. Начал с той же схемы, что и у Getdomains: Dnsmasq + nftables sets. Но она имеет свои недостатки:

1. Добавление IP-адресов CDN-сервисов в список, который уходит в VPN/Proxy.

Мне въелся в память пример: сходили к ChatGPT (который за Cloudflare), IP-адреса добавились, игра Escape from Tarkov лагает 🤷‍♂️ потому что у них что-то тоже находится за Cloudflare и частично пошло через VPN/Proxy.
В общем, то что должно было не ходить в туннель, пошло в него и получили проблемы. Это лишь один пример, в чате проблемы с CF всплывали стабильно несколько раз в неделю.

2. Если одна точка выхода не устраивает и нужно две, три и более, то возникают сложности с разруливанием между ними по доменам.

Разделить по подсетям/IP-адресам не составляет труда, а когда доходит до доменов, получается каша. Это особенно становится заметно, когда вы используете два сервиса одной компании, отправляя их в разные "точки выхода". Я пытался костылить, жонглировать приоритетом правил в nftables, но по итогу всё равно получалось 💩

3. Есть ещё несколько приятных вещей, которые позволяют делать Sing-box/Xray. И настройка логики в целом проще: просто раскидываешь всё по тегам, и оно работает.

FakeIP

Со схемы dnsmasq+sets хоть и было болезненно уходить, но это необходимо для развития. Зимой я переписал логику управления трафиком на sniffing через Sing-box. А для снижения нагрузки на CPU роутера была выбрана схема FakeIP. В этом случае ядро Sing-box перегоняет через себя не весь трафик, а только часть, ту самую часть со списком доменов. Вместе с технологией ядра Linux tproxy получаем высокое быстродействие и ещё более "точечную маршрутизацию" без каши. При этом всём с низкой нагрузкой на CPU, потому что не гоним весь трафик через Sing-box.

Тут я хочу поблагодарить наше комьюнити: один пытливый ум откапал эту схему и настроил у себя, потом подтянулось ещё два умных человека и развили эту тему. А дальше уже все подхватили и пошло-поехало. По итогу имеем несколько мануалов по ручной настройке FakeIP/FakeDNS, скрипты для Sing-box/Xray и продукт, который базируется на FakeIP.

Плюсы, надеюсь, понятны. Теперь про минусы:
1. Нужно использовать Sing-box в качестве DNS-сервера. Что плохого, ведь он умеет в DoH, DoT и больше не нужны сторонние программы?

Он должен быть единственным сервером в /etc/config/dhcp, и если по какой-то причине вы сломали Sing-box, то DNS на клиентах вместе с ним пропадает. На самом деле та же самая петрушка, что и со Stubby и подобными: сбилось время? Досвидос 🙋‍♂️ Но Sing-box легче ломается, потому что в нём не только настройки DNS. Это слабое место. Поэтому я сделал обвязку, которая решает эту проблему.

2. Sing-box в OpenWrt весит около 12MB. Роутеры с маленьким количеством флешки грустят без Sing-box/Xray. Но с наличием на рынке Xiaomi AX3000T за 2300р жалобы не принимаются 🙅‍♂️ На самом деле и с маленькими флешками есть варианты, хоть и придётся поднапрячься.

Минусы больше натянутые. Купить нормальный роутер сейчас трудности не составляет и по кошельку не ударит. А перевести домашних клиентов на DNS-сервер роутера - это хорошая практика, даже без использования FakeIP.
  • 👍 285
  • ❤ 52
  • 🔥 15
  • 🤡 3
  • 🤯 2
  • 🎉 2
More from @itdoginfo
  1. Feb 12, 2026Уважаемые Павел и Николай, Нам не особо нужны: - Новый спорный дизайн - Очередные фичи для…
  2. Oct 29, 2025Блог разблокировали. Несколько людей спрашивали подробности. Рассказываю таймлайн: 21 октя…
  3. Oct 25, 2025Мой блог itdog.info заблокировали на территории РФ. Не понравились две статьи, рассказываю…
  4. Oct 8, 2025NAND Foresee в OpenWrt 24.10.3 Две недели назад вышла минорная версия OpenWrt 24.10.3. Сре…
  5. Oct 4, 2025Обзор NanoPi R3S Хороший гигабитный шлюз, а для каких-то задач может выступить в роли мини…
  6. Sep 10, 2025Обзор на Netis NX31 и его прошивка на OpenWrt По тестам это обычная связка MediaTek MT7981…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →