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

Если ты читаешь это, значит уже установил CCcam на ресивер или сервер, но файл конфигурации вызывает вопросы. Синтаксис cccam config не очевидный — особенно разница между F-line и C-line, и почему каналы не открываются даже когда сервер Connected. Разберём каждую директиву на реальных примерах, а не абстрактных описаниях из вики.

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

CCcam.cfg — обычный текстовый файл. Никакого XML, никакого JSON. Одна директива на строку, регистр имеет значение: SERVER LISTEN PORT и server listen port — это разные вещи, вторая просто не сработает.

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

Какой именно файл использует запущенный экземпляр — смотри через:

ps aux | grep -i cccam

В выводе будет полный путь к бинарнику и иногда явный аргумент -c /path/to/CCcam.cfg.

Стандартные пути к CCcam.cfg

Путь зависит от платформы и сборки. Вот где искать:

  • /var/etc/CCcam.cfg — Enigma2 (Dreambox, VU+, EDISION)
  • /usr/keys/CCcam.cfg — старые Dreambox DM500/DM600, некоторые Formuler
  • /etc/CCcam.cfg — Linux x86/x64, Raspberry Pi
  • /etc/cccam/CCcam.cfg — некоторые пакетные сборки под Debian/Ubuntu

Различия путей на разных платформах

OpenATV 7.x и OpenPLi 9.x используют /var/etc/ — это symlink на tmpfs при загрузке, поэтому конфиг должен лежать в flash-памяти (/etc/enigma2/ или аналог), иначе после перезагрузки файл пропадёт. На голом Debian или Ubuntu CCcam обычно запускается через systemd-unit, и путь указан в файле сервиса — проверь cat /etc/systemd/system/cccam.service.

На VPS с Ubuntu, если ставил через deb-пакет, конфиг скорее всего в /etc/CCcam.cfg, а бинарник в /usr/local/bin/CCcam.

Права доступа и владелец файла

CCcam часто запускается от root, но если это не так — убедись что демон может читать файл:

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

600 — это важно. Конфиг содержит пароли в открытом виде, и читать его должен только владелец процесса.

Порядок директив и комментарии

CCcam читает файл сверху вниз. Глобальные параметры (SERVER LISTEN PORT и т.д.) лучше ставить в начало, потом F-line, потом C-line и N-line. Технически порядок не обязателен, но так легче читать и отлаживать. Комментируй каждую C-line — откуда линия, когда добавил:

# Основной сервер, добавлен 2026-01-15
C: myserver.example.com 12500 user1 pass123

F-line — раздача доступа клиентам (серверная сторона)

F-line описывает учётную запись входящего клиента. Если ты хочешь дать другу доступ к своей карте — создаёшь F-line с его логином и паролем. Он вводит эти данные в свой ресивер как C-line к твоему серверу.

Синтаксис: F: username password hops downhops

F: user1 strongpass123 1 0

Поля по порядку: имя пользователя (без пробелов), пароль, hops, downhops. Всё разделяется пробелами. Двоеточие после F обязательно, пробел после двоеточия тоже обязателен.

Параметр hops — сколько шагов до карты передавать клиенту

Это самый путаный параметр в cccam config. Hops не означает "расстояние до карты" — он означает какие карты из пула сервера видит этот клиент.

  • hops = 0 — клиент не видит ничего (бесполезно, разве что для теста)
  • hops = 1 — только локальные карты сервера (физические картридеры)
  • hops = 2 — локальные карты + карты от серверов с которыми соединён твой CCcam через C-line
  • hops = 3 — плюс карты от серверов-соседей второго уровня

Для обычной раздачи своей одной карты — всегда ставь hops=1. Это исключает утечку чужих карт твоим клиентам.

Параметр downhops — ограничение на пересдачу клиентом дальше

downhops=0 означает что клиент не может пересдавать карту третьим лицам через свой CCcam. downhops=1 — может раздавать дальше, но только один уровень. На практике: если раздаёшь карту другу, ставь 0. Если строишь иерархию серверов — разберись с topology сначала.

# Только своя карта, без права пересдачи
F: user1 strongpass123 1 0

# Карты + пересдача одного уровня
F: reseller1 anotherpass456 2 1

Привязка к конкретным CAID через uphops флаги

Можно ограничить клиента конкретными CAID. Формат расширенный — в фигурных скобках после основных параметров:

F: user1 pass 1 0 { 0500:000000 }

