Podkop Plus
|
|
|
НЕ ПИШИТЕ с проблемами Podkop Plus в официальный Telegram-чат. Это независимый форк. Разработчики и участники оригинального чата не имеют отношения к этому проекту.
- Нашли баг или есть проблема? Создайте Issue в этом репозитории.
- Не хотите или не умеете создавать Issue? Напишите в специальный топик чата Podkop Plus.
Установка
sh <(wget -O - https://raw.githubusercontent.com/ushan0v/podkop-plus/main/install.sh)Что нового в этом форке
- Добавлена поддержка подписок.
- Интеграция Zapret, Zapret2 и ByeDPI как отдельных действий секции.
- Поддержка sing-box extended и транспорта XHTTP.
- Обновленный LuCI-интерфейс и расширенное управление секциями.
- Новые условия маршрутизации.
- Поддержка каскадных подключений (подключение к outbound секции через другой).
- Режим сервера с возможностю поднять собственный VPN/Proxy для подключения внешних устройств.
- Менеджер обновлений и установки компонентов.
- Встроенный мониторинг соединений.
Варианты sing-box
- stable — оригинальная полная версия
sing-box. - tiny — официальная облегченная версия
sing-box. Занимает меньше места. По функционалу идентичнаstable, за исключением отсутствия поддержки Tailscale для режима сервера. - extended — модифицированная сборка с расширенным функционалом. Необходима для транспорта XHTTP и протокола MTProto в режиме сервера. Полный списк нововведений: shtorm-7/sing-box-extended.
- extended compressed — версия, полностью аналогичная
extended, но бинарный файл сжат упаковщиком UPX. Значительно экономит место при сохранении всего функционала. Сжатая версия может работать нестабильно на некоторых устройствах.
Подписки
- Реализована поддержка основных форматов: sing-box json, uri/base64 списки, clash/mihomo
- Добавлено чтение метаданных подписки.
- Подписки поддерживают HWID авторизацию.
- Возможность исключать серверы из URLTest по стране, названию и регулярному выражению.
- Для указания кастомного заголовка
User-Agentпри скачивании подписки добавьте его в форматеURL | User-Agent). - Для расшифровки подписок в формате
happ://cryptиспользуйте сервис leeeet.dev/happ-decryptor.
Секции
Podkop Plus расширяет набор условий, которые можно использовать в правилах:
- Домены (
domain_suffix) - IP-адреса (
ip_cidr) - Точный полный домен (
domain) - Ключевое слово домена (
domain_keyword) - Регулярное выражение домена (
domain_regex) - Исходные IP-адреса (
source_cidr) - Порт (
port/port_range) - Полностью маршрутизированные IP-адреса
- Встроенные наборы правил
- Наборы правил (домены)
- Наборы правил (домены и подсети)
- Списки доменов и IPs
Для Исходные IP-адреса и Полностью маршрутизированные IP-адреса можно не только вручную вводить IP-адреса, но и выбирать устройство в локальной сети из удобного списка с именами.
Особенности работы некоторых условий:
- Исходные IP-адреса: работает как логическое И с остальными правилами. В секцию уйдет только тот трафик устройства, который совпал с другими заданными условиями (например, с указанными доменами или подсетями). Остальной трафик пойдет напрямую.
- Полностью маршрутизированные IP-адреса: работает независимо от других условий. Абсолютно весь трафик указанного устройства будет принудительно направлен через действие этой секции.
- Порт: работает как логическое И с остальными правилами. Если заданы другие условия (например, домены или IP-адреса), через секцию пойдет только их трафик, обращающийся к этому порту. Если указан только порт (без других условий), абсолютно весь трафик на этот порт будет направлен через секцию, независимо от адреса назначения.
Наборы правил
Наборы правил (домены) принимают sing-box списки в форматах .srs и .json. Можно указывать как локальные пути, так и удаленные ссылки. Такие списки добавляются только в конфигурацию sing-box.
Наборы правил (домены и подсети) принимают те же форматы, но дополнительно извлекают подсети и добавляют их в nftables. Это полезно для списков, где важны не только домены, но и IP-диапазоны. Извлечение подсетей требует дополнительной нагрузки на роутер, поэтому секции разделены.
Списки доменов и IPs
Секция Списки доменов и IPs объединяет списки доменов и подсетей. Принимает локальные и удаленные .lst списки. Добавлена поддержка смешанных списков.
Серверы
Podkop Plus позволяет поднять собственный VPN/Proxy сервер прямо на роутере для подключения внешних устройств.
Поддерживаемые протоколы: VLESS, VMess, Trojan, Shadowsocks, SOCKS, Hysteria2 и Tailscale.
Вы можете выбрать, как роутер будет обрабатывать трафик подключенного к нему клиента:
Правила Podkop Plus— трафик подчиняется правилам маршрутизации, то есть обрабатывается так же, как трафик устройств в локальной сети.Напрямую— весь трафик клиента идет напрямую в интернет, минуя обходы.Выбранная секция— весь трафик клиента принудительно заворачивается в выбранную секцию.
Для подключения к серверу из внешней сети необходим выделенный (белый) IP-адрес от провайдера и открытый порт в Firewall роутера. Если у вас нет выделенного IP-адреса, используйте протокол Tailscale - он позволяет подключаться к вашему серверу из любой точки мира даже за NAT.
Интеграция Zapret
Zapret доступен как действие отдельной секции. Используется bol-van/zapret в OpenWrt-пакете zapret из релизов remittor/zapret-openwrt.
Вы можете найти адаптированные и проверенные стратегии zapret для Podkop Plus в специальном репозитории: ushan0v/podkop-plus-zapret-strategies.
Реализация: sing-box отбирает трафик секции и отправляет его в direct outbound с отдельным routing_mark -> zapret принимает помеченные пакеты из очереди (4000-4255) и применяет выбранную стратегию DPI-обхода.
Для стратегии zapret намеренно запрещены:
- шаблоны и hostlist placeholders:
<HOSTLIST>,<HOSTLIST_NOAUTO>; - hostname/IP selectors внутри самой стратегии:
--hostlist*,--hostlist-auto*,--ipset*; - ручное управление очередью и fwmark:
--qnum,--dpi-desync-fwmark; - режимы, которые ломают lifecycle процесса:
--daemon; - режимы, которые не должны быть итоговой стратегией запуска:
--dry-run,--version; - внешние файлы аргументов вида
@fileили$file, которые обходят встроенную валидацию и управление очередями.
Интеграция Zapret2
Zapret2 доступен как отдельное действие секции zapret2. Используется bol-van/zapret2 в OpenWrt-пакете zapret2 из релизов remittor/zapret-openwrt.
Реализация: sing-box отбирает трафик секции и отправляет его в direct outbound с отдельным routing_mark -> zapret2 принимает помеченные пакеты из очереди (4300-4555) и применяет выбранную стратегию DPI-обхода.
NFQWS2 Strategy принимает параметры nfqws2 без --qnum и без базовых Lua-инициализаций: Podkop Plus добавляет очередь, --fwmark и стандартные zapret2 Lua-модули самостоятельно. Свои --blob и --lua-init допустимы для расширенных стратегий.
Для стратегии zapret2 намеренно запрещены:
- шаблоны и hostlist placeholders:
<HOSTLIST>,<HOSTLIST_NOAUTO>; - hostname/IP selectors внутри самой стратегии:
--hostlist*,--hostlist-auto*,--ipset*; - ручное управление очередью и fwmark:
--qnum,--fwmark,--dpi-desync-fwmark; - режимы, несовместимые с управляемой NFQUEUE-архитектурой:
--fuzz,--intercept=0; - режимы, которые ломают lifecycle процесса:
--daemon; - режимы, которые не должны быть итоговой стратегией запуска:
--dry-run,--version; - внешние файлы аргументов вида
@fileили$file, которые обходят встроенную валидацию и управление очередями.
Интеграция ByeDPI
ByeDPI доступен как действие отдельной секции. Используется DPITrickster/ByeDPI-OpenWrt.
Реализация: sing-box отбирает трафик секции и отправляет его в локальный SOCKS5 outbound -> ciadpi принимает соединение на 127.0.0.1:1080+ и применяет выбранную стратегию DPI-обхода.
Для стратегии ByeDPI намеренно запрещены:
- ручное назначение listen-адреса и порта:
--ip,-i,--port,-p; - прозрачный режим, несовместимый с SOCKS5-подключением:
--transparent,-E; - режимы, которые ломают lifecycle процесса:
--daemon,-D; - ручное управление pid-файлами:
--pidfile,-w; - режимы, которые выводят справку или версию и сразу завершают работу:
--help,-h,--version,-v;
Поддержать проект
Если хотите поддержать проект и его развитие, это можно сделать здесь:
- 💳 Карты РФ / СБП / Tinkoff Pay: Донат на CloudTips
- 💎 TON / USDT (сеть TON):
UQBuYHpmHorHquBItuuUsNJJs5lWoP6Bi0cgY-gM5RCQvYgC - 🟢 USDT (сеть TRC-20):
TR4SXiL9sV2GwNz8mDbJkN8SmK9jQ3GuZF - 🪙 USDT (сеть ERC-20 / BEP-20):
0x21F86eF81d33A449037d6E750D2504BF225EAA9d