CCcam TV: настройка сервера и шаринга в 2026

Если вы разбираетесь в спутниковом приёме и хотите понять, как работает cccam tv на уровне протокола — а не просто купить подписку и надеяться на лучшее — эта статья для вас. Разберём механику от ECM-запроса до control word, покажем реальные конфиги и команды диагностики. Без воды и без рекламы.

Что такое CCcam TV и как работает протокол кардшаринга

CCcam — это проприетарный протокол кардшаринга, разработанный для передачи control words (CW) между ресиверами по сети. По умолчанию работает через TCP-порт 12000. Суть простая: у одного устройства есть физическая смарт-карта, у остальных — нет, но доступ нужен всем.

Схема работы cccam tv выглядит так: ваш ресивер принимает зашифрованный поток (DVB-CSA), извлекает ECM-пакет и отправляет его на CCcam-сервер. Сервер прогоняет этот пакет через физическую смарт-карту, получает control word и возвращает его обратно. Ресивер расшифровывает поток — картинка есть.

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

Принцип работы CCcam: обмен control words (CW)

DVB-CSA (Digital Video Broadcasting — Common Scrambling Algorithm) — алгоритм, которым операторы шифруют спутниковый поток. CW меняется каждые 10 секунд (crypto period). Именно поэтому шаринг требует постоянного соединения: нельзя один раз получить ключ и пользоваться вечно.

ECM (Entitlement Control Message) — это зашифрованный пакет, содержащий текущий CW. EMM (Entitlement Management Message) — управляет правами карты (активация, деактивация). CCcam работает именно с ECM-запросами, EMM обрабатывается локально картой.

Разница между сервером и клиентом

Сервер — это устройство с реальной смарт-картой. Клиент — ресивер без карты, который подключается к серверу через C-line. Один и тот же CCcam может быть одновременно сервером (раздаёт через F-line) и клиентом (подключается к вышестоящему серверу через C-line).

Локальная карта в терминах CCcam — это "local". Карты, доступные через сеть — это "remote", и у них есть параметр hops, показывающий количество промежуточных серверов.

Место CCcam в цепочке ECM/EMM

В Enigma2-ресиверах CCcam работает как демон и взаимодействует с softcam-интерфейсом системы. Когда канал переключается, Enigma2 передаёт ECM в CCcam, тот уходит на сервер и возвращает CW в descrambler. Всё это происходит прозрачно для пользователя — если, конечно, всё настроено правильно.

Установка и базовая настройка CCcam-сервера

CCcam распространяется в виде скомпилированного бинарника под конкретную архитектуру. На Enigma2-боксах (Vu+, Dreambox, GigaBlue) это обычно MIPS или ARM. Последняя широко используемая версия — CCcam 2.3.0, хотя в сети ходят и патченные сборки.

Требования к системе и загрузка бинарника

Минимальные требования смешные по современным меркам: 32 МБ RAM и процессор от 200 МГц. Но если вы собираетесь держать 10+ активных C-line на слабом железе — RAM заканчивается быстро, и ресивер уходит в перезагрузку. Проверено на практике.

Бинарник кладётся в /usr/bin/CCcam или /var/bin/CCcam, в зависимости от прошивки. Права:

chmod 755 /usr/bin/CCcam

Без этого демон просто не запустится. Звучит очевидно, но половина проблем "CCcam не стартует" решается именно этим.

Структура файла /var/etc/CCcam.cfg

Основной конфиг — /var/etc/CCcam.cfg. На некоторых прошивках путь может быть /etc/CCcam.cfg, но Enigma2-стандарт — именно /var/etc/. Базовый рабочий конфиг выглядит так:

SERVER LISTEN PORT : 12000
WEBINFO LISTEN PORT : 16001
WEBINFO LISTEN PORT SSL : 0
LOG FILE : /tmp/CCcam.log
LOG LEVEL : 1
ALLOW TELNET : yes
TELNET PORT : 23
ECM CACHE LENGTH : 15
CACHE SYNC : yes
CACHE SYNC PORT : 12001
NEWCAMD LISTEN PORT : 15050
NEWCAMD DES KEY : 01 02 03 04 05 06 07 08 09 10 11 12 13 14

C: myserver.example.com 12000 myuser mypass
F: localclient clientpass 1 0 0 { }

Параметр LOG LEVEL : 1 даёт базовые логи. Для диагностики временно ставьте 3 или 4 — подробность растёт, но и нагрузка тоже.

Расположение файлов и права доступа

Типичная раскладка файлов на Enigma2:

  • /usr/bin/CCcam — бинарник (права 755)
  • /var/etc/CCcam.cfg — конфиг (права 644, не 777)
  • /tmp/CCcam.log — лог-файл
  • /etc/init.d/CCcam — init-скрипт

Про права на конфиг — отдельная история. CCcam.cfg с правами 777 иногда игнорируется демоном полностью. Это не баг документации — это реальное поведение некоторых версий. Ставьте 644 и не думайте об этом.

Запуск через init-скрипт:

/etc/init.d/CCcam start