Здесь 0500 — CAID (Viaccess), 000000 — provider ident (все провайдеры этой системы). Если хочешь несколько — разделяй запятой внутри скобок. Большинство домашних конфигов этим не пользуются, но на публичных серверах это стандарт.

Пример F-line для раздачи одной карты

F: myfriend Tr0ub4dor&3secure 1 0

Это раздаёт только локальные карты сервера пользователю myfriend. Он не увидит чужие карты если сервер соединён с другими шарерами, и не сможет сам раздавать дальше.

Про пароли — слабые пароли вроде "12345" или "cccam" активно сканируют боты. Я видел логи серверов где за сутки приходит 3000+ попыток подбора. Минимум 12 символов, буквы + цифры + спецсимволы.

C-line — подключение к удалённому серверу (клиентская сторона)

C-line — противоположность F-line. Это описание удалённого сервера к которому твой CCcam подключается как клиент. Именно через C-line ты "покупаешь" или получаешь доступ к чужой карте.

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

C: server.example.com 12000 myusername mypassword

Порт указывается явно. Никакого дефолтного порта в протоколе нет — сервер может слушать на любом. Чаще всего встречается 12000, 12001, 12500 — но это не стандарт, а привычка.

Дополнительные параметры: DES-ключ

Некоторые серверы требуют DES-ключ для аутентификации — это наследие Newcamd внутри CCcam-протокола. Формат:

C: server.example.com 12000 user pass { 0:0:1 }

Значение 0:0:1 — стандартный DES-ключ для CCcam. Если сервер не требует — не указывай вообще. Большинство современных CCcam-серверов работают без него.

no_emm и no_au — отключение пересылки EMM и AU

EMM (Entitlement Management Messages) — это обновления прав на карте. По умолчанию CCcam пересылает их через C-line на сервер. Если не хочешь обновлять чужую карту (или хочешь снизить трафик):

C: server.example.com 12000 user pass no_emm

no_au отключает автоматическое обновление ключей (Auto Update). Для readonly-подключений к шаринговому серверу — обычно ставят оба флага.

Несколько C-line с приоритетом и failover

CCcam при нескольких C-line подключается ко всем одновременно и использует ту которая первой отдаёт CW для конкретного CAID. Это не строгий приоритет сверху вниз — это race: кто быстрее ответил, тот и используется. Если один сервер отвалился, остальные продолжают работать.

C: primary.example.com 12000 user1 pass1
C: backup.example.com 12500 user2 pass2

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

Пример рабочего C-line

C: myshare.dyndns.org 12001 clientname Secure!Pass2026 no_emm

Глобальные параметры CCcam.cfg

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

SERVER LISTEN PORT — порт сервера

SERVER LISTEN PORT : 12000

Порт на котором CCcam принимает входящие подключения от клиентов (по F-line). Менять с дефолтного 12000 — хорошая практика, снижает число автоматических сканов.

WEBINFO LISTEN PORT — веб-интерфейс мониторинга

WEBINFO LISTEN PORT : 16001

Открывает HTTP-интерфейс с информацией о подключениях, картах, ECM времени. По умолчанию 16001. Критично: если твой сервер на белом IP и этот порт открыт в интернет — любой желающий видит список твоих клиентов и провайдеров. Закрывай файрволом или меняй на нестандартный.

ALLOW TELNETINFO — доступ через telnet

ALLOW TELNETINFO : yes

Включает telnet-интерфейс для отладки. Полезно на embedded-устройствах без браузера. Порт по умолчанию — 16000. В продакшне лучше отключить.

DISABLE EMM — отключение пересылки EMM на карту

DISABLE EMM : yes

Когда раздаёшь чужую карту (взятую через C-line) — глобально запрещает пересылку EMM. Правильная практика если не хочешь случайно обновлять/ломать чужую карту через свой сервер.

MINIMUM DOWNHOPS — минимальный уровень пересдачи

MINIMUM DOWNHOPS : 0

Глобальное ограничение на пересдачу для всех клиентов. Переопределяет значение в F-line если там указано большее. 0 = никому нельзя пересдавать.

SHOW TIMING — время ECM в логах

SHOW TIMING : yes

Добавляет в лог время обработки каждого ECM в миллисекундах. Незаменимо при диагностике — сразу видно какой сервер тормозит.

N-line — подключение по протоколу Newcamd (legacy)

