CCcam.cfg: структура файла, синтаксис строк, примеры 2026
Если CCcam не подключается, первое что нужно проверить — это cccam file, то есть сам конфигурационный файл CCcam.cfg. Большинство проблем с шарингом — не сетевые и не серверные. Они в конфиге. Пробел не там, лишний символ, Windows-окончания строк — и демон молча падает или игнорирует все ваши C-line. Разберём формат до последнего байта.
Что такое файл CCcam.cfg и зачем он нужен
Назначение конфигурационного файла
CCcam.cfg — единственный основной конфиг демона CCcam. В нём всё: к каким серверам подключаться, кого пускать к себе, на каком порту слушать, включать ли веб-интерфейс. Нет отдельного файла для клиентов и отдельного для сервера — всё в одном месте.
Демон читает этот файл один раз при старте. Изменил файл — перезапусти процесс, иначе ничего не изменится. Это важно и к этому мы вернёмся отдельно.
Где CCcam ищет cfg при старте
Стандартных путей несколько, зависит от платформы:
/var/etc/CCcam.cfg— Enigma2 (DreamBox, VU+, Zgemma и большинство современных ресиверов)/etc/CCcam.cfg— классический Linux x86/var/keys/CCcam.cfg— некоторые старые имиджи (Gemini, Nabilosat)/usr/keys/CCcam.cfg— редко, но встречается на OpenATV старых версий
Если не знаете где лежит файл на конкретном имидже — найдите командой:
find / -name 'CCcam.cfg' 2>/dev/null
Регистр критичен. Именно CCcam.cfg с заглавными C — не cccam.cfg, не CCCAM.CFG. На Linux файловая система чувствительна к регистру, и если файл называется неправильно, демон его просто не найдёт.
Отдельно про симлинки: на некоторых имиджах /etc/CCcam.cfg — это симлинк на /var/etc/CCcam.cfg. Редактируете один путь, демон читает другой. Проверьте:
ls -la /etc/CCcam.cfg
Если увидите стрелку (->), работайте с тем путём, куда она указывает.
Отличие от oscam.server и oscam.user
OScam хранит конфиг в нескольких файлах: /etc/oscam/oscam.conf, /etc/oscam/oscam.server, /etc/oscam/oscam.user. Синтаксис там совершенно другой — секции в квадратных скобках, параметры через знак равенства.
CCcam.cfg — плоский текстовый файл без секций. Каждая строка — отдельная директива. Не путайте форматы: если вставить синтаксис oscam.server в CCcam.cfg, CCcam не выдаст ошибку парсинга — просто проигнорирует непонятные строки, и вы будете долго искать почему ничего не работает.
Структура и синтаксис файла CCcam.cfg
Это самая важная часть. Разберём каждый тип строки с точным форматом.
Глобальные параметры (SERVER LISTEN PORT, ALLOW TELNETINFO, WEBINFO LISTEN PORT)
В верхней части файла обычно идут глобальные директивы. Формат: КЛЮЧ : значение или просто КЛЮЧ значение — в зависимости от версии CCcam. Пример рабочего блока:
SERVER LISTEN PORT : 12000
WEBINFO LISTEN PORT : 16001
WEBINFO USERNAME : admin
WEBINFO PASSWORD : strongpass123
ALLOW TELNETINFO : no
DISABLE EMM : yes
MINIMIZE CASCADING : yes
SHOW EXTENDED CLIENT INFO : yes
Строка C-line: подключение к удалённому серверу
C-line — клиентская строка. Вы подключаетесь к чужому CCcam-серверу чтобы получать CW (Control Words). Формат:
C: hostname port username password {версия} {wantemus} {desquick}
Разбираем каждое поле:
C:— тип строки, двоеточие обязательно, пробел после него обязателенhostname— IP или доменное имя сервераport— порт, обычно 12000, но может быть любымusername— логин без пробеловpassword— пароль без пробелов (если в пароле есть пробел — строка сломается, экранирование CCcam не поддерживает){версия}— опционально, версия протокола CCcam (например2.3.0){wantemus}— опционально,yes/no, запрашивать ли EMM от сервера{desquick}— опционально,yes/no, быстрый DES
Минимальная рабочая строка выглядит так:
C: 192.168.1.100 12000 myuser mypassword
Параметры разделяются пробелами, не табуляцией. Таб — гарантированный способ сломать парсинг в некоторых версиях CCcam.
Ещё один edge case: несколько C-line с одинаковым hostname и портом. CCcam использует только первую из них и молча игнорирует остальные. Если у вас дублирующиеся строки — уберите лишние.
Строка F-line: раздача локальной карты или реошар
F-line — серверная строка. Вы разрешаете кому-то подключаться к вашему CCcam. Формат:
F: username password uphops downhops {reshare_parameters}
username/password— учётные данные клиентаuphops— сколько хопов вверх клиент может запросить (обычно 0 или 1)downhops— сколько хопов вниз разрешено для решаринга (0 = без решаринга)
Пример: разрешить пользователю подключиться, дать 1 хоп вверх, запретить решаринг:
F: clientuser secretpass 1 0
Если клиент подключился по F-line но не видит карт — проверьте параметр downhops и сравните с тем, что разрешает вышестоящий сервер. Решаринг больше разрешённого сервером — подключение есть, карт нет.
Строка N-line: newcamd-протокол
N-line используется для подключения через протокол newcamd — он старше CCcam и до сих пор поддерживается многими серверами. Формат строго отличается от C-line:
N: hostname port username password DESkey
DES-ключ — 28-символьная шестнадцатеричная строка вида 0102030405060708091011121314. Обычно сервер выдаёт его вместе с учётными данными. Ключ обязателен — без него соединение не установится.
Строка L-line: radegast
L-line — подключение через протокол Radegast. Встречается редко, в основном на старых серверах с аппаратными картридерами:
L: hostname port username
Пароль в Radegast передаётся иначе, поэтому поле пароля в L-line отсутствует. Если ваш провайдер не указал явно что использует Radegast — скорее всего вам нужна C-line, а не L-line.
Комментарии и пустые строки
Комментарий начинается с # и должен быть на отдельной строке:
# Это корректный комментарий
C: server.example.com 12000 user pass
Инлайн-комментарий после параметров строки работать не будет:
C: server.example.com 12000 user pass # НЕПРАВИЛЬНО — CCcam воспримет # как часть параметра
Пустые строки допускаются и игнорируются. Используйте их для читаемости — разделяйте блоки C-line и F-line визуально.
Глобальные настройки: порты, веб-интерфейс, права доступа
SERVER LISTEN PORT — порт CCcam (обычно 12000)
Эта директива определяет на каком порту CCcam принимает входящие подключения от клиентов по F-line. Дефолтное значение — 12000. Если директива не указана в файле, CCcam слушает на 12000 автоматически.
Проблема возникает если на том же хосте запущен второй экземпляр CCcam или другой демон (OScam, mgcamd) уже занял 12000. Порт можно изменить на любой свободный выше 1024, например 12001.
WEBINFO LISTEN PORT и WEBINFO USERNAME/PASSWORD
Веб-интерфейс CCcam по умолчанию открыт на порту 16001. Доступ без авторизации. Это означает что любой в вашей сети (или в интернете если порт проброшен) может смотреть статус соединений, список клиентов и другую информацию.
Закройте доступ или выставьте пароль:
WEBINFO LISTEN PORT : 16001
WEBINFO USERNAME : adminuser
WEBINFO PASSWORD : VeryStr0ngPass!
Или полностью отключите веб-интерфейс убрав директиву WEBINFO LISTEN PORT из конфига.
ALLOW TELNETINFO yes/no
Telnet-интерфейс на порту 16000 даёт текстовый доступ к статистике CCcam. Если вы не используете telnet для мониторинга — выставьте no. Открытый telnet без авторизации это ненужная поверхность атаки.
DISABLE EMM yes/no и связанные параметры
EMM (Entitlement Management Messages) — сообщения провайдера для управления подпиской на карте. Если CCcam раздаёт вашу физическую карту другим пользователям — отключите EMM (DISABLE EMM : yes). Иначе клиенты могут случайно (или намеренно) отправить EMM на вашу карту, и провайдер заблокирует её как скомпрометированную.
Если вы только клиент и не раздаёте свою карту — этот параметр менее критичен, но оставьте yes на всякий случай.
MINIMIZE CASCADING и SHOW EXTENDED CLIENT INFO
MINIMIZE CASCADING : yes заставляет CCcam использовать карту с наименьшим числом хопов, что снижает задержку. Рекомендую включить.
SHOW EXTENDED CLIENT INFO : yes показывает дополнительную информацию о клиентах в веб-интерфейсе — IP, время подключения, количество запросов. Полезно для отладки.
Расположение файла и права доступа
Пути на разных платформах (Enigma2, OpenATV, Linux x86, OpenWrt)
Сводная таблица путей по платформам:
| Платформа | Стандартный путь | Примечание |
|---|---|---|
| Enigma2 (DreamBox, VU+) | /var/etc/CCcam.cfg | Основной путь |
| OpenATV 6.x+ | /var/etc/CCcam.cfg | Иногда симлинк из /etc/ |
| Linux x86 (Debian/Ubuntu) | /etc/CCcam.cfg | При ручной установке |
| OpenWrt | /etc/CCcam.cfg | Зависит от пакета |
| Старые имиджи Gemini | /var/keys/CCcam.cfg | Исторический путь |
Какие права нужны: chmod 600 vs 644
Правильные права — 600, то есть только владелец может читать и писать:
chmod 600 /var/etc/CCcam.cfg
Права 644 разрешают чтение всем пользователям системы. Это проблема: в CCcam.cfg хранятся логины и пароли от C-line в открытом виде. Любой пользователь с доступом к системе (или процесс с уязвимостью) может прочитать ваши учётные данные.
Владелец файла и почему root обязателен
CCcam обычно запускается от root. Файл должен принадлежать root:
chown root:root /var/etc/CCcam.cfg
Если CCcam запускается от другого пользователя (например cccam на системах где разделены привилегии), владелец файла должен совпадать с пользователем процесса.
Резервная копия и версионирование
Перед каждым изменением делайте резервную копию. Это 5 секунд, которые могут сэкономить час отладки:
cp /var/etc/CCcam.cfg /var/etc/CCcam.cfg.bak.$(date +%Y%m%d_%H%M%S)
На linux-серверах с git — версионируйте конфиг. Да, с паролями внутри это чуть неудобно, но для локального репозитория (не публичного) это лучший способ иметь историю изменений:
cd /etc && git init && git add CCcam.cfg && git commit -m "initial CCcam config"
Применение изменений: перезапуск CCcam
Команды restart на Enigma2 (init.d скрипты)
На Enigma2 CCcam обычно управляется через softcam-менеджер или init.d скрипт:
/etc/init.d/softcam restart
Или напрямую через softcammanager если он есть:
softcammanager -r
На некоторых имиджах удобнее через меню плагинов ресивера, но командная строка надёжнее — точно знаете что произошло.
Перезапуск через systemd на Linux
Если CCcam установлен как systemd-сервис:
systemctl restart cccam
Проверить статус:
systemctl status cccam
Если сервис не зарегистрирован в systemd — убейте процесс и запустите заново вручную:
killall -9 CCcam
CCcam -C /var/etc/CCcam.cfg &
Проверка что процесс реально перезапустился (ps, pidof)
Запомните PID до рестарта, проверьте что он изменился после:
# До рестарта:
pidof CCcam
# Например: 1234
# После рестарта:
pidof CCcam
# Должен быть другой: 5678
Проверьте что порт слушается:
netstat -tlnp | grep CCcam
# или:
ss -tlnp | grep 12000
Если порт не появился в выводе — CCcam либо не запустился, либо вылетел сразу. Смотрите лог.
Почему 'kill -HUP' не работает с CCcam
Сигнал SIGHUP традиционно используется для "перечитать конфиг без рестарта". CCcam его не обрабатывает — демон либо проигнорирует сигнал, либо завершит работу (в зависимости от версии). Горячей перезагрузки конфига в CCcam нет. Полный рестарт процесса обязателен.
Типичные ошибки в CCcam.cfg и как их диагностировать
Лишние пробелы, табы и невидимые символы (CRLF vs LF)
Классика: файл отредактирован в Notepad на Windows и сохранён с окончаниями строк CRLF (\r\n вместо \n). CCcam видит \r в конце каждой строки как часть последнего параметра — и весь конфиг сломан. Симптом: демон запускается, но ни одна C-line не подключается.
Фикс одной командой:
sed -i 's/\r$//' /var/etc/CCcam.cfg
Или если утилита доступна:
dos2unix /var/etc/CCcam.cfg
Проверить наличие CRLF можно так:
cat -A /var/etc/CCcam.cfg | head -5
# Если видите ^M$ в конце строк — это CRLF
Аналогичная проблема — UTF-8 BOM (Byte Order Mark). Некоторые редакторы (особенно старый Notepad) добавляют три невидимых байта в начало файла. Первая строка конфига не парсится. Фикс:
sed -i '1s/^\xEF\xBB\xBF//' /var/etc/CCcam.cfg
Неверное количество параметров в C-line
C-line требует минимум 4 параметра после типа строки: hostname, port, username, password. Если один из них пропущен или разбит пробелом (например пароль содержит пробел) — CCcam не сможет разобрать строку корректно. Парсер не выдаёт понятную ошибку, просто строка игнорируется.
Проверьте количество полей в каждой C-line:
grep '^C:' /var/etc/CCcam.cfg | awk '{print NF, $0}'
Минимум 5 полей (включая "C:"). Если меньше — строка неполная.
Конфликт портов с другими демонами (OScam, mgcamd)
Если на ресивере одновременно установлены несколько softcam (CCcam и OScam например), они могут пытаться занять один порт. CCcam запустится, но не сможет открыть сокет на 12000 — соединения от клиентов не принимаются.
ss -tlnp | grep 12000
Если порт занят другим процессом — либо смените порт в CCcam.cfg (SERVER LISTEN PORT : 12001), либо остановите конкурирующий демон.
Чтение логов /var/log/CCcam.log
Основной инструмент диагностики — лог. Смотреть в реальном времени:
tail -f /var/log/CCcam.log
Что искать:
CWs from hostname— C-line подключилась, CW полученыlogin failed— неверные учётные данныеno card available— подключились, но карт нет (возможно хопы или ограничения на сервере)connection refused/timed out— сетевая проблема, сервер недоступенcan't read config— CCcam не может прочитать файл конфига (права доступа или неверный путь)
На Enigma2 лог может быть в другом месте:
find /var /tmp -name 'CCcam.log' 2>/dev/null
Диагностика через telnet на порт 16001
Если включён ALLOW TELNETINFO : yes, можно подключиться telnet-ом и получить статус:
telnet 127.0.0.1 16000
В ответ придёт текстовый вывод с текущим состоянием соединений. Веб-интерфейс на 16001 даёт то же самое в браузере — зайдите по адресу http://ip-ресивера:16001/.
Безопасность файла CCcam.cfg
Хранение паролей в открытом виде — почему это проблема
В любом cccam file пароли от C-line хранятся в plaintext. Нет шифрования, нет хеширования. Кто получил доступ к файлу — получил все учётные данные. Поэтому:
- Используйте уникальный пароль на каждую C-line — не тот же что на почте, форуме или другом сервисе
- Пароль должен быть достаточно сложным (12+ символов, буквы+цифры)
- Меняйте пароли если подозреваете что файл был скомпрометирован
- Не отправляйте содержимое CCcam.cfg в публичные чаты и форумы для "диагностики"
Защита веб-интерфейса
Веб-интерфейс CCcam на 16001 — удобная точка утечки информации. Всегда выставляйте пароль или отключайте полностью. Дополнительно ограничьте доступ через iptables только с локальной сети:
iptables -A INPUT -p tcp --dport 16001 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 16001 -j DROP
Ограничение SERVER LISTEN PORT через iptables
Если у вас есть конкретные клиенты с известными IP — разрешите входящие на 12000 только с этих адресов:
iptables -A INPUT -p tcp --dport 12000 -s 192.168.1.50 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -s 203.0.113.10 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -j DROP
Это не защита самих учётных данных, но снижает риск брутфорса и несанкционированных подключений.
Что делать при компрометации файла
Если CCcam.cfg попал к посторонним — действуйте немедленно:
- Смените пароли на всех C-line у провайдеров
- Обновите F-line с новыми паролями для своих клиентов
- Проверьте логи на подозрительные подключения
- Выставьте новые права
chmod 600на обновлённый файл - Перезапустите CCcam
Не ждите — скомпрометированный cccam file это открытый доступ к чужому шарингу за ваш счёт.
Где находится файл CCcam.cfg на ресивере Enigma2?
Стандартный путь — /var/etc/CCcam.cfg. На некоторых имиджах может быть /etc/CCcam.cfg или /var/keys/CCcam.cfg. Быстрый способ найти: find / -name 'CCcam.cfg' 2>/dev/null. Учтите что /etc/CCcam.cfg на многих имиджах — это симлинк, редактировать нужно реальный файл по которому смотрит симлинк.
Что означают параметры в конце строки C-line — цифры и слова?
После обязательных 4 полей (hostname, port, username, password) идут опциональные: версия протокола CCcam (например 2.3.0), флаг wantemus (запрашивать EMM от сервера), флаг desquick (быстрый DES), и параметры reshare. Если получили C-line от провайдера без этих параметров — не добавляйте их сами. Оставьте только обязательные 4 поля.
Почему CCcam не подхватывает изменения после редактирования файла?
CCcam читает конфиг только при старте процесса. Изменили файл — нужен полный рестарт: killall CCcam и запуск заново. Также проверьте что файл сохранён в кодировке UTF-8 без BOM и с Unix-окончаниями строк (LF, не CRLF). Редактирование в Windows Notepad почти гарантированно даст CRLF — используйте Notepad++ или Sublime с явным указанием LF.
Какие права (chmod) должны быть на CCcam.cfg?
Рекомендуется chmod 600 и владелец root:root. Права 600 означают что только root может читать и писать файл — другие пользователи системы не смогут его открыть. Это важно потому что пароли C-line хранятся в plaintext. Команды: chmod 600 /var/etc/CCcam.cfg и chown root:root /var/etc/CCcam.cfg.
Можно ли использовать один CCcam.cfg на нескольких ресиверах?
Технически файл идентичен по формату на всех платформах. Но если сервер ограничивает одно одновременное подключение на учётную запись, второй ресивер будет выбивать первый и наоборот. Рекомендую использовать разные учётные данные на каждое устройство — заодно проще отслеживать какой ресивер сколько нагружает сервер.
Как добавить комментарий к строке в CCcam.cfg?
Символ # начинает комментарий только если стоит в начале строки. Инлайн-комментарии (в конце строки с параметрами) не работают — CCcam воспримет # как часть последнего параметра. Правильно: # Это мой основной сервер на отдельной строке, затем C-line на следующей строке.
Чем отличаются F-line и C-line в файле?
C-line — клиентская строка: вы подключаетесь к удалённому серверу чтобы получать ключи. F-line — серверная: вы разрешаете другим подключаться к вашему CCcam. Один и тот же файл может содержать обе строки одновременно — если ресивер работает как клиент (получает ключи по C-line) и как сервер (раздаёт их по F-line своим клиентам).
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.