Настройка CCcam в OScam: протокол cccam in oscam и файл oscam.server

Если ты уже сидишь с работающим OScam и держишь в руках C-line от провайдера — эта статья для тебя. Тема cccam in oscam на первый взгляд кажется простой: берёшь конфиг, вписываешь строку, перезапускаешь демон. Но на практике половина людей упирается в «0 cards» или «no matching reader» и не понимает, где сломалось. Разберём всё по порядку — от структуры файла до диагностики в логе.

Что значит cccam в OScam и зачем переходить с CCcam

OScam — это не просто замена CCcam. Это полноценный cardserver, который умеет работать с десятком протоколов одновременно: newcamd, camd35, radegast, gbox — и, конечно, cccam. Причём сразу в двух ролях: как клиент (reader к чужому серверу) и как сервер (раздача карт своим клиентам).

Концепция cccam in oscam означает, что тебе не нужен отдельный процесс CCcam.exe или CCcam-бинарник на ресивере. Всё описывается в одном конфиге, под одним демоном, с единым веб-интерфейсом для мониторинга.

Протокол cccam как клиентский reader в OScam

Когда OScam работает как клиент к CCcam-серверу, он выступает в роли reader с protocol=cccam. Демон открывает TCP-соединение к удалённому хосту, авторизуется по user/password и получает список доступных карт (CAID/provid). Дальше — стандартный ECM-запрос и расшифровка.

Нагрузочные графики показывают реальную картину: OScam держит соединение стабильнее, потребляет меньше RAM, и что важно — пишет в лог значительно больше полезной отладочной информации, чем оригинальный CCcam.

Отличия нативного OScam от старого CCcam-эмулятора

CCcam работал по принципу «один демон — один протокол». OScam изначально проектировался как мультипротокольный сервер. Это значит, что ты можешь одновременно принимать карты по cccam и раздавать их по newcamd — всё в одном процессе.

Ещё одно принципиальное отличие — управление группами. В OScam каждый reader и каждый пользователь привязаны к группам (group=), что даёт тонкий контроль над тем, кто что видит. В CCcam такого гибкого разграничения не было.

Когда оставлять CCcam, а когда переходить полностью на OScam

Если у тебя старый ресивер (например, Dreambox DM500) с прошивкой 2005 года и 32 МБ RAM — CCcam там будет работать, а OScam может не влезть. В таких случаях CCcam оправдан.

Во всех остальных случаях — современный ресивер, VPS, роутер с OpenWRT — OScam выигрывает. Особенно если нужно совмещать несколько источников карт или раздавать их дальше.

Настройка C-line в oscam.server: пошаговый разбор

Файл oscam.server — это где описываются все источники карт. Обычно он лежит по пути /etc/tuxbox/config/oscam.server или /var/keys/oscam.server в зависимости от образа. На некоторых дистрибутивах путь /usr/local/etc/oscam/. Редактируй через SSH (nano, mcedit) или через FTP-клиент.

C-line от провайдера выглядит примерно так:

C: myserver.example.com 12000 myuser mypassword

Эти четыре поля — хост, порт, логин, пароль — раскладываются по параметрам секции [reader].

Структура секции [reader] для протокола cccam

Вот реальный рабочий пример блока:

[reader]
label         = my_cccam_line
protocol      = cccam
device        = myserver.example.com,12000
user          = myuser
password      = mypassword
inactivitytimeout = 30
reconnecttimeout  = 10
group         = 1
cccversion    = 2.3.0
cccmaxhops    = 5
ccckeepalive  = 1
cccreconnect  = 1500

Label — произвольное имя, удобное для идентификации в веб-интерфейсе и логе. Старайся называть осмысленно, особенно если reader'ов несколько.

Параметры device, user, password, port

В параметре device хост и порт пишутся через запятую без пробела. Порт берётся прямо из C-line (второе поле). Типичный диапазон — 12000–25000, но это зависит от конкретного сервера.

Если источник использует динамический IP (сервер без фиксированного адреса), в device указывай DNS-имя, а не IP. OScam умеет периодически разрешать имя заново — это спасает при смене адреса сервера.

inactivitytimeout в секундах — сколько ждать перед тем, как считать соединение мёртвым. 30 секунд — нормальное значение. reconnecttimeout — задержка перед переподключением, 10 секунд обычно достаточно.

