CCcam config: настройка CCcam.cfg с нуля

Если вы открыли этот файл впервые и не понимаете, что куда писать — это нормально. Документация у CCcam всегда была, мягко говоря, скудной. Я разберу cccam config по частям: где лежит файл, что означает каждая строка, почему демон молча игнорирует ваши правки и как читать логи, когда каналы не открываются.

Материал рассчитан на тех, кто уже поставил демон на ресивер или Linux-сервер и застрял именно на этапе конфигурации. Установку CCcam здесь не разбираем — только файл и его синтаксис.

Где лежит CCcam.cfg и базовая структура файла

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

Стандартные пути: /var/etc/CCcam.cfg и /etc/CCcam.cfg

На большинстве Enigma2-образов (OpenATV, OpenPLi, OpenViX) конфиг лежит по адресу /var/etc/CCcam.cfg. На некоторых более старых или нестандартных сборках встречается /etc/CCcam.cfg. Проще всего проверить через SSH командой:

find / -name "CCcam.cfg" 2>/dev/null

Если файла нет совсем — создайте его по нужному пути. CCcam при старте просто не найдёт конфиг и запустится с пустыми настройками, без ошибок в логе.

Разница расположения на Enigma2 и на Linux-сервере

На Enigma2-ресивере конфиг традиционно в /var/etc/CCcam.cfg, а на DreamOS (Dreambox с новым ядром) его могут класть в /etc/tuxbox/config/. На чистом Linux-сервере (Ubuntu, Debian) всё зависит от того, как вы запускаете демон и что прописано в init-скрипте или systemd-юните. Часто используют /etc/CCcam.cfg или /usr/local/etc/CCcam.cfg.

Проверьте свой init-скрипт: там будет строка типа -c /path/to/CCcam.cfg, которая указывает демону, где искать конфиг. Именно этот путь и важен.

Кодировка файла и переносы строк (LF, не CRLF)

Это убивает больше конфигов, чем любые синтаксические ошибки. Если вы редактируете файл на Windows в обычном Notepad и сохраняете его — строки C: и F: будут содержать символ возврата каретки \r в конце. CCcam его не понимает и молча пропускает строку. Демон стартует, соединений нет, в логе ничего подозрительного.

Используйте Notepad++ с режимом «Edit → EOL Conversion → Unix (LF)», либо редактируйте файл прямо на ресивере через nano или vi по SSH. Проверить наличие CRLF можно командой:

cat -A /var/etc/CCcam.cfg | grep "^C:"

Если в конце строки видите ^M$ вместо просто $ — проблема именно в переносах. Исправить быстро:

sed -i 's/\r//' /var/etc/CCcam.cfg

Права на файл: chmod 644 и владелец root

CCcam запускается от root и должен иметь возможность читать конфиг. Стандартные права — 644, владелец root:

chmod 644 /var/etc/CCcam.cfg
chown root:root /var/etc/CCcam.cfg

Если демон запускается от другого пользователя (что редкость, но бывает), права нужно подогнать под него. Файл с правами 600 и чужим владельцем CCcam просто не откроет.

Строка C: — подключение к серверу (клиентская часть)

Строка C: — это то, что делает из вашего ресивера клиента. Она говорит CCcam: «подключись к вот этому серверу и попроси ключ для расшифровки». Без неё cccam config теряет смысл с точки зрения клиентской части.

Синтаксис: C: hostname port username password

Базовый формат выглядит так:

C: server.example.com 12000 myuser mypassword

Разбор по полям:

  • C: — тип строки, пробел после двоеточия обязателен
  • server.example.com — hostname или IP-адрес сервера, который вам дал провайдер
  • 12000 — TCP-порт, на котором слушает сервер
  • myuser — логин (регистрозависимый)
  • mypassword — пароль (регистрозависимый)

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

Дополнительные параметры: wantemus, no/yes для шифрования

