Настройка 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 или cccversionno matching reader for+ CAID — нет подходящего reader'а под этот CAIDcan'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 или внешние мониторы.