CCcam.cfg: настройка конфига сервера в 2026
Если ваш ресивер стоит, каналы не открываются, а в логах — тишина, скорее всего проблема в файле конфигурации. CCcam cfg — это единственный текстовый файл, который управляет всем поведением демона: куда подключаться, кого принимать, что раздавать и с каким приоритетом. Одна лишняя табуляция или неправильная кодировка — и демон молча игнорирует строку целиком.
Ниже разберём каждую строку по полям, покажем реальные примеры и объясним типичные ошибки, которые не гуглятся, потому что большинство туториалов просто дают готовый конфиг без объяснений.
Что такое CCcam.cfg и где он лежит
Назначение файла конфигурации
CCcam.cfg — главный конфиг демона CCcam. Это обычный текстовый файл без какой-либо иерархии: все инструкции идут построчно, порядок строк внутри блока роли не играет, но глобальные параметры принято писать вверху, а строки подключений — после.
Комментарии начинаются с символа #. Всё, что стоит после решётки в строке, демон игнорирует. Пустые строки допустимы — они помогают визуально разбить конфиг на логические блоки.
Пути расположения: /var/etc/CCcam.cfg и /etc/CCcam.cfg
На ресиверах с Enigma2 (Vu+, Dreambox, GigaBlue и другие) конфиг обычно лежит по пути /var/etc/CCcam.cfg. На некоторых Linux-сборках и серверных инсталляциях путь другой — /etc/CCcam.cfg. Перед правкой стоит проверить оба места командой:
find / -name "CCcam.cfg" 2>/dev/null
Важный момент: имя файла регистрозависимо. Файл cccam.cfg в нижнем регистре демон просто не найдёт. Кодировка — UTF-8 без BOM. Если сохранили файл через Notepad на Windows — скорее всего получили BOM в начале, и демон не запустится.
Права доступа и перезапуск демона
Файл должен быть читаем тем пользователем, под которым запущен демон. Обычно достаточно chmod 644 /var/etc/CCcam.cfg. Если CCcam запущен от root — проблем нет, но на некоторых сборках с отдельным пользователем это важно.
CCcam не перечитывает конфиг на лету. После любого изменения нужно перезапустить демон:
killall -9 CCcam
Автозапуск обычно прописан в init-скриптах или через плагин автозапуска на Enigma2 — он поднимет демон заново через несколько секунд. Либо через меню ресивера: Plugins → CCcam → Restart. На чистом Linux можно написать service-файл для systemd.
Ещё один нюанс, который постоянно упускают: на некоторых ресиверах раздел /var/etc монтируется в RAM. После перезагрузки конфиг пропадает. Если так — нужно либо вынести файл на флешку и сделать симлинк, либо прописать копирование конфига в скрипт инициализации.
Синтаксис строк подключения: C-line, N-line, L-line
C-line (клиент): C: host port username password
C-line — это исходящее подключение. Вы клиент, подключаетесь к чужому серверу. Полный формат строки:
C: host port username password [wantemus] [hop] [{ caid:provid:downhop }]
Реальный пример (обезличенный):
C: myserver.example.com 12000 myuser mypass no { 0:0:2 }
Разбор по полям: myserver.example.com — хост сервера (домен или IP), 12000 — порт, myuser / mypass — логин и пароль (регистрозависимы!), no — параметр wantemus (запрос EMM от этого сервера; почти всегда no), и наконец блок в фигурных скобках задаёт ограничения шаринга.
Все поля разделяются одним пробелом. Табуляция недопустима — это одна из самых частых причин, по которой строка молча игнорируется. Никаких кавычек, никаких скобок вокруг хоста.
N-line (newcamd): N: host port user pass key
N-line — подключение по протоколу Newcamd. Используется реже, чем C-line, но встречается когда сервер отдаёт карты по Newcamd. Формат:
N: host port username password 01 02 03 04 05 06 07 08 09 10 11 12 13 14
14-байтный ключ — это DES-ключ согласования. Стандартный ключ по умолчанию: 01 02 03 04 05 06 07 08 09 10 11 12 13 14. Если сервер использует другой ключ — подключение не установится даже с верным паролем. Уточняйте у провайдера.
L-line и локальные ридеры
L-line описывает локальный ридер — физическую карту, вставленную в картридер ресивера. Формат:
L: /dev/sci0 speed
Например: L: /dev/sci0 0. Скорость 0 означает автоопределение. На Enigma2-ресиверах встроенный картридер обычно доступен как /dev/sci0 или /dev/sci1. Если карта вставлена но не читается — проверьте, правильный ли device указан.
Необязательные параметры в конце строки (no/yes, { } блоки)
Параметр wantemus (пятое поле в C-line) — yes или no. Управляет тем, будет ли CCcam запрашивать EMM-данные с этого сервера. Для большинства случаев — no.
Блок в фигурных скобках { caid:provid:downhop } ограничивает, какие карты принимать с этого сервера. Если скобок нет — принимаются все карты в рамках хопа. Детально разберём в следующей секции.
F-line и параметры раздачи карт другим клиентам
Формат F: username password downhops uphops
F-line — противоположность C-line. Вы сервер, эта строка описывает клиента, которого вы принимаете. Формат:
F: username password downhops uphops [{ caid:provid:sid }]
Пример:
F: client1 secretpass 1 0
Здесь client1 — логин входящего клиента, secretpass — его пароль, 1 — downhops (сколько уровней вниз клиент может ретранслировать карты), 0 — uphops (сколько уровней вверх он может передавать). Для конечного пользователя: downhops=1, uphops=0.
Ограничение шаринга через { caid:provid:sid }
Фигурные скобки в F-line ограничивают, что именно этот клиент получит. Формат каждого элемента внутри: caid:provider_id:downhop. Несколько элементов разделяются пробелом:
F: client1 pass 1 0 { 0500:032830:1 0604:000000:1 }
CAID 0500 — Viaccess, 0604 — Irdeto. Если провайдер не важен — ставите 000000. Если нужно раздать всё без ограничений — убираете скобки или пишете пустые { }.
Распространённая ошибка: C-line работает, сервер подключается, но каналы не открываются. Причина почти всегда — несовпадение CAID или provider ID в фигурных скобках. Сервер шлёт карту одного пакета, а в ограничениях прописан другой.
Параметры downhops/uphops и петли шаринга
Downhops — это глубина ретрансляции. При downhops=1 клиент получает карты, но не может раздавать их дальше. При downhops=2 он может отдать одному следующему уровню. И так далее.
Высокие значения downhops (3 и выше) — реальный риск. Если две точки сети шарят карты друг другу с высоким hop-значением, возникает петля: карта гуляет по кругу, нагружает сеть, и в итоге CW-таймауты у всех участников. Стандартная рекомендация: downhops не выше 1-2 для клиентов, которым вы не доверяете полностью.
Глобальные параметры сервера и сетевые настройки
SERVER LISTEN PORT и веб-интерфейс (WEBINFO LISTEN PORT)
Глобальные директивы пишутся в верхней части cccam cfg, до строк подключений. Основные:
SERVER LISTEN PORT : 12000
WEBINFO LISTEN PORT : 16001
Порт 12000 — стандартный для CCcam, большинство серверов используют именно его. Если на одном сервере запущено несколько экземпляров демона — будет конфликт bind на один порт, второй экземпляр просто не поднимется. Решение: разные порты для каждого экземпляра (12000, 12001, 12002...).
Веб-интерфейс на порту 16001 даёт простой HTTP-статус: сколько клиентов подключено, какие карты активны. Открывается по адресу http://ресивер:16001/. Закрыть извне через firewall — хорошая идея, если ресивер смотрит в интернет напрямую.
ALLOW TELNET, DEBUG, EMM-параметры
Полезные глобальные директивы:
ALLOW TELNET : yes
DEBUG : 0
ALLOW VIRTUAL CARDS : no
CACHE PUSH AHEAD TIME : 300
DEBUG : 0 — логирование выключено. При значении 1-3 в лог пишется подробная информация о подключениях и запросах. Полезно при отладке, но на продакшн-сервере лучше держать на 0 — иначе лог разрастается быстро.
EMM-запросы (Entitlement Management Messages) нужны для обновления прав карты. Параметр ALLOW EMM : yes разрешает обработку EMM. На шаринговых серверах без физических карт это обычно бессмысленно.
SHARE LIMITS и контроль числа подключений
Ограничение на количество одновременных подключений задаётся глобально:
MAX CLIENTS ALLOWED : 10
Также можно ограничить конкретного клиента (F-line) по числу одновременных сессий — через параметр после блока скобок. Контроль числа подключений важен: если провайдер ограничивает вас одним подключением, а вы пытаетесь пустить двух клиентов — сервер отключит обоих.
Различия конфигурации в CCcam и OScam (протокол cccam)
OScam: эмуляция протокола CCcam через oscam.server
OScam не использует cccam cfg. Вообще. У него собственная структура конфигов: /etc/oscam/oscam.conf (глобальные настройки), /etc/oscam/oscam.server (ридеры — аналог C-line и L-line) и /etc/oscam/oscam.user (пользователи — аналог F-line).
Но OScam умеет работать с серверами по протоколу CCcam — и отдавать карты клиентам CCcam тоже умеет. Это делается через соответствующий протокол в настройках ридера и клиентского порта.
Маппинг C-line в [reader] OScam
Возьмём обычную C-line из CCcam:
C: myserver.example.com 12000 myuser mypass no
В OScam это превращается в блок в файле /etc/oscam/oscam.server:
[reader]
label = myserver
protocol = cccam
device = myserver.example.com,12000
user = myuser
password = mypass
group = 1
cccversion = 2.3.0
cccmaxhops = 2
Параметр cccversion указывает, под какую версию CCcam притворяется OScam. Большинство серверов нормально работают с 2.3.0, но иногда приходится подбирать под конкретный сервер.
F-line из CCcam превращается в запись пользователя в /etc/oscam/oscam.user:
[account]
user = client1
pwd = secretpass
group = 1
И в oscam.conf нужно активировать CCcam-порт для входящих клиентов:
[cccam]
port = 12000
Почему конфиги нельзя копировать напрямую
OScam — это не замена CCcam с теми же конфигами. Это другой демон с другой архитектурой. Просто взять CCcam.cfg и скопировать содержимое в OScam не получится — синтаксис полностью другой.
Зато OScam даёт заметно больше возможностей: детальное логирование по каждому ридеру, веб-интерфейс с реальной статистикой, гибкие правила приоритетов и фильтрации. Если вы настраиваете сервер с нуля и у вас есть выбор — OScam стабильнее и гибче, просто придётся потратить час на изучение его синтаксиса.
Какой порт по умолчанию используется в CCcam.cfg?
Стандартный порт для шаринга — 12000 (директива SERVER LISTEN PORT : 12000). Веб-интерфейс по умолчанию на 16001 (WEBINFO LISTEN PORT : 16001). Порт можно менять, но тогда и клиент, и сервер должны использовать одинаковое значение. И не забудьте пробросить нужный порт на роутере, если ресивер за NAT.
Почему C-line не подключается, хотя данные верные?
Первым делом — открыть конфиг в hex-редакторе или хотя бы в nano и проверить, нет ли табов вместо пробелов. Дальше по списку: регистр логина (сервер воспринимает "User" и "user" как разные аккаунты), закрытый порт на firewall сервера или вашего роутера, несовпадение версии протокола, превышение лимита подключений на стороне сервера. Ещё одна причина — файл сохранён с BOM или с CRLF-переносами строк из Windows-редактора.
Что означают цифры в фигурных скобках после C-line?
Ограничение шаринга по формату { caid:provider_id:downhop }. Например, { 0500:032830:2 } означает: принимать только карты Viaccess (0500) конкретного провайдера (032830), до 2 хопов глубиной. Если скобки пустые { } или отсутствуют — ограничений нет, принимается всё в рамках хопа. Несовпадение CAID здесь — одна из главных причин, когда сервер подключён, но каналы не открываются.
В чём разница между C-line и F-line?
C-line — это вы как клиент, исходящее подключение к чужому серверу. F-line — это вы как сервер, описание клиента, которого вы принимаете у себя. Перепутать их — очень распространённая ошибка: вставил F-line туда, где должна быть C-line, и шаринг не работает, но и ошибок в логе нет.
Можно ли использовать CCcam.cfg в OScam?
Напрямую — нет. OScam использует свои файлы: oscam.server для ридеров и oscam.user для клиентов. C-line из cccam cfg переносится в блок [reader] с параметром protocol = cccam в oscam.server. F-line становится записью [account] в oscam.user. Перенос нужно делать вручную, построчно — автоматических конверторов с надёжным результатом нет.
Как применить изменения в CCcam.cfg без перезагрузки ресивера?
Сохраните файл, затем выполните killall -9 CCcam — демон завершится, и если прописан автозапуск, поднимется заново через несколько секунд уже с новым конфигом. Либо через меню Enigma2: Plugins → управление плагинами → CCcam → Restart. CCcam не умеет перечитывать конфиг на лету по сигналу SIGHUP, как это делают некоторые другие демоны — только полный перезапуск.
Practical checklist for smooth viewing
Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.
When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.
Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.
- Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
- Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
- Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.