Пятый параметр управляет шифрованием канала между клиентом и сервером. Вариантов несколько в зависимости от версии CCcam:

C: server.example.com 12000 myuser mypassword yes

Значение yes включает шифрование, no — отключает. Проблема в том, что разные версии CCcam (2.1.x, 2.2.x, 2.3.x) трактуют этот параметр по-разному. Если сервер ожидает шифрования, а клиент отправляет открытый текст — соединение установится, но авторизация упадёт. Уточняйте у владельца сервера, какой параметр использовать.

Параметр wantemus — это устаревший синтаксис из старых версий, означает то же самое. Если видите его в чужих конфигах — просто знайте, что это не опечатка.

Несколько строк C: и порядок их обработки

Можно прописать несколько серверов:

C: server1.example.com 12000 user1 pass1
C: server2.example.com 15000 user2 pass2

CCcam подключится ко всем сразу и будет запрашивать ключи у всех. Это даёт резервирование: если первый сервер не отвечает, запрос уйдёт второму. Но есть нюанс: две строки C: к одному и тому же серверу с одним аккаунтом вызовут двойное подключение. Большинство серверов банят аккаунты за превышение лимита соединений. Проверяйте, что у вас нет дублирующих записей.

Проверка соединения через telnet и логи

Быстрая проверка, что порт сервера вообще доступен с вашей сети:

telnet server.example.com 12000

Если соединение не устанавливается — это сетевая проблема или порт закрыт на сервере. Если устанавливается и сразу закрывается — сервер работает, дальше смотрим авторизацию.

Логи CCcam на Enigma2 смотреть так:

tail -f /tmp/CCcam.log

Строки с CONNECT, LOGIN, DENIED — именно они показывают, что происходит при подключении.

Настройка сервера: F-строки, локальные ридеры и шаринг

Если вы раздаёте доступ другим — вам нужны строки F:. Именно они делают из вашего ресивера сервер. Путать C: и F: — самая частая ошибка новичков.

F: user password — раздача доступа клиентам

Формат строки для создания аккаунта клиента:

F: clientuser clientpassword 1 0 0 0 0

Первые два поля — логин и пароль клиента. Остальные поля — это uphops, downhops и несколько флагов. Минимальный рабочий вариант:

F: clientuser clientpassword 1 0 0

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

Параметры uphops и downhops

Третье поле в строке F: — uphops. Четвёртое — downhops. Они определяют глубину цепочки шаринга.

uphops — сколько уровней вверх клиент может «видеть» через ваш сервер. Значение 1 означает: клиент видит только вашу карту, не видит карты серверов, к которым подключены вы. Значение 2 — видит уже глубже. Ставить больше 2 без понимания последствий не стоит: приходят чужие шары из длинных цепочек, качество расшифровки падает, фризы.

downhops — насколько далеко вниз ваш сервер раздаёт полученные шары. 0 значит, что клиент получает только то, что вы ему разрешили явно. Обычно downhops держат на 0 для контроля.

Подключение локальной карты через внутренний ридер

CCcam автоматически определяет смарт-карты во встроенных ридерах ресивера. Если карта вставлена и поддерживается — она появится в share-list как локальная без дополнительной настройки в CCcam.cfg. Именно эту карту и будут получать клиенты по строкам F:.

Для внешних USB-ридеров или PC/SC-устройств на Linux-сервере конфигурация сложнее — там нужно настраивать секцию ридера отдельно или использовать OScam как кард-сервер с проксированием в CCcam.

Ограничение количества подключений на аккаунт

Последние поля строки F: включают ограничение одновременных подключений. Формат с явным лимитом:

F: clientuser clientpassword 1 0 0 0 1

Последняя цифра — максимум одновременных подключений с этим аккаунтом. Значение 0 обычно означает «без лимита», что нежелательно, если вы не доверяете клиенту полностью.

Глобальные директивы и веб-интерфейс

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

