Если вы хотите добавить подписочную ссылку в podkop, важно знать главное сразу: штатный podkop подписки не поддерживает — он принимает только одиночные vless://-ссылки, либо json конфигурации. Для работы с subscription URL нужен форк с поддержкой подписок (Netshift). В этой инструкции — чем подписка отличается от одиночной ссылки, как поставить форк и настроить автообновление серверов.

Что такое подписочная ссылка и чем она отличается от vless://

Одиночная ссылка vless:// — это один сервер. Подписочная ссылка (subscription URL) — это адрес вида https://provider.com/sub/ВАШ_ТОКЕН, по которому лежит список из нескольких серверов сразу. Что это даёт:

  • серверы обновляются автоматически — если провайдер сменил адрес или добавил новые локации, роутер подтянет их сам;
  • не нужно вручную менять ссылку при каждом изменении на стороне сервиса;
  • можно переключаться между серверами из списка, не трогая конфиг.

Что понадобится: роутер на OpenWrt 23.05+, доступ по SSH, подписочная ссылка от вашего VPN-сервиса, и уже установленный (или готовый к установке) podkop.

Как устроена подписочная ссылка

Внутри подписки — base64-закодированный список конфигов (vless/vmess/ss/trojan). Посмотреть содержимое перед установкой полезно, чтобы убедиться, что формат поддерживается:

wget -qO- 'https://provider.com/sub/ВАШ_ТОКЕН' | base64 -d

Замените URL на свою ссылку в одинарных кавычках. В выводе вы увидите строки vless://..., vmess://... — это и есть серверы подписки.

Форматы подписок бывают разные: «сырой» base64-список (самый распространённый), Clash (YAML) и sing-box (JSON). Форк Netshift ориентирован в первую очередь на базовые форматы — экзотические Clash-конфиги могут распознаться не полностью.

Если же на руках не подписка, а один JSON-конфиг sing-box или Xray-core (например, серверный inbound), подписка тут не нужна — проще сразу получить vless://-ссылку через конвертер JSON → VLESS и вставить её в штатный podkop.

Подписка = ваши учётные данные. По подписочной ссылке доступны все ваши серверы. Не публикуйте её и не вставляйте на посторонние сайты.

Что такое форк Netshift и зачем он нужен

Netshift — форк podkop, который добавляет поддержку подписок и автообновление серверов, сохраняя привычный интерфейс.

ВозможностьОригинальный podkopNetshift
Одиночная vless://дада
Подписочная ссылканетда
Автообновление серверовнетда
Выбор сервера из списканетда

Совместимость: Netshift ставится вместо оригинального podkop (это форк, а не дополнение) — держать оба одновременно нельзя, они конфликтуют за один и тот же механизм маршрутизации и DNS.

Риски стороннего форка: он развивается отдельно от оригинала, поэтому исправления и новые протоколы могут приходить в другом темпе. Взвесьте, нужна ли вам именно подписка, или хватит одной ссылки в штатном podkop.

Шаг 1. Подготовка

Сделайте бэкап и сохраните текущий конфиг podkop:

sysupgrade -b /root/backup-before-netshift.tar.gz
cp /etc/config/podkop /root/podkop.bak
df -h /overlay

Шаг 2. Удаляем оригинальный podkop (если он стоит)

service podkop stop
opkg remove luci-app-podkop podkop        # OpenWrt 24.10
# на OpenWrt 25.12: apk del luci-app-podkop podkop

После удаления в системе остаются sing-box и dnsmasq-full — они нужны и форку, переустанавливать их не придётся.

Шаг 3. Устанавливаем форк с поддержкой подписок

Инфо: актуальный репозиторий проекта — github.com/yandexru45/netshift. Старый адрес yandexru45/podkop-evolution сохранён только для совместимости с уже установленными системами — для новой установки берите netshift. Пакеты после переименования называются netshift, luci-app-netshift и luci-i18n-netshift-ru (а не podkop_*): формат .ipk для OpenWrt 24.10 и .apk для 25.12 и новее. Проект в статусе беты — конкретные версии в релизах меняются часто, поэтому точные имена файлов сверяйте на странице Releases.

Установка через install-скрипт:

sh <(wget -O - https://raw.githubusercontent.com/yandexru45/netshift/refs/heads/main/install.sh)

Ручной способ — скачать два пакета из Releases и поставить:

cd /tmp
wget https://github.com/yandexru45/netshift/releases/download/.../netshift_....ipk
wget https://github.com/yandexru45/netshift/releases/download/.../luci-app-netshift_....ipk
# OpenWrt 24.10 (opkg)
opkg install ./netshift*.ipk ./luci-app-netshift_*.ipk
# OpenWrt 25.12 (apk): скачивайте .apk и ставьте
# apk add --allow-untrusted ./netshift*.apk ./luci-app-netshift_*.apk

Проверьте версию:

opkg info netshift | grep Version     # OpenWrt 24.10
# на OpenWrt 25.12: apk info netshift

Шаг 4. Добавляем подписочную ссылку

  1. LuCI → Services → Netshift.
  2. В типе конфигурации выберите Subscription (Outbound from subscription).
  3. Вставьте URL подписки в соответствующее поле.
  4. После сохранения форк подтянет список серверов — выберите нужный сервер из выпадающего списка.
  5. Задайте интервал автообновления подписки (например, раз в сутки).
  6. Save & Apply.

Шаг 5. То же через SSH и UCI

Пример полей подписки в /etc/config/podkop:

config main 'main'
	option mode 'subscription'
	option subscription_url 'https://provider.com/sub/ВАШ_ТОКЕН'
	option outbound_index '0'
	option update_interval '86400'

UCI-командами:

uci set podkop.main.subscription_url='https://provider.com/sub/ВАШ_ТОКЕН'
uci commit podkop
service podkop restart

Шаг 6. Проверка

logread -e netshift | tail -20

Ищите строки об успешной загрузке подписки. Затем проверьте в интерфейсе, что список серверов заполнился, и на клиенте — что внешний IP сменился и заблокированные сайты открываются. Кэш подписки обычно лежит в рабочем каталоге podkop (/etc/netshift или /tmp), туда форк складывает загруженный список.

Выбор и переключение сервера

Чтобы сменить сервер, не меняя ссылку, — просто выберите другой пункт из списка серверов подписки в LuCI и примените. Если форк поддерживает автовыбор по задержке, включите его в настройках секции — тогда будет выбираться самый быстрый сервер.

Типичные проблемы

«Subscription fetch failed» — подписка не скачивается. Проверьте: выходит ли роутер в интернет, правильный ли URL, установлен ли ca-bundle (для HTTPS-подписок нужны корневые сертификаты — opkg install ca-bundle, на 25.12 — apk add ca-bundle). Проверьте вручную: wget -qO- 'ВАШ_URL' | head.

Подписка скачалась, но список серверов пустой. Формат подписки не распознан. Декодируйте её (base64 -d) и посмотрите, что внутри — возможно, это Clash/YAML, который форк не разбирает.

После установки форка слетели старые настройки. Форк — отдельный пакет; часть настроек оригинального podkop могла не перенестись. Восстановите нужное из /root/podkop.bak, но учтите, что структура конфигов может отличаться.

Конфликт версий с sing-box. Если форк требует более свежий sing-box, чем установленный, — обновите движок: см. как обновить sing-box.

Как откатиться на оригинальный podkop

service netshift stop
opkg remove luci-app-netshift netshift        # OpenWrt 24.10
# на OpenWrt 25.12: apk del luci-app-netshift netshift
sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/podkop/refs/heads/main/install.sh)
cp /root/podkop.bak /etc/config/podkop
service podkop restart

Часто задаваемые вопросы (FAQ)

Зачем подписка, если можно вставить одну ссылку? Подписка избавляет от ручного обновления: серверы меняются автоматически. Если сервер один и он статичный — хватит и одиночной vless:// в штатном podkop.

Будет ли форк обновляться вместе с оригиналом? Нет, Netshift развивается независимо. Обновления приходят в своём темпе.

Поддерживает ли форк Hysteria2 / Shadowsocks / Trojan? Зависит от движка: sing-box эти протоколы поддерживает, а войдут ли они в подписку — определяет формат самой подписки. Проверьте декодированием.

Можно ли использовать несколько подписок сразу? В большинстве версий — одна подписка на секцию. Несколько подписок реализуются через дополнительные секции, если форк это позволяет.

Как часто обновляется подписка? По заданному интервалу (update_interval). Типично — раз в сутки; чаще смысла нет.

Безопасно ли давать роутеру подписочную ссылку? Ссылка хранится в конфиге роутера в открытом виде. Роутер под вашим контролем — это безопасно, но саму ссылку никому не передавайте.

Заключение

Подписочная ссылка в podkop возможна только через форк: снять бэкап → удалить оригинальный podkop → поставить Netshift → выбрать тип Subscription → вставить URL и выбрать сервер. Если подписка вам не нужна, оставайтесь на штатном podkop с одиночной ссылкой. Полный разбор возможностей форка — в статье настройка Netshift на OpenWrt, а при конфликте версий движка поможет обновление sing-box.