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 или внешние мониторы.