Newcamd — протокол старше CCcam, появился примерно в 2004 году. Многие считают его устаревшим, но реальность такова что масса клиентов (mgcamd в старых прошивках, некоторые версии OScam) поддерживают именно его. Если сервер выдаёт тебе N-line — это Newcamd.

Когда нужен N-line вместо C-line

N-line нужен если удалённый сервер работает по Newcamd-протоколу, а не CCcam. Внешне похоже, но отличие принципиальное: одна N-line = один CAID. Для двух разных систем (например Nagravision и Viaccess) нужно две N-line даже если это один и тот же физический сервер.

Синтаксис: N: host port user pass DES-key

N: server.example.com 15000 nuser npass 01 02 03 04 05 06 07 08 09 10 11 12 13 14

DES-ключ — 14 байт в hex, разделённых пробелами. Сервер и клиент должны использовать одинаковый ключ. Стандартный ключ для большинства открытых серверов:

01 02 03 04 05 06 07 08 09 10 11 12 13 14

Если сервер использует нестандартный ключ — он сам его сообщает. Сгенерировать случайный можно через:

openssl rand -hex 14 | sed 's/../& /g'

Отличия от CCcam-протокола

В CCcam-протоколе один C-line даёт доступ ко всем картам сервера. В Newcamd — один N-line = один CAID. Это означает что если сервер раздаёт Nagravision (CAID 1801) и Conax (CAID 0B00) — нужно две N-line с одинаковыми хостом/портом/логином/паролем.

Совместимость со старыми CAM-серверами

Dreambox DM500S с оригинальной прошивкой 2008 года не поддерживает CCcam-протокол напрямую, только через mgcamd который говорит Newcamd. В таких случаях на сервере настраивают Newcamd-listener — отдельный порт (обычно 15000-15010) параллельно с CCcam-портом.

Проверка работы конфига и чтение логов

После правки конфига большинство людей делают рестарт и смотрят "открылся канал — не открылся". Это плохой метод диагностики. Правильный порядок действий другой.

Запуск CCcam с флагом -d для verbose-логов

Если система позволяет — запусти CCcam в foreground с отладкой:

/usr/bin/CCcam -d -s 2>&1 | tee /tmp/cccam_debug.log

Флаг -d включает debug output, -s не отвязывается от терминала. Ошибки парсинга конфига появятся сразу при старте — до того как вообще начнутся подключения.

Чтение /tmp/ecm.info

После того как переключился на закодированный канал, CCcam пишет информацию об ECM-запросах в /tmp/ecm.info. Там видно:

  • CAID и SID канала
  • Какой сервер ответил на запрос
  • Время ответа в миллисекундах
  • Статус: decoded / not decoded

Если файл пустой когда канал должен открыться — CCcam не получает ECM вообще, проблема в ресивере или CI+.

Веб-интерфейс: статусы Connected/Trying/Offline

Открой http://[IP-ресивера]:16001 в браузере. Там три ключевых раздела:

  • Servers — статус каждой C-line: Connected (активно), Trying (пытается подключиться), Offline (не отвечает)
  • Providers — какие CAID и provider ident доступны от каждого сервера
  • Clients — кто подключён через F-line, время последнего ECM

Сервер в статусе Connected означает что TCP-соединение установлено. Это не гарантирует что он раздаёт нужный тебе CAID — проверяй вкладку Providers.

Команды через telnet

Если webinfo недоступен, подключись на порт 16000:

telnet 127.0.0.1 16000

Доступные команды: shares (список карт), providers (провайдеры), clients (подключённые клиенты), exit.

Типичные сообщения в логах

card not found for [CAID]:[SID] — ни один подключённый сервер не имеет карты для этого CAID. Проверяй вкладку Providers в webinfo.

CW not found — сервер есть, карта есть, но конкретный ECM не был расшифрован. Бывает при истёкшей подписке на карте или при слишком высоком hop count.

Troubleshooting: типичные проблемы конфигурации

90% проблем с cccam config — это либо неправильный hop count, либо файрвол, либо пробел/таб в неположенном месте. Разберём по симптомам.

Каналы открываются один раз и фризят

Симптом: канал открывается на несколько секунд, потом изображение замерзает, через 10 секунд или меняется на синий экран.

Причина: ECM-ответ приходит медленнее чем интервал смены ключа (обычно 10 секунд). Цепочка пересдач слишком длинная — hop 3+ добавляет 500-1000ms к каждому запросу.

Диагностика: в webinfo смотри колонку ECM time для каждого сервера. Если >800ms — проблема.

