Шаринг на роутере OpenWrt: OScam и CCcam настройка

Главная Статьи Шаринг на роутере OpenWrt: OScam и CCcam настройка

Дата публикации

05.06.2026

Шаринг на роутере OpenWrt: OScam и CCcam настройка

Шаринг на роутере OpenWrt — вполне рабочая история, если понимаешь ограничения железа и не пытаешься запустить x86-бинарник на mips-чипе. Я прошёл через все эти грабли: нехватка flash, кривые конфиги, reader в вечном CONNECTING — и ниже собрал всё, что реально работает в 2026 году на актуальных сборках OpenWrt 23.05.

Главное, что нужно понять сразу: нативного CCcam на роутере не будет. CCcam — закрытый бинарник под x86 и определённые ARM-приставки, он не запустится на mips. Зато OScam реализует протокол CCcam и как клиент, и как сервер — этого достаточно для любого практического сценария.

Подходит ли ваш роутер для шаринга на OpenWrt

Прежде чем что-то устанавливать, нужно честно оценить железо. Многие начинают настройку, а потом обнаруживают, что OScam просто не влезает во flash или не хватает RAM под работу демона.

Минимальные требования: архитектура, RAM и свободный flash

Минимум для нормальной работы — 64 МБ RAM и 8 МБ flash, но последнее почти всегда требует extroot на USB. Сам бинарник OScam весит 1–3 МБ в зависимости от архитектуры и включённых модулей. Плюс конфиги, логи, системные компоненты — на роутере с 8 МБ flash без внешнего накопителя места катастрофически не хватает.

По архитектуре: ar71xx (старые Atheros), ath79 (новые), mipsel_24kc, mips_24kc, aarch64 — всё это поддерживается. Главное, что пакет в репозитории должен соответствовать вашей архитектуре.

Почему важен внешний USB-накопитель (extroot)

Extroot — это монтирование USB-раздела как /overlay, что фактически расширяет корневую файловую систему роутера. Без него на 8 МБ flash после базовой системы OpenWrt остаётся от силы 1–2 МБ свободного места. OScam туда не влезет физически.

Ещё один аргумент в пользу USB: логи. OScam может писать несколько мегабайт в день при активном использовании. Если logfile указывает на /tmp — это tmpfs, данные пропадут при перезагрузке. Если на flash — забьёте её за несколько дней. USB решает обе проблемы.

Один нюанс с USB: флешки дешевле 5$ часто отваливаются под нагрузкой из-за недостаточного питания по порту роутера. Используйте брендовые накопители или питаемый USB-хаб. HDD вообще лучше не подключать напрямую к роутеру без внешнего питания.

Проверка архитектуры процессора через opkg print-architecture

Первая команда, которую стоит выполнить после входа по SSH:

opkg print-architecture

Вы увидите что-то вроде arch mipsel_24kc 10 или arch aarch64_cortex-a53 10. Эта строка определяет, какие ipk-пакеты вам подходят. Если скачиваете бинарник вручную — он должен совпадать с этой архитектурой. Несоответствие даст ошибку при установке или при запуске (ошибка ELF format).

Свободное место проверяется так:

df -h

Смотрите на строку с /overlay — именно там устанавливаются пакеты. Если там 500 КБ свободно, без extroot не обойтись.

OScam или CCcam: что выбрать под слабое железо

OScam — единственный разумный выбор для OpenWrt-роутера. Он опенсорсный, активно развивается, есть пакеты под все актуальные архитектуры. CCcam нативно работает только на x86 и некоторых ARM-приставках типа DM500/800. На mips-роутере запустить оригинальный CCcam нельзя в принципе.

При этом OScam прекрасно разговаривает по протоколу CCcam — то есть ваши ресиверы или клиенты, настроенные на CCcam, будут работать с OScam без каких-либо изменений на клиентской стороне.

Установка OScam на OpenWrt через opkg и extroot

Установка делается в несколько шагов. Если место во flash есть — просто opkg. Если нет — сначала extroot, потом opkg.

Обновление списков пакетов: opkg update

Всегда начинайте с обновления индексов:

opkg update

После обновления проверьте, есть ли oscam в репозитории:

opkg list | grep oscam

На официальных сборках OpenWrt 23.05 пакет oscam обычно доступен в feeds. Если не нашли — ищите oscam-trunk или скачивайте ipk вручную с репозитория сборок под вашу архитектуру.

Установка пакета oscam из репозитория или вручную через ipk

Стандартная установка:

opkg install oscam