На systemd-системах (если вы настраиваете на сервере под Linux, а не на ресивере):

systemctl start cccam
systemctl enable cccam

Firewall — обязательно открыть порт 12000:

iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
iptables -A INPUT -p tcp --dport 16001 -j ACCEPT

Без второй строки веб-интерфейс будет недоступен снаружи.

Настройка клиента и строк F-line / C-line

Здесь большинство инструкций врут или упрощают до потери смысла. Разберём синтаксис нормально.

Синтаксис C-line для подключения к серверу

C-line пишется на стороне клиента — в CCcam.cfg того ресивера, который хочет получить доступ:

C: hostname port username password

Реальный пример:

C: share.example.com 12000 mylogin s3cur3p4ss

Важные нюансы. Между C: и hostname — один пробел, не два, не таб. CCcam чувствителен к пробелам. Пароль не должен содержать пробелы — парсер сломается. Регистр логина и пароля имеет значение — MyUser и myuser это разные аккаунты.

Если у вас динамический IP от провайдера — не прописывайте IP-адрес напрямую в C-line. Завтра IP сменится, и всё перестанет работать. Нужен DynDNS (No-IP, DuckDNS или что-то своё) с автообновлением. Это элементарно, но регулярно ломает людям шаринг.

Синтаксис F-line для раздачи доступа

F-line прописывается на сервере — для каждого клиента, которому вы раздаёте доступ:

F: username password hops uphops ignorereshare [SID] { CAID:provid CAID:provid }

Пример минимальной рабочей F-line:

F: client1 pass123 1 0 0 { }

Разбор параметров:

  • client1 — логин клиента
  • pass123 — пароль клиента
  • 1 — максимальное количество hops, которое клиент может видеть
  • 0 — uphops: ограничение на то, сколько уровней вверх клиент может запрашивать
  • 0 — ignorereshare: 0 = соблюдать правила решара
  • { } — пустые скобки означают "раздавать все доступные CAID"

Фигурные скобки с конкретными CAID ограничивают раздачу. Например, { 0100:000000 } — только карты с CAID 0100. Пустые скобки — всё что есть.

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

Hop 1 — карта доступна напрямую на сервере, к которому вы подключаетесь. Hop 2 — ваш сервер подключён к другому серверу, где карта. Hop 3 — ещё один уровень. И так далее.

Чем больше hops — тем выше суммарная задержка. Hop 3 и выше на практике даёт нестабильную картинку на быстро меняющихся каналах. Hop 1 — идеал. Hop 2 — приемлемо при хорошем пинге.

Параметр uphops в F-line предотвращает бесконечную ретрансляцию. Если uphops = 0, клиент не может решарить полученный доступ дальше. Это разумная защита от "цепочки из 10 серверов", где CW приходит за 2 секунды.

Интеграция CCcam с OScam и переход на современный стек

CCcam как проект фактически мёртв — последние официальные версии датируются 2011-2012 годами. OScam (OSCam) — это живой проект с активными коммитами, поддержкой новых карт и нормальным веб-интерфейсом. При этом OScam умеет говорить по протоколу CCcam в обе стороны.

Почему многие переходят с CCcam на OScam

OScam поддерживает гораздо больше типов карт и протоколов: Camd35, Newcamd, GBox, Radegast — и да, CCcam тоже. Webif на порту 8888 показывает реальное время ECM, список активных ридеров, статистику запросов. В CCcam это всё примитивнее.

Конфиги OScam разбиты на несколько файлов: /etc/oscam/oscam.conf (глобальные настройки), /etc/oscam/oscam.server (ридеры/серверы), /etc/oscam/oscam.user (пользователи). Это удобнее единого CCcam.cfg для сложных конфигураций.

Настройка протокола cccam в oscam.server

Чтобы OScam подключился к CCcam-серверу как клиент, нужна секция в /etc/oscam/oscam.server:

[reader]
label         = mycccam_server
enable        = 1
protocol      = cccam
device        = share.example.com,12000
user          = mylogin
password      = s3cur3p4ss
cccmaxhops    = 2
reconnecttimeout = 30
cccreshare    = 0
ccckeepalive  = 1

Параметр cccmaxhops = 2 ограничивает видимые hops — так же, как в C-line у CCcam. ccckeepalive = 1 поддерживает соединение живым и уменьшает время реконнекта после обрыва.

Чтобы OScam раздавал доступ клиентам по протоколу CCcam, в /etc/oscam/oscam.conf нужна секция:

[cccam]
port          = 12000
reshare       = 1
reshare_mode  = 0
version       = 2.3.0

А в /etc/oscam/oscam.user создаётся аккаунт:

[account]
user          = client1
password      = clientpass
group         = 1
cccreshare    = 1
cccmaxhops    = 1

Одновременная работа двух эмуляторов

Технически CCcam и OScam можно запустить одновременно на одном ресивере, но они не должны слушать одинаковые порты. Типичная схема: OScam на порту 12001, CCcam на 12000. Или OScam полностью заменяет CCcam, а старые клиенты с C-line на порту 12000 подключаются уже к OScam — они не заметят разницы.