cccversion, cccmaxhops, ccckeepalive — что выставлять

cccversion должна совпадать с версией сервера, к которому подключаешься. Рассинхрон версии — одна из самых частых причин отказа авторизации, и об этом почти никто не пишет. Если сервер работает на CCcam 2.3.2, а ты прописал 2.1.4 — авторизация провалится с login failed в логе. Проверяй у провайдера, какую версию он ожидает.

cccmaxhops — максимальное количество хопов, с которых OScam готов принимать карты. Чем меньше — тем лучше ECM time. Значение 5 — разумный компромисс. Ставить 10 и выше смысла нет: карты с большим количеством хопов дают нестабильное время ответа.

ccckeepalive = 1 включает отправку keepalive-пакетов, что важно для соединений через NAT. Без этого некоторые роутеры закрывают «молчащее» TCP-соединение через несколько минут.

Группы (group) и привязка к oscam.user

Параметр group в секции reader определяет, к какой группе принадлежит этот источник карт. В файле oscam.user каждому пользователю тоже прописывается group= — и он видит только те карты, которые приходят из reader'ов его группы.

Если у тебя несколько C-line с одинаковым CAID (например, две линии от разных серверов под один пакет), поставь их в одну группу и настрой group в oscam.user для приоритизации. OScam выберет первый ответивший reader.

Пример записи пользователя для локального dvbapi:

[account]
user     = dvbapi
pwd      = dvbapi
group    = 1
au       = 1

Раздача карт по протоколу cccam (OScam как сервер)

OScam умеет не только принимать карты по cccam, но и раздавать их — как если бы был полноценным CCcam-сервером. Для этого в oscam.conf описывается секция [cccam].

Секция [cccam] в oscam.conf: port, reshare, version

[cccam]
port     = 12000
reshare  = 1
version  = 2.3.0
nodeid   = 0123456789ABCDEF

port — порт, на котором OScam принимает входящие CCcam-соединения. Убедись, что этот порт не занят другим процессом и открыт в firewall. Конфликт портов — популярная проблема, когда на машине крутятся и OScam, и старый CCcam одновременно.

reshare = 1 разрешает переотдачу карт, полученных по внешним reader'ам. Если хочешь раздавать только локально вставленные карты — ставь 0.

nodeid — уникальный идентификатор узла в формате HEX. Можно сгенерировать случайно. Важен для протокола: если два OScam-сервера имеют одинаковый nodeid в сети — будут конфликты.

Создание пользователей в oscam.user

Каждый клиент, который подключается к твоему OScam по cccam, должен иметь учётную запись в oscam.user:

[account]
user         = client1
pwd          = secretpass
group        = 1
cccmaxhops   = 2
cccreshare   = 1
au           = 0

cccreshare на уровне пользователя контролирует, может ли этот клиент дальше перепродавать карты. Если ставишь 0 — клиент получает карты, но не может их переотдавать своим клиентам.

Отдача N-line и контроль reshare/hops

N-line — это строка вида N: host port user pass, которую ты выдаёшь клиентам для подключения к своему OScam. Хост и порт берутся из твоей настройки [cccam], логин/пароль — из oscam.user.

Следи за тем, чтобы cccmaxhops у клиента не превышал значение у тебя на сервере. Иначе клиент будет пытаться запросить карты с большего количества хопов, чем ты готов отдавать.

Привязка к dvbapi и проверка работы на ресивере

OScam сам по себе — это cardserver. Чтобы ресивер расшифровывал каналы, нужно связать OScam с dvbapi-модулем (плагин в Enigma2 или встроенный механизм на других платформах). Это делается через файл oscam.dvbapi и секцию [dvbapi] в oscam.conf.

Файл oscam.dvbapi и приоритеты CAID

Файл oscam.dvbapi (путь тот же, где лежат остальные конфиги) задаёт порядок перебора CAID при расшифровке. Пример:

P: 0500:032830
P: 0500:000000
P: 1702:000000

Первая строка — приоритет. Если у тебя несколько CAID под один пакет, OScam будет пробовать их именно в таком порядке. Неправильный порядок или отсутствующий CAID — частая причина того, что карта есть, а канал не открывается.