Если пакета нет в репозитории и вы скачали ipk вручную (например, через wget на роутер):

wget -O /tmp/oscam.ipk http://your-source/oscam_mipsel_24kc.ipk
opkg install /tmp/oscam.ipk

Если установщик жалуется на зависимости — доустановите их вручную. Чаще всего нужны libusb-1.0, libssl3, libcrypto3:

opkg install libusb-1.0 libssl3 libcrypto3

Настройка extroot на USB для нехватки места

Если свободного места меньше 4 МБ, сначала настройте extroot. Понадобится флешка от 2 ГБ, отформатированная в ext4.

Установите нужные пакеты (они маленькие и в базовой системе):

opkg install block-mount kmod-usb-storage kmod-fs-ext4 e2fsprogs

Подключите флешку, найдите её имя:

block info

Обычно это /dev/sda1. Форматируем в ext4:

mkfs.ext4 /dev/sda1

Копируем overlay на флешку и монтируем как extroot:

mount /dev/sda1 /mnt
tar -C /overlay -cvf - . | tar -C /mnt -xf -
umount /mnt

Добавляем в /etc/config/fstab:

config mount
    option target '/overlay'
    option device '/dev/sda1'
    option fstype 'ext4'
    option options 'rw,sync'
    option enabled '1'
    option enabled_fsck '0'

Перезагружаем. После перезагрузки df -h должен показать /overlay с размером вашей флешки. Теперь opkg install oscam пройдёт без проблем.

Пути к бинарнику и каталогу конфигов /etc/oscam

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

  • Бинарник: /usr/bin/oscam
  • Конфиги: /etc/oscam/ (иногда /var/etc/oscam/ — зависит от сборки)
  • Init-скрипт: /etc/init.d/oscam

Включаем автозапуск и стартуем:

/etc/init.d/oscam enable
/etc/init.d/oscam start

Конфигурационные файлы: oscam.conf, oscam.server, oscam.user

Это самая важная часть. Пустой установленный OScam без правильных конфигов не сделает ничего полезного. Разберём каждый файл по очереди.

oscam.conf: секции [global], [webif] и порт веб-интерфейса 8888

Файл /etc/oscam/oscam.conf — главный конфиг. Минимальный рабочий вариант:

[global]
logfile = /mnt/usb/oscam.log
loghistorysize = 200
maxlogsize = 2048
nice = -1
WaitForCards = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 5
httpallowed = 192.168.1.0-192.168.1.255

Параметр maxlogsize в килобайтах — обязательно ставьте, иначе лог займёт всё место. 2048 КБ (2 МБ) вполне достаточно. httpallowed ограничивает доступ к веб-интерфейсу только из локальной сети — оставлять его открытым наружу не стоит.

Обратите внимание: logfile указывает на USB-раздел. Если написать /tmp/oscam.log — лог пропадёт при перезагрузке. Если написать путь во flash — рискуете её забить.

oscam.server: настройка протокола cccam/newcamd клиента

Файл /etc/oscam/oscam.server описывает, откуда OScam берёт ключи. Если подключаетесь к внешнему серверу по протоколу CCcam:

[reader]
label = my_cccam
protocol = cccam
device = server.example.com,12000
user = youruser
password = yourpassword
group = 1
cccversion = 2.3.0
cccmaxhops = 1
inactivitytimeout = 30
reconnecttimeout = 10

Для протокола newcamd (порты обычно 15000–15099):

[reader]
label = my_newcamd
protocol = newcamd
device = server.example.com,15000
key = 0102030405060708091011121314
user = youruser
password = yourpassword
group = 1

cccmaxhops = 1 — важный параметр, ограничивает цепочку ретрансляции. inactivitytimeout = 30 означает разрыв соединения через 30 секунд неактивности — помогает при нестабильных серверах. Если провайдер периодически меняет IP, в поле device лучше использовать домен, а не адрес — OScam будет резолвить его при каждом реконнекте.

oscam.user: создание учётных записей и группы

Файл /etc/oscam/oscam.user нужен, если вы раздаёте шаринг своим клиентам или ресиверам в сети:

[account]
user = client1
pwd = clientpassword
group = 1
au = 1
uniq = 0
monlevel = 0

Параметр group = 1 должен совпадать с group = 1 в oscam.server — именно так OScam понимает, какой ридер обслуживает какого клиента. au = 1 включает автообновление авторизации. uniq = 0 позволяет подключаться одновременно с нескольких устройств.

Права на файлы с паролями обязательно ограничьте:

chmod 600 /etc/oscam/oscam.conf
chmod 600 /etc/oscam/oscam.user
chmod 600 /etc/oscam/oscam.server

oscam.services и привязка по reader/group

Файл /etc/oscam/oscam.services позволяет фильтровать каналы по CAID и SID. Если не нужна тонкая фильтрация, его можно не создавать — OScam будет пропускать всё.

Если хотите ограничить клиента только определёнными каналами, добавьте в oscam.user параметр services = my_services и создайте соответствующий раздел в oscam.services с нужными CAID.

Проверка работы, мониторинг и автозапуск

OScam запущен, конфиги написаны. Теперь нужно убедиться, что он реально работает, а не просто висит в памяти.

Веб-интерфейс OScam: статус reader и ECM-время

Заходите на http://192.168.1.1:8888 (замените адрес на IP вашего роутера). Вас встретит таблица с ридерами. Смотрите на колонку Status:

  • CONNECTED (зелёный) — всё хорошо, ридер подключён к серверу
  • CONNECTING (жёлтый) — пытается подключиться, ждите или ищите проблему
  • DISCONNECTED (красный) — соединение разорвано

Колонка ECM Time показывает время ответа на запрос расшифровки. До 300 мс — отлично. 300–600 мс — приемлемо. Выше 600 мс — начнутся фризы изображения. Высокое ECM time обычно означает либо перегруженный сервер, либо слабый CPU роутера, либо большой пинг до сервера.

Чтение логов через logfile и tail

Если что-то не работает, первым делом смотрите лог:

tail -f /mnt/usb/oscam.log

Там видно все реконнекты, ошибки авторизации, decode found/not found. Если лог пустой при указанном logfile — проверьте, что путь существует и у OScam есть права на запись.

Чтобы лог не разрастался, в oscam.conf уже указан maxlogsize = 2048. Дополнительно можно поставить loghistorysize = 200 — ограничивает историю в веб-интерфейсе.

Автозапуск при перезагрузке роутера

Команда уже была выше, но повторю явно:

/etc/init.d/oscam enable

Это создаёт симлинк в /etc/rc.d/. Проверить, что автозапуск включён:

/etc/init.d/oscam enabled && echo "enabled" || echo "disabled"

Интерпретация статусов: green/red, ECM time, decode

В разделе «Live Log» веб-интерфейса строки decode означают: found — ключ получен и отдан клиенту, not found — сервер не смог расшифровать канал (нет подписки или канал не поддерживается). Если видите постоянные not found при статусе CONNECTED — проблема на стороне сервера или неверный CAID.

Зелёный индикатор ридера в веб-интерфейсе не означает, что всё работает — он показывает только факт соединения. Смотрите реальные decode-запросы в логе.

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

Вот что чаще всего ломается при шаринге на роутере OpenWrt — и как это чинить.

OScam не стартует: нехватка памяти и зависимости libusb

Если /etc/init.d/oscam start не даёт ошибки, но OScam не запущен (проверить: ps | grep oscam), первым делом запустите бинарник вручную:

/usr/bin/oscam -c /etc/oscam -b

Ошибки покажутся прямо в терминале. Если видите что-то про «not found» или «invalid ELF» — не хватает зависимостей или архитектура не совпадает:

ldd /usr/bin/oscam

Эта команда покажет, каких библиотек не хватает. Доставьте их через opkg. Обычно это libusb-1.0, libpcsclite, или библиотеки openssl. Если ldd говорит «not a dynamic executable» — бинарник собран статически, зависимости не нужны.

Reader постоянно в статусе CONNECTING

Это самая частая проблема. Причин несколько:

Неверные данные в oscam.server. Перепроверьте host, port, username, password символ за символом. Лишний пробел в пароле — уже ошибка.

Блокировка фаервола OpenWrt. По умолчанию исходящие соединения в OpenWrt открыты, но если вы случайно изменили политику FORWARD или OUTPUT, добавьте правило в /etc/config/firewall:

config rule
    option name 'Allow-OScam-out'
    option src 'lan'
    option dest 'wan'
    option dest_port '12000'
    option proto 'tcp'
    option target 'ACCEPT'

После изменений: /etc/init.d/firewall restart.

Порт закрыт на стороне провайдера. Проверьте доступность порта прямо с роутера:

nc -zv server.example.com 12000

Если timeout — порт недоступен с вашей стороны. Или его сменили — уточните актуальные данные.

Двойной NAT или серый IP. Если у вас серый IP от интернет-провайдера, вы можете подключаться к внешнему серверу как клиент. Но если хотите принимать входящие подключения (быть сервером для других) — без проброса портов или VPN это не работает. Проброс делается в /etc/config/firewall через redirect.