WEBINFO LISTEN PORT и доступ к статусу

Веб-интерфейс CCcam — это простая страница со списком подключённых клиентов, share-листом и статусом. По умолчанию порт 16001:

WEBINFO LISTEN PORT : 16001

Открыть в браузере: http://192.168.1.100:16001/ — замените IP на адрес ресивера в вашей сети. Там же можно посмотреть, какие CAID и провайдеры доступны через сервер — это первое место для диагностики, когда каналы не открываются.

Никогда не открывайте этот порт в интернет без firewall или хотя бы ограничения по IP. Веб-интерфейс CCcam не имеет авторизации. Любой, кто знает ваш внешний IP и угадает порт, увидит всю структуру вашей сети шаринга.

SERVER LISTEN PORT — порт для входящих клиентов

Если вы раздаёте доступ другим:

SERVER LISTEN PORT : 12000

На этот порт подключаются клиенты через строку C: в своих конфигах. Порт 12000 — исторически популярный, но не стандартный. Можно поставить любой незанятый выше 1024. Главное — убедиться, что он открыт в firewall и, если вы за NAT, проброшен с роутера на ресивер.

ALLOW TELNETINFO и безопасность мониторинга

Telnet-интерфейс CCcam позволяет подключиться и смотреть живой статус в терминале:

ALLOW TELNETINFO : yes
TELNET LISTEN PORT : 16000

Те же правила безопасности, что и для веб-интерфейса: только локальная сеть, никакого доступа из интернета. Если ресивер смотрит в сеть напрямую — закройте 16000 и 16001 на входящие подключения из WAN.

DEBUG и уровни логирования

По умолчанию логирование минимальное. Для диагностики поднимаем уровень:

DEBUG : 0

Значения от 0 до 8, где 0 — минимум, 8 — максимально подробный лог включая все ECM-запросы. На постоянной основе ставить выше 2 не стоит — лог разрастётся быстро. Поднимайте уровень только на время отладки, потом возвращайте обратно.

Диагностика: почему cccam config не работает

Конфиг написан, демон запущен, но каналы не открываются. Разбираем по уровням — от сети к расшифровке. Пропускать уровни не стоит, потому что симптомы на разных уровнях могут быть похожи.

Соединение есть, но каналы не открываются (нет нужного CAID)

Статус ONLINE в меню ресивера или в логе — это только сетевое подключение. Он не означает, что сервер отдаёт нужные ключи.

Откройте веб-интерфейс на порту 16001 и посмотрите share-list. Там будет список CAID (идентификаторов систем условного доступа) и провайдеров, которые доступны через ваш сервер. Если нужный CAID для вашего канала там отсутствует — сервер просто не имеет доступа к этому пакету. Это не проблема конфига — это вопрос к тому, у кого вы берёте доступ.

Типичные CAID: Viaccess — 0x0500, Nagravision — 0x1800, Irdeto — 0x0600, Conax — 0x0B00. Если CAID вашего канала не совпадает с тем, что в share-list — каналы не откроются при любом cccam config.

Сервер не виден: порт закрыт или NAT

Клиент не может подключиться к серверу — в логе видно повторяющиеся попытки CONNECT без успеха.

Проверка порта с внешней стороны:

nc -zv server.example.com 12000

Если порт не открыт — три варианта: firewall на сервере блокирует входящие, сервер за NAT без проброса порта, или сам CCcam-демон не запущен. Проверяем в таком порядке.

На ресивере, который стоит за домашним роутером и хочет принимать входящих клиентов: без проброса порта (port forwarding) с роутера на ресивер клиенты не достучатся. Это аппаратное ограничение NAT, не баг CCcam.

Ошибка авторизации: неверный логин/пароль или регистр

В логе строка типа DENIED user или LOGIN FAILED — значит сетевое подключение прошло, но аутентификация упала.

