Миграция с CCcam на OScam: полное руководство 2026
Переход cccam to oscam — одна из тех задач, которую многие откладывают годами, пока стабильность старого сервера не становится реальной проблемой. CCcam давно не получает обновлений, а бинарники под новые дистрибутивы собирают энтузиасты на форумах. OScam — другая история: открытый код, свежие ревизии на SVN, поддержка десятка протоколов в одном процессе.
Если у тебя уже есть рабочие C-линии и F-линии в CCcam.cfg — хорошая новость: соответствие между конфигами однозначное. Плохая — прямого импорта нет, переносить нужно руками. Этот материал — именно про это: построчное сопоставление, реальные блоки конфигов и отладка после запуска.
Чем OScam отличается от CCcam и зачем мигрировать
CCcam работает на закрытом бинарнике. Последние официальные релизы датируются несколькими годами назад, и под ARM64 или свежие ядра ты либо находишь неофициальную сборку, либо страдаешь. OScam компилируется из исходников под любую платформу — Raspberry Pi, VU+, X86 Debian — с нужными флагами.
Второй момент — протоколы. CCcam — это монопротокол. OScam в одном демоне обрабатывает cccam, newcamd, camd35, mgcamd и dvbapi одновременно. Можно принимать шары по cccam, раздавать по newcamd и работать с локальной картой через dvbapi — всё в одном процессе, без костылей.
Активная разработка против заброшенного бинарника CCcam
Репозиторий OScam на Streamboard SVN получает коммиты регулярно. Сообщество активное, баги фиксятся, поддержка новых CAID добавляется. CCcam в этом плане мёртв — что есть, то есть. Если на твоей платформе что-то сломалось, чинить некому.
Это не значит, что OScam проще. Конфигурация разбита на несколько файлов, и сначала это кажется избыточным. Но через неделю понимаешь, что это удобно: редактируешь только нужный файл, не ломая остальное.
Модульная архитектура: reader, user, server, dvbapi
В CCcam всё в одном файле: C: линии (upstream-серверы), F: линии (локальные пользователи), N: линии (newcamd), настройки сети — вперемешку. OScam разделяет это логически:
- oscam.conf — глобальные параметры, webif, секции протоколов (cccam, newcamd, camd35)
- oscam.server — все reader'ы: удалённые серверы и локальные карты
- oscam.user — аккаунты клиентов, которым раздаёшь шары
- oscam.services — фильтры по CAID и provid
- oscam.dvbapi — параметры для DVB-демаскировки на тюнерах
Что сохраняется при переходе, а что придётся настроить заново
Сохраняется главное: сами данные для подключения — хосты, порты, логины, пароли. Всё это переносится 1:1, просто в другой синтаксис. Логика hops и reshare тоже есть в OScam, параметры называются иначе.
Заново придётся настроить группы (group — ключевой параметр маршрутизации в OScam, в CCcam его не было в явном виде), возможно — oscam.services, если хочешь ограничить конкретные CAID. Webif нужно настроить отдельно, но это 3 строки.
Сопоставление конфигов: CCcam.cfg в файлы OScam
Вот где большинство гайдов по миграции cccam to oscam проваливаются — дают синтаксис OScam без прямого соответствия с CCcam. Разберём построчно.
C-линия CCcam → секция [reader] с protocol = cccam
В CCcam.cfg строка выглядит так:
C: server.example.com 12000 myuser mypassword
Это upstream-сервер, у которого ты берёшь шары. В OScam эта же связь описывается в /usr/local/etc/oscam.server (или /etc/tuxbox/config/oscam.server, зависит от сборки):
[reader]
label = upstream_cccam
protocol = cccam
device = server.example.com,12000
user = myuser
password = mypassword
group = 1
cccversion = 2.1.4
cccmaxhops = 2
reconnecttimeout = 30
Параметр group = 1 — обязательный. Без него reader есть, но ECM через него не пройдёт. Об этом ниже в разделе отладки.
F-линия CCcam → запись в oscam.user
F-линия в CCcam — это локальный пользователь, которому ты раздаёшь шары:
F: clientuser clientpass 2 0 0 0 { 1702:000000 }
В OScam это секция в oscam.user:
[account]
user = clientuser
pwd = clientpass
group = 1
au = 1
cccmaxhops = 2
cccreshare = 1
services = myservices
Поле services ссылается на секцию в oscam.services, где перечислены допустимые CAID. Если не ограничиваешь — можно убрать.
Параметры hops, cccmaxhops и cccwantemu
В CCcam hop-глубина задавалась глобально через HOPS в CCcam.cfg. В OScam cccmaxhops задаётся отдельно для каждого reader и каждого user.
cccmaxhops = 0 — только шары первого хопа (прямые карты). cccmaxhops = 2 — до двух ретрансляций. Чем больше хопов, тем выше задержка ECM и риск фрода. Для стабильной работы HD-каналов оптимально 1.
cccwantemu = 1 нужен, если upstream-сервер отдаёт эмуляторные шары. Для лицензионных карт — убирай, лишний трафик без пользы.
Локальная карта (DVB) → reader с device и протоколом internal
Если у тебя есть физическая карта в ридере (например, Smargo или встроенный CI в ресивере), в OScam это отдельный [reader] с protocol = internal:
[reader]
label = local_smartcard
protocol = internal
device = /dev/ttyUSB0
group = 1
detect = cd
mhz = 357
cardmhz = 357
Для встроенного CI на VU+ устройствах устройство будет /dev/ci0 или аналогичное. Один демон OScam одновременно читает эту карту и раздаёт шары по cccam — это одно из главных преимуществ перед CCcam.
Базовая настройка oscam.conf и запуск демона
Минимальный рабочий oscam.conf для конфигурации с cccam to oscam выглядит так:
[global]
logfile = /tmp/oscam.log
maxlogsize = 512
nice = -1
waitforcards = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = changeme
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
httpdyndns = 0
[cccam]
port = 12000
reshare = 1
version = 2.1.4
nodeid = auto
Секция [cccam] — это порт, на котором OScam принимает входящие CCcam-подключения от твоих клиентов. Если раздаёшь по newcamd, добавляешь аналогичную секцию [newcamd].
Секция [global] и nice/maxlogsize
nice = -1 даёт процессу немного больше приоритета планировщика — полезно на загруженных машинах. maxlogsize = 512 ограничивает лог 512 КБ, потом ротация. Без этого лог на отладочном уровне сжирает место за ночь.
waitforcards = 1 заставляет демон ждать инициализации локальных карт перед приёмом клиентов. Полезно если карта стартует медленно.
Веб-интерфейс [webif]: httpport, httpuser, httppwd
Webif — твой главный инструмент отладки после запуска. Открываешь http://127.0.0.1:8888 и видишь статус всех reader'ов (connected/off), активных клиентов, ECM-статистику в реальном времени. Смени пароль от дефолтного — порт часто открыт в локалке.
Секция [cccam] для входящих cccam-подключений и порт 12000
Порт 12000 — стандартный для CСcam. Если у клиентов были C-линии к твоему CCcam-серверу вида C: yourserver.com 12000 user pass, они продолжат работать без изменений на стороне клиента — OScam слушает тот же порт.
reshare = 1 разрешает ретрансляцию. reshare = 0 — только твои прямые карты, без relay. version должна совпадать с тем, что ожидает клиент.
Запуск, проверка процесса и автозагрузка
Запуск демона:
oscam -b -c /usr/local/etc
Флаг -b — фон (background), -c — путь к директории с конфигами. Все oscam.* файлы должны лежать там же.
Проверка что запустился:
ps aux | grep oscam
ss -tlnp | grep 12000
Для автозагрузки на systemd создаёшь /etc/systemd/system/oscam.service со стандартной секцией [Service] ExecStart=.... Права на директорию конфигов — владелец тот же пользователь, под которым запускается oscam. Это частая причина "стартует в консоли, не стартует при загрузке".
Проверка и отладка ECM/EMM после миграции
Запустил, reader поднялся, клиент подключился — а каналы не открываются. Обычная картина при первом запуске после cccam to oscam миграции. Читаем лог.
Чтение oscam.log: запросы ECM, время декодирования, found/not found
Строка ECM в логе выглядит примерно так:
2026/05/31 14:22:05 c clientuser CAID: 1702 PROVID: 000000 SID: 1234 ECM found (150 ms) by upstream_cccam
Разбираем: CAID 1702 — это Nagravision. PROVID 000000 — провайдер. 150 ms — время ответа в миллисекундах. found by upstream_cccam — какой reader ответил.
Если вместо found видишь not found или timeout — проблема либо в reader'е, либо в маршрутизации по группам. Если строки ECM вообще нет — клиент не посылает запросы, проблема на стороне клиента.
Веб-интерфейс: статус readers (connected/off) и клиентов
В webif (http://localhost:8888) вкладка Readers покажет статус каждого reader. connected — соединение установлено. off — не может подключиться. reconnecting — пытается, скорее всего неверные данные или firewall.
Вкладка Users покажет активных клиентов, сколько ECM они запросили, сколько получили ответов. Соотношение found/total — твой главный показатель здоровья системы.
Типичные ошибки: 'no matching reader', timeout, 'group mismatch'
Ошибка no matching reader found — самая частая после cccam to oscam перехода. Причина почти всегда одна: несовпадение групп. Reader объявлен с group = 1, а user в oscam.user с group = 2. Пересечения нет — ECM не маршрутизируется.
Правило простое: reader и user должны иметь хотя бы одну общую группу. Проще всего поставить group = 1 везде, потом разграничить если нужно.
timeout при статусе reader connected — CAID или provid не совпадают с тем, что отдаёт upstream. Либо нужна настройка caid и ident в reader для фильтрации. Либо upstream не имеет нужной карты.
Проверка прав через oscam.services и CAID/provid
Файл oscam.services — необязательный, но полезный для ограничения доступа по CAID:
[myservices]
caid = 1702,0622
provid = 000000
Если user в oscam.user имеет services = myservices, он получит ECM только для CAID 1702 и 0622. Если reader поднялся, но конкретные HD-каналы не открываются — проверь, не фильтрует ли oscam.services нужный CAID.
Для повышения детализации лога добавь в oscam.conf:
[global]
logfile = /tmp/oscam.log
debuglevel = 64
Значение 64 включает вывод ECM-трафика. Уровень 255 — максимальная детализация, но лог растёт быстро. Используй для отладки, потом убирай.
Критерии выбора источника шар и провайдера (без названий)
Техническая часть настроена. Теперь про качество источника — потому что OScam покажет тебе именно то, что ты получаешь, без прикрас.
На что смотреть: стабильность аптайма и время ответа ECM
Главный показатель качества шары — время ECM в миллисекундах, которое ты видишь в oscam.log. До 200 мс — отлично, канал декодируется без заметного фриза. 200-500 мс — приемлемо для большинства каналов. Выше 500 мс — будут проблемы, особенно на HD и на каналах с частой сменой ключей.
Смотри на стабильность: reader должен показывать connected стабильно, без постоянных reconnect. Один reconnect в день — нормально. Несколько в час — проблемный upstream.
Количество hops и риск фрод-шар (freeze, фейковые CAID)
Чем больше hops между тобой и реальной картой, тем выше задержка и тем сложнее верифицировать источник. При cccmaxhops > 2 начинается серая зона: ты не знаешь, что реально за этим стоит.
Фейковые CAID — реальная проблема. Источник декларирует CAID, которого у него нет, ECM уходит туда, ответ не приходит, канал фризит. OScam в webif покажет not found при подключённом reader — верный признак. В этом случае ограничивай CAID явно через caid = в reader, не принимай всё подряд.
Локальная карта против покупного доступа: юридический аспект
OScam изначально разрабатывался для работы с собственными смарт-картами — это его легальный сценарий использования. Если у тебя официальная подписка у оператора и ты используешь карту из этой подписки для дешифровки на своих устройствах — всё в рамках того, за что ты заплатил.
Использование чужих шар без собственной официальной подписки создаёт юридические риски, которые зависят от юрисдикции. Это не рекламный disclaimer — это реальное ограничение, которое стоит держать в голове при выборе схемы работы.
Можно ли использовать старый CCcam.cfg напрямую в OScam?
Нет. Форматы несовместимы на уровне синтаксиса — OScam не читает CCcam.cfg вообще. Прямого импорта или конвертера не существует. Но соответствие однозначное: каждая C-линия становится секцией [reader] в oscam.server, каждая F-линия — секцией [account] в oscam.user. Переносится за 20-30 минут руками, ничего сложного.
Какую версию протокола cccam указывать в reader?
Начинай с cccversion = 2.1.4 — она наиболее широко поддерживается. Если линии не поднимаются (reader остаётся в статусе off), попробуй 2.1.1 или 2.1.2. Версию 2.3.0 некоторые серверы не принимают. Правильный вариант виден в логе: при неверной версии обычно connection reset сразу после хендшейка.
Почему reader показывает статус 'off' после переноса?
Четыре основные причины: неверный host или port в device =, upstream заблокировал порт на firewall, неверный user/password, или несовпадение групп между reader и user. Сначала проверь доступность: nc -zv server.example.com 12000 или telnet server.example.com 12000. Если порт открыт, но reader всё равно off — смотри лог, там будет причина отказа хендшейка.
Где лежат конфиги OScam и куда класть oscam.server?
Путь задаётся флагом -c при запуске. Типичные варианты: /usr/local/etc/ (Debian/Ubuntu), /etc/tuxbox/config/ (Enigma2 ресиверы), /var/keys/ (некоторые сборки для STB). Все файлы — oscam.conf, oscam.server, oscam.user, oscam.services — должны лежать в одной директории. Если путь не совпадает с реальным расположением файлов, демон стартует без ошибки, но конфиг будет пустым — это частая причина путаницы.
Как OScam одновременно раздаёт по cccam и принимает локальную карту?
Именно так и работает. Локальная карта — это [reader] с protocol = internal и device = /dev/ttyUSB0 (или /dev/ci0 для встроенного CI). Раздача входящим клиентам — секция [cccam] в oscam.conf с нужным портом. Оба reader'а (удалённый и локальный) объединены через group = 1, клиенты тоже в той же группе — демон автоматически использует лучший доступный источник для каждого ECM-запроса.
Обязателен ли веб-интерфейс OScam?
Технически нет — убери секцию [webif] и демон запустится без него. Но для отладки это лучший инструмент, который у тебя есть: статус reader'ов в реальном времени, Live Log с фильтрацией, ECM-статистика по каждому клиенту. Особенно полезен при первом запуске после миграции cccam to oscam — экономит час времени на чтении логов. Включается тремя строками, выключается убиранием секции. Оставь включённым хотя бы на этапе отладки.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.