Решение: найти сервер с hop=1 и прямым доступом к карте, или проверить что MINIMUM DOWNHOPS не форсирует лишние прыжки.

Webinfo не открывается

Симптом: браузер не открывает http://[IP]:16001, connection refused или timeout.

Диагностика:

ss -tlnp | grep 16001
iptables -L INPUT -n | grep 16001

Первая команда покажет слушает ли CCcam на этом порту. Вторая — нет ли блокирующего правила.

Решение: убедись что WEBINFO LISTEN PORT задан в конфиге и CCcam перезапущен. На роутерах с OpenWrt порт может быть заблокирован дефолтным firewall — нужно добавить allow rule.

Клиент Connected, но каналы не открываются

Симптом: webinfo показывает Connected для C-line, ECM запросы идут, но CW not found.

Диагностика: сравни CAID канала (видно в /tmp/ecm.info) с тем что показывает вкладка Providers для этого сервера. Часто оказывается что сервер раздаёт Nagravision CAID 1810, а канал требует 1801.

grep "CAID" /tmp/ecm.info

Высокий ECM time (более 1000ms)

Это либо сеть (ping до сервера >200ms — уже плохо для шаринга), либо сервер перегружен клиентами, либо цепочка пересдач 3+. Проверь ping до хоста в C-line:

ping -c 10 server.example.com

Если сервер за несколькими hop'ами шаринга — каждый добавляет задержку. Лучший источник карты — hop=1, прямой reader.

Сервер не стартует после правки конфига

Запусти вручную с отладкой и смотри что выводит:

/usr/bin/CCcam -d -s

Типичные синтаксические ошибки: табуляция вместо пробела в F/C-line, двойное двоеточие (F:: user), пустое поле (C: host 12000 pass — два пробела вместо логина). CCcam обычно молча игнорирует неправильные строки — встроенного валидатора нет.

Конфликт CCcam и OScam на одном ресивере

Два демона не должны слушать на одном порту. Проверь:

ss -tlnp | grep -E "12000|15000|16001"

Если оба занимают один порт — один из них не запустится. Реши конфликт изменив SERVER LISTEN PORT в одном из конфигов. Отдельная история: оба не должны одновременно держать один и тот же softcam.key — это приводит к гонке при обновлении ключей.

Безопасность CCcam-сервера: что обязательно сделать

CCcam-серверы на стандартных портах сканируют автоматически. Это не теория — это наблюдаемая реальность. Если сервер поднят на белом IP с портом 12000 и слабыми паролями, первые попытки брутфорса появятся в течение нескольких часов после запуска.

Сильные пароли в F-line

Минимум 12 символов. Не словарные слова, не даты рождения. Не "cccam1234", не "password", не "admin". Генерируй через:

openssl rand -base64 16 | tr -dc 'a-zA-Z0-9!@#$%' | head -c 14

Закрытие WEBINFO от интернета через iptables

Разреши доступ к веб-интерфейсу только с доверенного IP:

iptables -A INPUT -p tcp --dport 16001 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 16001 -j DROP

Это разрешает доступ из локальной сети и блокирует всё остальное. На VPS замени 192.168.1.0/24 на свой домашний IP.

Смена дефолтного порта 12000

Любой порт в диапазоне 10000-65000 который не входит в стандартные списки сканеров снизит шум. Например 13457 или 27184 — случайные, не очевидные. Меняется одной строкой в конфиге:

SERVER LISTEN PORT : 27184

Fail2ban для блокировки брутфорса

На Linux-сервере — настрой fail2ban с парсингом логов CCcam. CCcam логирует неудачные попытки аутентификации в syslog или в свой лог-файл (зависит от сборки). Базовый jail в /etc/fail2ban/jail.local:

[cccam]
enabled  = true
filter   = cccam
logpath  = /var/log/cccam.log
maxretry = 5
bantime  = 3600
findtime = 600

Регулярная ротация паролей клиентов

Если даёшь доступ через F-line нескольким людям — меняй пароли раз в несколько месяцев. Бывшие клиенты у которых сохранился конфиг иначе продолжают пользоваться сервером. Также: если один из клиентов слил пароль — смена пароля конкретно его F-line закрывает доступ без перенастройки остальных.

Граничные случаи которые встречаются на практике

Несколько ситуаций которые не очевидны из документации.