Веб-интерфейс OScam (httpport) для мониторинга

В oscam.conf в секции [webif] пропиши:

[webif]
httpport = 8888
httpuser = admin
httppwd  = admin

После перезапуска открывай http://IP_ресивера:8888 — там видно всё: список reader'ов, их статус, текущие ECM-запросы, время ответа, клиентов. Это главный инструмент диагностики.

Чтение статуса reader: CONNECTED, CARD, ECM time

В веб-интерфейсе смотришь на колонку Status у каждого reader'а. CONNECTED — соединение установлено. Рядом будет показано количество карт (например, «2 cards»). Если 0 — сервер подключился, но карт не отдаёт.

Нормальное время ECM — до 300–600 мс. Если видишь стабильно 1000+ мс — это проблема с хопами или пингом до сервера. Выше 1500 мс — канал будет периодически «моргать», декодер не успевает получить ключ вовремя.

Диагностика типичных ошибок подключения cccam

Вот где большинство статей заканчиваются. Мы пойдём дальше.

Reader не переходит в CONNECTED

Чеклист по порядку:

  • Проверить доступность порта: nc -zv myserver.example.com 12000 или telnet myserver.example.com 12000. Если timeout — firewall или сервер не слушает этот порт.
  • Убедиться, что порт в device= совпадает с портом в C-line.
  • Проверить cccversion — должна совпадать с тем, что ожидает сервер.
  • Если за NAT — убедиться, что исходящий TCP-трафик на нужный порт не блокируется.

Включи debug прямо в веб-интерфейсе (раздел Files → Log) или запусти OScam с флагом -d 255. В логе будет строка вида login failed или connection refused — это уже конкретная зацепка.

CONNECTED, но карт нет (0 cards)

Самый распространённый сценарий в теме cccam in oscam. Соединение есть, авторизация прошла, но 0 cards.

  • Сервер не отдаёт карты на твой аккаунт — например, аккаунт заблокирован или пакет не активирован.
  • cccmaxhops слишком мал — карты есть, но они приходят с бо́льшим количеством хопов, чем ты разрешаешь принимать.
  • Неверная группа — reader в группе 1, а пользователь dvbapi в группе 2.
  • На стороне сервера reshare=0 — сервер принципиально не отдаёт карты как share.

Смотри в лог: если после login ok нет строк got card или card added — сервер просто не присылает карты.

Карты есть, но каналы не открываются (ECM ошибки)

Карты в веб-интерфейсе отображаются, а каналы не декодируются. Тут три варианта:

Первый — неверный CAID или provid в oscam.dvbapi. Канал шифруется одним CAID, а в dvbapi прописан другой. Смотри в лог строки no matching reader — там будет написан реальный CAID, который запрашивает демон.

Второй — group reader'а не совпадает с group в oscam.user для dvbapi-пользователя.

Третий — nodeid твоего OScam заблокирован на сервере. Редко, но бывает. В этом случае попробуй сменить nodeid в конфиге.

Анализ oscam.log и уровней debug

OScam пишет лог в файл, путь которого задаётся в oscam.conf:

[global]
logfile = /tmp/oscam.log
maxlogsize = 512

При включённом debug (-d 255 при запуске или через веб-интерфейс) лог становится очень подробным. Ищи:

  • login failed — неверный user/pass или cccversion
  • no matching reader for + CAID — нет подходящего reader'а под этот CAID
  • can't resolve hostname — DNS не разрешается, проверь device=
  • ECM error — карта есть, но ключ не возвращается, возможно reshare-ограничение

Для повседневной работы хватает уровня -d 4. Уровень 255 — только для активной отладки, иначе лог забивается мусором.

Как выбрать источник C-line: критерии без привязки к именам

Важный момент: использование кардшаринга легально только применительно к собственной подписке. Если ты легально подписан на пакет каналов и делишь его в рамках одного домохозяйства — это одна история. Использование чужих карт — другая, и это уже юридически серая или прямо незаконная зона во многих странах.

Говорим здесь только о технических критериях выбора надёжного источника для своих нужд.

Стабильность аптайма и пинг до сервера

ECM time напрямую зависит от пинга до сервера. Если сервер физически в другом конце мира — ждать 800 мс ECM нормально. Если в той же стране — 80–150 мс реально.