Если RAM мало — запускайте только что-то одно. Два softcam-демона на 64 МБ это уже напряжённо.

Диагностика и решение частых проблем

Большинство проблем с cccam tv решается чтением логов и проверкой сети. Не гаданием, не перезагрузкой, а именно диагностикой.

Каналы не открываются: анализ логов

Первый шаг — проверить веб-интерфейс CCcam: http://ip_ресивера:16001. Там видно, подключён ли сервер и есть ли активные карты. Если раздел Servers пустой или красный — соединение не установлено.

Лог читается так:

tail -f /tmp/CCcam.log

Ищите строки с "connected to" (успешное подключение), "disconnected" (разрыв) и "ECM" (запросы расшифровки). Если видите только "connecting to server..." без "connected" — проблема в сети или неверных данных C-line.

Проверка доступности порта:

telnet server_ip 12000

Если соединение не устанавливается — порт закрыт firewall'ом, сервер не работает, или вы за CGNAT (об этом ниже).

Несовпадение версий протокола — ещё одна тихая причина отказа. CCcam 2.1.x и 2.3.x имеют несовместимые рукопожатия в некоторых сценариях. Соединение устанавливается, но карты не передаются. В логах это выглядит как подключение без активных ридеров. Решение — обновить клиент или сервер до одной ветки версий.

Freezing и рассыпание картинки

Фризы = ECM time выше нормы. Норма — до 300-500 мс. Если ECM time стабильно 800+ мс — картинка будет рассыпаться каждые 10 секунд (на смене crypto period).

В OScam ECM time виден прямо в webif на порту 8888 в разделе Readers. В CCcam смотрим лог с уровнем 3:

ECM TIME : 245ms

Причины высокого ECM time:

  • Высокий пинг до сервера — проверяется обычным ping server_ip
  • Перегруженный пир — сервер обслуживает слишком много клиентов одновременно
  • Большое количество hops — каждый уровень добавляет задержку
  • Слабое железо сервера — карта обрабатывает запросы медленно

Если пинг нормальный (до 80 мс), а ECM time всё равно высокий — скорее всего перегруженный сервер. Это не лечится настройками на вашей стороне.

Проверка соединения и ECM time

Несколько полезных команд для диагностики на Enigma2:

# Проверка, слушает ли CCcam порт
netstat -tlnp | grep 12000

# Просмотр активных соединений
netstat -tn | grep 12000

# Проверка через telnet на самом сервере
telnet localhost 12000

# Размер лога (если вырос до гигабайта — ротация не работает)
ls -lh /tmp/CCcam.log

Про CGNAT — отдельная проблема. Если ваш провайдер использует CGNAT (Carrier-Grade NAT), у вас нет реального публичного IP. Проброс портов физически невозможен. Запустить сервер, доступный извне, не получится без VPN с выделенным IP (WireGuard или OpenVPN на VPS). Это не лечится настройками роутера.

NAT без CGNAT — решаемо. В настройках роутера: проброс TCP-порта 12000 на локальный IP ресивера. Стандартная операция, но без неё ни один внешний клиент не достучится до вашего сервера.

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

TCP-порт 12000 — для шаринга (основной протокол). Порт 16001 — для веб-интерфейса CCcam. Оба настраиваются в CCcam.cfg через параметры SERVER LISTEN PORT и WEBINFO LISTEN PORT. OScam при работе с протоколом CCcam по умолчанию тоже слушает 12000, если не изменить в oscam.conf.

В чём разница между C-line и F-line?

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

Что означает параметр hops в кардшаринге?

Hops — это количество серверов между вами и физической смарт-картой. Hop 1 = карта прямо на сервере, к которому вы подключились. Hop 2 = ваш сервер подключён к другому, где карта. Чем меньше hops — тем ниже задержка и стабильнее картинка. Hop 3 и выше на практике часто даёт заметные фризы.

Почему картинка рассыпается (freezing)?

Причина почти всегда одна — высокий ECM time. Это время, за которое сервер возвращает control word. Норма — до 300-500 мс. Всё выше — начинаются фризы при смене crypto period (каждые 10 секунд). Проверьте пинг до сервера, посмотрите ECM time в логах CCcam или в webif OScam. Если пинг нормальный, а ECM время высокое — сервер перегружен или слишком много hops.

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

Да. OScam умеет подключаться к CCcam-серверам (protocol = cccam в oscam.server) и одновременно раздавать доступ клиентам по тому же протоколу через секцию [cccam] в oscam.conf. Многие переходят на OScam именно потому, что он поддерживает протокол CCcam полностью, при этом активно развивается и поддерживает современные карты. Два демона одновременно — возможно, но следите за RAM и разными портами.

Где находится конфигурационный файл CCcam?

На Enigma2-ресиверах стандартный путь — /var/etc/CCcam.cfg. На некоторых прошивках встречается /etc/CCcam.cfg. Редактировать можно через telnet или FTP (например, FileZilla с SFTP). Права на файл должны быть 644, не 777 — с правами 777 некоторые версии CCcam игнорируют конфиг.

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

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