Проверяем по порядку:

  • Логин и пароль в строке C: точно совпадают с тем, что выдал владелец сервера? CCcam чувствителен к регистру
  • Нет ли лишних пробелов в конце логина или пароля — особенно если копировали текст из письма
  • Не истёк ли аккаунт или не заблокирован ли он за превышение лимита подключений
  • Файл не был сохранён с CRLF (см. раздел про переносы строк)

Ещё один нюанс: некоторые серверы проверяют не только логин/пароль, но и количество одновременных соединений. Если у вас в конфиге две строки C: к одному серверу с одним аккаунтом — вы уже превысили лимит при первом же подключении.

Freeze и подвисания: hops и качество линии

Картинка есть, но периодически замерзает на 2-5 секунд. Это один из самых неприятных симптомов, потому что причин несколько.

Первое, что нужно проверить — задержка до сервера. Ping выше 150-200ms на регулярной основе даст фризы при любом конфиге. CCcam ожидает ответ от сервера в пределах определённого таймаута — если сервер физически далеко или линия нестабильна, таймаут срабатывает раньше, чем приходит ключ.

Второе — uphops. Если параметр uphops в строках F: поднят до 3-4, ваш CCcam начинает получать шары из длинных цепочек шаринга. Чем длиннее цепочка — тем выше задержка каждого звена суммируется. Значение 1 гарантирует, что клиент работает только с прямым источником. Это меньше контента, но стабильнее.

Третье — смотрите в логе ECM-время (время получения ключа). Строки вида ECM time: 850ms — это уже на грани. Если ECM-время стабильно выше 500ms, фризы неизбежны независимо от настроек.

Частые вопросы

Где находится файл CCcam.cfg на ресивере?

На большинстве Enigma2-образов это /var/etc/CCcam.cfg. На некоторых прошивках — /etc/CCcam.cfg или каталог /etc/tuxbox/config/. Точный путь зависит от сборки прошивки и способа установки демона. Используйте find / -name "CCcam.cfg" 2>/dev/null, чтобы найти файл на конкретном устройстве.

Что означают параметры в строке C:?

Формат: C: хост порт логин пароль [шифрование]. Хост и порт — адрес сервера, логин и пароль выдаёт владелец сервера. Последний необязательный параметр (yes/no) управляет шифрованием канала между клиентом и сервером. Уточняйте у провайдера, какое значение использовать — разные версии CCcam трактуют его по-разному.

Нужно ли перезапускать CCcam после правки конфига?

Да, обязательно. CCcam читает CCcam.cfg только один раз при старте. Изменения в файле не применяются на лету — нужен полный рестарт демона через панель прошивки или командой перезапуска сервиса. На Enigma2 обычно через меню плагина или кнопку Restart в интерфейсе CCcam.

Соединение ONLINE, но каналы не открываются — почему?

Статус ONLINE означает только сетевое подключение к серверу, не наличие нужных ключей. Откройте share-list через веб-интерфейс на порту 16001 и проверьте, есть ли там CAID вашего канала. Если нужного CAID нет в share-list — сервер просто не имеет доступа к этому пакету, и никакие изменения в конфиге здесь не помогут.

Чем отличается строка C: от строки F:?

C: — клиентская строка: она подключает ваш ресивер к чужому серверу и запрашивает у него ключи. F: — серверная: она создаёт аккаунты, по которым другие клиенты могут подключиться к вам. Параметры uphops и downhops в строке F: задают глубину шаринга — сколько уровней цепочки клиент может «видеть» через ваш сервер.

Какой порт использовать для CCcam?

Порт прослушивания сервера задаётся директивой SERVER LISTEN PORT в конфиге. Исторически популярен порт 12000, веб-интерфейс по умолчанию работает на 16001, telnet — на 16000. Конкретный порт для подключения как клиент согласуйте с владельцем сервера — он указывается в строке C: вашего cccam config.

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

Даже самая стабильная линия 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 или внешние мониторы.