Настройка cccam.cfg в 2026: полный гайд
Если ты уже поставил CCcam или OScam на ресивер и смотришь на пустой конфиг — это именно то, что нужно. Здесь разобран формат cccam.cfg 2026 построчно: каждое поле, каждый флаг, типичные ошибки парсинга и способы их исправить. Не теория — практика.
Что такое cccam.cfg и где он лежит
Назначение файла и его роль в протоколе CCcam
CCcam.cfg — это единственный конфигурационный файл демона CCcam. В нём живёт всё: адреса серверов для клиентских подключений, настройки собственного сервера, описание локальных карт, правила раздачи доступа клиентам. Демон читает его при старте и при получении сигнала SIGHUP (рестарт без полной перезагрузки процесса).
Протокол CCcam работает по TCP. Клиент устанавливает соединение, проходит авторизацию и начинает слать ECM-запросы — зашифрованные сообщения с запросом на раскодирование канала. Сервер отвечает CW (Control Word). Всё это описывается именно в cccam.cfg.
Стандартные пути: /etc/CCcam.cfg, /var/etc/CCcam.cfg, /usr/keys/
Путь зависит от системы и сборки демона:
/etc/CCcam.cfg— стандартный путь на большинстве Enigma2-образов (OpenATV, OpenPLi, OpenViX)/var/etc/CCcam.cfg— встречается на образах с overlay-файловой системой, где/etcмонтируется в ОЗУ/usr/keys/CCcam.cfg— исторический путь на старых Dreambox-прошивках/home/user/CCcam.cfg— если запускаешь демон вручную с флагом-c /path/to/config
Проверить, какой файл реально читает запущенный демон: ls -la /proc/$(pidof CCcam)/fd | grep cfg. Это быстрее, чем гадать.
Различия размещения на Enigma2, OpenWrt и обычном Linux-сервере
На Enigma2 демон обычно стартует через init-скрипт /etc/init.d/CCcam, и путь к конфигу прошит в нём. На OpenWrt — через UCI или напрямую в /etc/config/, хотя CCcam там редкость; чаще там живёт OScam. На чистом Debian/Ubuntu путь задаётся в systemd unit-файле или в скрипте запуска.
Регистр имени файла — нетривиальная проблема. На Enigma2-образах на базе ext4 (чувствительная к регистру FS) cccam.cfg и CCcam.cfg — это два разных файла. Демон ищет строго то имя, которое прописано в его бинарнике. Если подключение молча не поднимается — первым делом проверяй регистр.
Права доступа: chmod 600 /etc/CCcam.cfg или минимум 644. Файл должен принадлежать пользователю, от которого запускается демон. Кодировка — UTF-8 без BOM, окончания строк строго LF (Unix). Файл, отредактированный в Блокноте Windows и сохранённый с CRLF, почти гарантированно сломает парсинг строк C: и F:.
Синтаксис строк подключения C, N и F
Клиентская строка C: hostname port username password
Строка C: — это инструкция демону подключиться к удалённому CCcam-серверу как клиент. Полный формат:
C: my.server.tld 12000 myuser mypassword no { 0500:032830:2 }
Разбор по полям:
my.server.tld— хост или IP сервера12000— TCP-порт (сервер слушает на нём)myuser/mypassword— логин и пароль (case-sensitive)no— флаг wantemus: запрашивать ли эмуляцию у сервера.yesилиno{ 0500:032830:2 }— блок share-limits: ограничение по caid:providerid:maxhops
Скрытая ловушка: разделитель полей — пробел, не табуляция. Если скопировал конфиг из PDF или веб-страницы и там оказался символ U+00A0 (неразрывный пробел) или табуляция — парсер CCcam просто проигнорирует строку без какой-либо ошибки в логе. Всегда проверяй через cat -A /etc/CCcam.cfg — там ^I означает табуляцию, M- — нечто не-ASCII.
Newcamd-строка N и её поля DES-ключа
Строка N: работает по протоколу newcamd, не CCcam. Формат:
N: newcamd.server.tld 15050 user pass 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Здесь 14 байт в конце — это DES-ключ, он же des key или crypt key. Каждый байт — два шестнадцатеричных символа через пробел. Все 14 байт обязательны. Если ключ не совпадает с серверным — соединение внешне поднимется, но карты отдаваться не будут. Это одна из самых частых причин, когда «линия есть, каналов нет».
Newcamd и CCcam — разные протоколы с разной авторизацией. Смешивать строки нельзя: для newcamd-сервера нужна строка N:, для CCcam-сервера — строка C:.
Строка F: раздача доступа своим клиентам и параметры точек
Строка F: описывает пользователя, которому демон разрешает подключаться как к серверу. Формат:
F: clientuser clientpass 1 0 0 { 0500:000000:1 }
Поля по порядку:
clientuser/clientpass— логин и пароль клиента- первое число — uphops: насколько далеко клиент может видеть карты вверх по цепочке
- второе — downhops: насколько далеко он может передавать карты своим клиентам
- третье — флаг au (auto-update): 0 или 1
- блок
{ ... }— фильтр по caid:provider:hops
Если блок share-limits пустой или отсутствует, клиент получает доступ ко всему, что видит сервер. Это не всегда желательно — особенно если источник ограничивает количество hop-ов.
Флаги после строки: { caid:provid:downhops } и nodeid
Синтаксис блока ограничений: { caid1:providerid1:hops caid2:providerid2:hops }. Несколько записей — через пробел внутри фигурных скобок. Нули означают «любой»: 0:0:2 — любой caid, любой провайдер, максимум 2 хопа.
Параметр NODEID в глобальных настройках задаёт уникальный идентификатор узла в сети шаринга. Без него CCcam генерирует его автоматически из MAC-адреса. Явное задание полезно при нескольких сетевых интерфейсах, когда автогенерация даёт нестабильный результат.
Глобальные директивы пишутся отдельными строками, не внутри C:/F:/N:-строк:
SERVER LISTEN PORT : 12000
WEBINFO LISTEN PORT : 16001
ALLOW TELNET : yes
NEWCAMD LISTEN PORT : 15050
Управление картами, приоритетами и caid
Локальные карты: SmartCard / Phoenix reader
Если в ресивере стоит физическая карта, CCcam подхватывает её через встроенный ридер. Путь к устройству прописывается как:
CARDREADER : /dev/sci0 SmartReader
На разных ресиверах устройства называются /dev/sci0, /dev/sci1, /dev/ttyS0 и т.д. Проверить список: ls /dev/sci* /dev/tty*. Локальная карта имеет hop count = 0, то есть получает наивысший приоритет при декодировании канала.
Директивы CAID PRIORITY и CAID IGNORE
Когда один канал доступен из нескольких источников (несколько строк C: или несколько карт), CCcam выбирает источник по комбинации: число hops + время ECM-ответа + явный приоритет CAID.
CAID PRIORITY : 0500:032830
CAID PRIORITY : 1810:000000
CAID IGNORE : 0604
CAID PRIORITY повышает приоритет конкретного caid/provider. CAID IGNORE полностью исключает caid из обработки — удобно, если источник тянет ненужные системы и замедляет ECM.
Ограничение hops и предотвращение петель шаринга
Параметр MAXHOPS ограничивает максимальное число пересылок карты по цепочке:
MAXHOPS : 2
Значение 10 и выше — верный путь к фризам. Каждый дополнительный hop добавляет задержку ECM. При значении больше 3–4 риск превысить таймаут декодирования (обычно 500–700 мс) становится реальным. Оптимально держать MAXHOPS на уровне 2–3.
Петли шаринга возникают, когда узел A шарит карту узлу B, а B — обратно A. CCcam борется с этим через NODEID — если видит собственный идентификатор в цепочке пересылки, отбрасывает запрос. Но при неверно настроенных share-limits и большом MAXHOPS петли всё равно нагружают сеть и вызывают нестабильность.
Эмуляция и совместимость с разными кодировками
Версия протокола CCcam между сервером и клиентом должна совпадать или быть совместимой. Если сервер работает на версии 2.3.x, а клиент объявляет себя как 2.1.x — соединение поднимается, но карты могут не передаваться. Директива:
VERSION : 2.3.0
В OScam соответствующий параметр — cccversion = 2.3.0. Несовпадение — одна из некоторых причин ситуации «линия активна, каналов нет», которую большинство гайдов не упоминает.
Параметр WANTEMU глобально включает запрос эмуляции у всех серверов. Работает в паре с флагом wantemus в строке C:. Если источник не поддерживает эму, установка yes не даст ничего, кроме замедления.
Интеграция CCcam-протокола с OScam
Когда стоит переходить с CCcam на OScam
CCcam давно не получает обновлений — последний официальный релиз вышел много лет назад. OScam активно поддерживается сообществом, имеет веб-интерфейс, гибкую фильтрацию, cache exchange (обмен расшифрованными CW между узлами) и поддерживает протокол CCcam полностью — и как клиент, и как сервер.
Реальный смысл переходить, если нужна тонкая настройка фильтрации caid/provider, мониторинг ECM-статистики в реальном времени или требуется работа нескольких протоколов одновременно (CCcam + newcamd + camd35).
Настройка [cccam] в oscam.server и oscam.user
Строка C: из cccam.cfg напрямую маппируется в ридер oscam.server:
| Поле cccam.cfg (C:) | Параметр oscam.server |
|---|---|
| hostname | device = hostname,port |
| port | (часть device, через запятую) |
| username | user = username |
| password | password = password |
| wantemus | cccwantemu = 0 или 1 |
| share-limits hops | cccmaxhops = 2 |
| версия протокола | cccversion = 2.3.0 |
Полный пример ридера в /etc/oscam/oscam.server:
[reader]
label = my_cccam_server
protocol = cccam
device = my.server.tld,12000
user = myuser
password = mypassword
cccversion = 2.3.0
cccmaxhops = 2
cccwantemu = 0
group = 1
caid = 0500,1810
Маппинг строк C: на oscam.server-ридеры
Если в cccam.cfg было несколько строк C: — каждая становится отдельным блоком [reader] в oscam.server. Разные group-значения позволяют задавать приоритеты через oscam.user. Это заметно гибче, чем примитивный CAID PRIORITY в CCcam.
Для того чтобы OScam принимал входящие подключения по протоколу CCcam (сервер), нужно добавить в /etc/oscam/oscam.conf:
[cccam]
port = 12000
version = 2.3.0
reshare = 1
И создать пользователей в /etc/oscam/oscam.user — аналог строк F: из cccam.cfg.
Совмещение двух демонов на одном ресивере
Запустить CCcam и OScam одновременно на одном ресивере — реально, но они не должны слушать один и тот же TCP-порт. Если оба настроены на 12000 — второй просто не стартует, и в логах будет Address already in use. Проверка: netstat -tlnp | grep 12000.
Типичная схема: OScam слушает на 12001 как CCcam-сервер, CCcam подключается к OScam через строку C: на localhost:12001. Или наоборот — CCcam как сервер на 12000, OScam как клиент через ридер на тот же порт.
Диагностика и решение типичных проблем
Подключение есть, но каналы не открываются (фризы)
Это самая распространённая ситуация. Причины по убыванию частоты:
- ECM-время выше 500–700 мс — источник перегружен или слишком далеко (много hops)
- Caid/provider источника не совпадает с нужным каналом
- Неверная версия протокола (cccversion) — карты есть, CW не отдаются
- Firewall на стороне сервера режет ответы по TTL или размеру пакета
- Несовпадение флагов wantemus при включённой эмуляции
Первый шаг диагностики — смотреть ECM-время в логах. В CCcam это строки вида ECM OK [0500:032830] 423ms. Если время больше 600–700 мс стабильно — проблема в источнике или в сети до него, а не в конфиге.
Статус '0/0' или offline в WebInfo
WebInfo доступен по адресу http://receiver-ip:16001 (порт задаётся в WEBINFO LISTEN PORT). Статус 0/0 означает: подключений нет или карт не видно.
Чеклист:
- Демон вообще запущен:
ps aux | grep CCcam - Файл конфига читается без ошибок:
tail -f /tmp/CCcam.logсразу после старта - Порт сервера доступен извне:
nc -zv my.server.tld 12000 - Нет конфликта портов:
netstat -tlnp | grep 12000
Конфликт портов и проверка через netstat/telnet
Если порт 12000 занят другим процессом — CCcam стартует, но не принимает соединения. Найти виновника: lsof -i :12000. Частый случай — старый зомби-процесс CCcam или параллельно запущенный OScam.
Быстрая проверка доступности порта с клиентской стороны: telnet my.server.tld 12000. Если соединение устанавливается — порт открыт и слушается. Если Connection refused — демон не слушает. Если зависает — файрвол или двойной NAT.
Двойной NAT — отдельная история. Если провайдер раздаёт серые IP-адреса (CGNAT, 100.64.0.0/10), проброс порта на домашнем роутере не поможет. Пакеты не дойдут до ресивера без внешнего IP. Решение: статический IP у провайдера или VPN-туннель (WireGuard, OpenVPN).
Анализ логов CCcam и debug-уровней
По умолчанию CCcam пишет лог в /tmp/CCcam.log. Уровень детализации задаётся директивой:
DEBUG : 1
Значения: 0 — только ошибки, 1 — стандартный уровень, 2 — подробный, 4 — очень подробный (включает все ECM-запросы). Для диагностики подключения достаточно уровня 1–2. Уровень 4 генерирует огромный файл и на слабых ресиверах заметно нагружает I/O.
В логах искать: connected to (соединение установлено), ECM FAILED (карта не отвечает), no card (нет подходящей карты), decode failed (CW получен, но ошибка декодирования). Каждое из этих сообщений указывает на конкретный слой проблемы.
Как выбрать источник линий: критерии без имён
На что смотреть: стабильность ECM-времени и uptime
Единственный объективный показатель качества источника — стабильность ECM-времени. Не среднее, а дисперсия: если среднее 200 мс, но каждые 5 минут прыгает до 800 мс — это плохой источник. Фризы именно от пиков, не от среднего.
Хороший ориентир — ECM-время менее 300 мс стабильно, без выбросов. Число hops до реальной карты в идеале 1–2. Чем больше hop-ов, тем выше задержка и нестабильность. При выборе источника спрашивай: сколько hops, своя карта или реселл?
Uptime — второй критерий. Источник с аптаймом 99%+ и хорошей реакцией на инциденты (замена карты в течение часа) значительно ценнее, чем дешёвый, который лежит по несколько часов в день.
Локальные карты vs реселл-линии
Собственная физическая карта в ридере ресивера — единственный вариант с hop count = 0 и нулевой зависимостью от третьих лиц. Это максимально стабильный источник. Но требует активной подписки оператора и наличия поддерживаемого устройства.
Реселл-линии (C:-строки от сторонних источников) — это всегда дополнительный hop и зависимость от чужой инфраструктуры. Цена здесь играет роль, но не главную: слишком дешёвый источник почти всегда означает перегруженный сервер с большим числом клиентов и нестабильным ECM-временем.
Юридические аспекты и зона ответственности пользователя
Кардшаринг с платными каналами без собственной подписки на контент является нарушением авторских прав и условий предоставления услуг операторов во многих юрисдикциях. Это важно понимать.
Предпочтительный и легальный сценарий использования CCcam — расшаривание собственной физической карты с активной подпиской внутри домашней сети (например, на несколько ресиверов). Все иные сценарии пользователь оценивает и применяет на собственный риск и ответственность в соответствии с законодательством своей страны.
В какой кодировке и с какими переносами строк сохранять cccam.cfg?
UTF-8 без BOM, окончания строк Unix (LF). Файлы, отредактированные в стандартном Блокноте Windows, сохраняются с CRLF — это ломает парсинг строк C: и F:. Проверить можно командой cat -A /etc/CCcam.cfg: символы ^M в конце строк означают CRLF. Исправить: sed -i 's/\r//' /etc/CCcam.cfg.
Почему подключение показывается как активное, но каналы не открываются?
Источник отдаёт caid/provider, которых нет у нужных каналов, или слишком высокое ECM-время, или несовпадение версии протокола cccversion. Смотри логи на строки ECM FAILED, проверяй, что caid источника совпадает с нужным. Ещё причина — wantemus=yes при сервере без эмуляции: источник отклоняет запросы.
Чем отличается строка C: от строки N: в cccam.cfg?
C: — клиентское подключение по протоколу CCcam. N: — подключение по протоколу newcamd. Newcamd требует 14-байтовый DES-ключ в конце строки — без него авторизация не пройдёт. Это разные протоколы с разной авторизацией, смешивать строки нельзя.
Можно ли использовать конфигурацию CCcam вместе с OScam?
Да. OScam поддерживает протокол CCcam как ридер (protocol = cccam в oscam.server) и как сервер (через секцию [cccam] в oscam.conf). Строки C: из cccam.cfg переносятся в ридеры OScam один к одному. Оба демона можно запускать одновременно — главное, чтобы они слушали на разных портах.
Какой порт по умолчанию использует CCcam-сервер?
Порт задаётся директивой SERVER LISTEN PORT : 12000 — стандартное значение 12000, но это не жёсткий стандарт, его можно менять. WebInfo работает отдельно: WEBINFO LISTEN PORT : 16001. Оба порта должны быть открыты в firewall и проброшены на роутере при работе за NAT.
Как ограничить раздачу карт, чтобы избежать петель шаринга?
Использовать корректные uphops/downhops в строках F:, установить MAXHOPS : 2 и задать явные блоки share-limits { caid:provid:hops } в строках C: и F:. CCcam использует NODEID для обнаружения петель, но при большом MAXHOPS и слабой фильтрации петли всё равно нагружают сеть и вызывают нестабильность.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.