Хороший источник держит uptime от 99% и выше. Частые реконнекты (несколько раз в час) — признак перегруженного или нестабильного сервера. Смотри на счётчик Reconnects в веб-интерфейсе OScam.

Количество локальных карт против решара

Локальная карта — это карта, физически вставленная в картридер сервера. Её ECM time минимален: только сетевая задержка + время ответа CAM. Reshare-карта — это карта с другого сервера, и к её времени добавляется ещё один «прыжок».

Чем больше у сервера локальных карт и меньше reshare — тем лучше. При прочих равных источник с 5 локальными картами лучше источника с 50 reshare-картами.

Адекватный uptime, hops и ECM time

Смотри на cccmaxhops в ответе сервера. Если сервер отдаёт карты с hop=3 и выше — это пирамида reshare, и ECM time будет нестабильным. Оптимально — hop=1 (локальная) или hop=2 (один reshare).

Настрой cccmaxhops = 2 или даже = 1 у себя в reader'е — OScam просто проигнорирует карты с большим количеством хопов. Это чистит таблицу карт от «шумных» решаров и ускоряет реальные ECM-запросы.

Если у тебя несколько C-line с одним CAID, OScam автоматически выберет тот reader, который ответил быстрее. Но чтобы это работало правильно, все они должны быть в одной группе.

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

Чем протокол cccam в OScam отличается от программы CCcam?

CCcam — это отдельная программа со своим конфигом (/etc/CCcam.cfg), своим процессом и ограниченными возможностями мониторинга. Протокол cccam in oscam — это реализация того же сетевого протокола внутри демона OScam. Никакого отдельного процесса не нужно: всё описывается в oscam.server, управляется через один веб-интерфейс, и ты получаешь единый лог для всех протоколов сразу.

Где находится файл oscam.server и как его редактировать?

Зависит от прошивки. На Enigma2-ресиверах чаще всего /etc/tuxbox/config/oscam.server. На некоторых образах — /var/keys/oscam.server или /usr/local/etc/oscam/oscam.server. Редактируй через SSH командой nano /etc/tuxbox/config/oscam.server или через FTP-клиент (FileZilla и т.п.). После правки перезапускай OScam: /usr/bin/oscam -r или через init-скрипт /etc/init.d/oscam restart.

Почему reader CONNECTED, но показывает 0 cards?

Чаще всего одна из четырёх причин: источник не отдаёт карты на твой аккаунт (проверь у провайдера, активен ли аккаунт), превышен cccmaxhops (сервер присылает карты с hop=6, а ты принимаешь только до hop=5), неверная группа (reader и dvbapi-пользователь в разных группах), либо сервер настроен на reshare=0. Смотри в лог после login ok — если нет строк о полученных картах, сервер их просто не присылает.

Какой порт указывать для C-line в OScam?

Порт берётся прямо из C-line — это второе поле после хоста. Типичный диапазон для CCcam — 12000–25000, но конкретный номер задаёт администратор сервера. Этот порт должен быть открыт в firewall на обеих сторонах, а у тебя в конфиге — совпадать с тем, что после запятой в device=.

Какое значение cccversion ставить?

Должно совпадать с версией сервера, к которому подключаешься — обычно это 2.3.0 или 2.3.2. Рассинхрон версии — одна из самых частых и при этом наименее очевидных причин отказа авторизации. Если не знаешь версию сервера, попробуй 2.3.0 и 2.3.2 по очереди и смотри лог на login failed. Некоторые старые ресиверы с прошивкой 2012–2014 годов вообще не поддерживают 2.3.x и застряли на 2.1.4 — в таком случае сервер тоже должен быть совместим.

Как уменьшить время открытия каналов (ECM time)?

Несколько рычагов. Первый — выбирай источники с локальными картами и минимумом хопов (hop=1 идеал). Второй — снизь cccmaxhops до 2 или даже 1, чтобы OScam не трогал «дальние» карты. Третий — проверь пинг до сервера командой ping myserver.example.com: если 200+ мс, это уже вносит заметную задержку. Четвёртый — отключи лишние reader'ы с тем же CAID, они создают конкуренцию и иногда мешают быстрому ответу нужного reader'а.

Практические советы для стабильного просмотра

Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.

При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.

Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.

  • Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
  • Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
  • Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.