Высокое ECM time и фризы изображения

Если ECM time стабильно выше 800 мс — изображение будет замерзать. Что делать:

Первое — проверить загрузку CPU: top. Если oscam занимает 80–90% CPU, роутер просто не тянет нагрузку. Уменьшите количество одновременных клиентов или ридеров.

Второе — отключить debug-логирование в oscam.conf:

[global]
logdoosd = 0
disablelog = 0
loghistorysize = 0

Debug-логи дают заметную нагрузку на слабый CPU и медленный flash/USB.

Третье — проверить пинг до сервера. Если сервер в другой стране и пинг 150+ мс, ECM time никогда не будет низким.

Переполнение flash и зависание роутера

Если роутер начинает глючить, команды зависают, SSH перестаёт отвечать — первое, что проверяю: df -h и free. Переполненный flash или исчерпанная RAM дают именно такую картину.

Если лог идёт на flash — немедленно переключите его на USB или отключите совсем (disablelog = 1 в [global]). Перезапустите OScam. Если места не осталось вообще — удалите старые логи через SSH и освободите место.

Долгосрочное решение — только extroot. На роутере с 8 МБ flash без него шаринг на роутере OpenWrt работает ненадёжно, особенно при активном логировании.

Частые вопросы

Можно ли запустить именно CCcam-сервер на роутере с OpenWrt?

Нативный CCcam — это закрытый бинарник, скомпилированный под x86 и некоторые ARM-платформы (DVB-приставки). На mips-роутерах с OpenWrt он физически не запустится. Но это не проблема: OScam полностью реализует протокол CCcam — и как клиент (подключается к CCcam-серверу через параметр protocol = cccam в oscam.server), и как сервер (раздаёт ключи клиентам по протоколу CCcam). Для ваших ресиверов разница будет незаметна.

Сколько свободного места во flash нужно для OScam?

Сам бинарник OScam занимает 1–3 МБ в зависимости от архитектуры. Конфиги небольшие — несколько килобайт. Проблему создают логи: при активном использовании они растут быстро. Проверьте свободное место командой df -h — смотрите строку /overlay. Если свободно меньше 4 МБ, без extroot на USB не обойтись. На роутерах с 8 МБ flash extroot — это не опция, а обязательный шаг.

Какие порты открывать для шаринга на OpenWrt?

Веб-интерфейс OScam по умолчанию работает на порту 8888. Протокол newcamd использует порты в диапазоне 15000–15099 (зависит от настроек сервера). Протокол CCcam — обычно 12000–13000. Важный момент: исходящие соединения к серверу провайдера в OpenWrt открыты по умолчанию, проблем быть не должно. А вот если вы принимаете входящие подключения (раздаёте клиентам внутри сети), нужно разрешить нужный порт в /etc/config/firewall и не забыть перезапустить firewall.

Почему reader в OScam висит в статусе CONNECTING?

Причин несколько. Самая частая — неверные данные в /etc/oscam/oscam.server: опечатка в host, неправильный port, ошибка в username или password. Вторая причина — порт на стороне сервера закрылся или сменился, что бывает у нестабильных провайдеров. Проверьте доступность командой nc -zv server.example.com 12000 прямо с роутера. Если connection refused или timeout — проблема не в OScam, а в сети или данных подключения.

Как выбрать поставщика строки для подключения?

Смотрите на несколько параметров. Аптайм сервера — нормальный показатель от 98% и выше, иначе будете постоянно видеть CONNECTING. ECM time — запрашивайте тестовый доступ и смотрите реальные цифры в веб-интерфейсе OScam, хорошо — до 300 мс. Поддержка нужного протокола — CCcam или newcamd. Наличие тестового периода перед оплатой. И реальная техподдержка — кто-то, кто ответит при проблемах, а не просто продаст строку и исчезнет.

Будет ли шаринг стабильно работать на слабом роутере?

Для одного-двух ресиверов большинство роутеров на OpenWrt справляются нормально — один OScam-процесс потребляет около 5–15 МБ RAM и минимально грузит CPU при небольшом числе запросов. Проблемы начинаются при множестве одновременных клиентов или если debug-логирование включено на максимум. В таком случае растёт ECM time и появляются фризы. Рецепт: отключите debug-лог, не держите больше ридеров, чем реально нужно, и следите за top при первом запуске.

О статье

  • Практические советы и инструкции
  • Материалы по спутниковому ТВ
  • Поддержка и помощь 24/7