Конфиг работает на тестовом ресивере, но не на основном. Разные сборки Enigma2 используют разные пути. OpenATV хранит конфиг в /var/etc/, OpenPLi может использовать /etc/enigma2/CCcam.cfg. Проверь через ps aux где именно запускается бинарник.

После обновления image CCcam.cfg сброшен. Flash-раздел перезаписывается при обновлении. Держи бэкап конфига на USB или в Google Drive. На Enigma2 перед обновлением: cp /var/etc/CCcam.cfg /media/usb/CCcam.cfg.bak.

Сервер работает за NAT на VPS. CCcam должен знать на каком IP слушать. Если VPS за NAT (редко, но бывает на некоторых хостингах), нужен port forwarding на уровне хостера. Прямой IP без NAT — стандарт для серверов, но на некоторых бюджетных платформах это не так.

IPv6-only хостинг. CCcam версий до 2.3.x не поддерживает IPv6 в C-line. Если сервер на IPv6 — либо используй CCcam 2.3.x+, либо запроси IPv4. В C-line IPv6-адрес нужно брать в квадратные скобки: C: [2001:db8::1] 12000 user pass.

Карта в локальном ридере отдаётся клиентам, но сама не открывает каналы. Конфликт между OScam-reader и CCcam-emu — оба пытаются обработать ECM. Решение: если используешь OScam как ридер, CCcam должен забирать CW у OScam через oscam.server, а не держать собственный emu активным.

ECM time резко вырос с 200ms до 2000ms. Провайдер карты добавил anti-sharing защиту — например увеличил частоту смены ключей или добавил CW-паузы. В этом случае параметры конфига не помогут — проблема на стороне источника карты.

Часто задаваемые вопросы

Чем отличается F-line от C-line в CCcam.cfg?

F-line — серверная директива. Она описывает учётную запись входящего клиента: ты как сервер создаёшь логин/пароль для другого человека который подключается к тебе. C-line — клиентская директива: описывает удалённый сервер к которому подключается твой CCcam. На одном устройстве могут быть оба типа одновременно — это роль reshare-сервера: принимаешь карты по C-line и раздаёшь их дальше через F-line.

Что значит hop в строке F: user pass 1 0?

Первая цифра (hops) — сколько уровней пересдачи клиент видит. 1 означает только локальные карты сервера — физические картридеры. 2 — плюс карты от серверов к которым подключён твой CCcam. Вторая цифра (downhops) — может ли клиент сам пересдавать дальше. 0 = пересдача запрещена. 1 = разрешена на один уровень.

Какой порт по умолчанию используется CCcam?

Серверный порт по умолчанию — 12000 (TCP). Веб-интерфейс — 16001. Оба меняются через SERVER LISTEN PORT и WEBINFO LISTEN PORT в CCcam.cfg. Рекомендую менять оба с дефолтных — порт 12000 входит в стандартные списки сканеров.

Почему канал открывается несколько секунд и фризит?

Скорее всего слишком длинная цепочка пересдач — hops 3 и выше добавляют 500-1000ms к каждому ECM-запросу. Если ключ канала меняется каждые 10 секунд, а ответ приходит за 2 секунды — запас есть. Но при hops 4+ это легко выйти за 10 секунд. Проверь ECM time в webinfo и ищи источник с hop=1.

Можно ли использовать CCcam и OScam одновременно?

Да, но без конфликтов по портам. Они не должны слушать одинаковые порты и не должны одновременно держать один softcam.key. Стандартная схема: OScam как основной emu с картридером, CCcam подключается к OScam как клиент через протокол cccam внутри oscam.server. Так CCcam получает CW от OScam и раздаёт его своим клиентам.

Webinfo показывает Connected, но каналы не открываются — куда смотреть?

Открой /tmp/ecm.info и посмотри CAID который запрашивает ресивер для этого канала. Потом в webinfo вкладка Providers — сравни CAID который раздаёт сервер с тем что нужен каналу. Connected означает только что TCP-соединение есть. Если сервер раздаёт Nagravision 1801, а канал требует 1810 — CW не придёт никогда.

Как проверить синтаксис CCcam.cfg перед рестартом?

Встроенного валидатора нет. Запусти CCcam вручную в foreground с флагом -d: /usr/bin/CCcam -d -s. Ошибки парсинга конфига появятся сразу в stdout до того как начнутся подключения. Типичные ошибки: табуляция вместо пробела, лишние двоеточия, пустые поля между пробелами в F/C-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 или внешние мониторы.