CCcam TV: настройка сервера и конфигов в 2026
Если вы занимаетесь card sharing и хотите понять, как правильно поднять cccam tv на своём ресивере или Linux-машине — эта статья для вас. Здесь не будет общих слов о «преимуществах технологии». Только конкретные пути, команды, параметры конфигов и алгоритм отладки, когда что-то идёт не так.
Разберём всё от установки бинарника до связки с OScam и настройки CCcam.prio — файла, который большинство инструкций просто игнорируют, а потом удивляются фризам.
Что такое CCcam и как работает протокол card sharing
CCcam — это softcam, программный эмулятор условного доступа, который работает поверх Enigma2 или чистого Linux. Он реализует собственный TCP-протокол для обмена control words (CW) между сервером, у которого есть физическая смарт-карта, и клиентом, который смотрит канал.
Цепочка работает так: ресивер встречает зашифрованный пакет → отправляет ECM-запрос на сервер CCcam → сервер расшифровывает ECM через карту → возвращает CW клиенту → клиент дескремблирует поток. Всё это должно укладываться в несколько сотен миллисекунд, иначе начинаются фризы.
Роль CCcam как softcam-эмулятора
CCcam работает как демон на уровне операционной системы. Он перехватывает ECM-запросы от тюнера, маршрутизирует их к нужному источнику (локальной карте или удалённому серверу) и возвращает CW дескремблеру. На Enigma2 он запускается параллельно с Enigma, на чистом Linux — как отдельный процесс.
Принцип обмена control words между сервером и клиентом
Control word — это 8-байтный ключ, который обновляется каждые ~10 секунд (crypto period). Сервер получает его от физической карты и передаёт клиенту по TCP-соединению. По умолчанию CCcam использует порт 12000. Если CW не пришёл вовремя — экран замерзает или появляется чёрный кадр.
Отличие протокола CCcam от newcamd и mgcamd
Newcamd работает с конкретными CAID и привязан к одному провайдеру на соединение. CCcam передаёт виртуальные карты целиком — клиент получает доступ ко всем CAID, которые есть на сервере, через одну линию. Mgcamd — это клиент, который умеет работать с обоими протоколами, но сам протокол CCcam в нём — просто один из режимов.
Термины: линия C-line, F-line, hop, ecm
C-line (Client line) — строка конфига, по которой ваш ресивер подключается к чужому серверу. F-line (Friend line) — строка, которую вы выдаёте своим клиентам. Hop — количество промежуточных серверов между физической картой и вашим ресивером. Hop 1 — сервер напрямую держит карту. Hop 2 — уже один ретранслятор. При hop 3 и выше ECM time растёт до 600-800 мс и выше, сигнал становится нестабильным даже при хорошем интернете.
Установка CCcam на Enigma2 и Linux
Перед тем как что-то настраивать — нужен правильный бинарник. CCcam компилируется под конкретную архитектуру процессора, и именно здесь большинство новичков спотыкаются первый раз.
Загрузка бинарника под нужную архитектуру
Ресиверы на Dreambox и большинство STB под Enigma2 используют mipsel (MIPS Little Endian). Более новые устройства на HiSilicon или BCM7252 — arm. Старые Vu+ Solo/Duo первого поколения и некоторые модели TechniSat — sh4. Перед загрузкой проверяйте архитектуру командой:
cat /proc/cpuinfo | grep "cpu model"
Если бинарник не запускается и сразу завершается с ошибкой — почти всегда это несовпадение архитектуры. Проверьте через file /usr/bin/CCcam — там будет указан тип ELF.
Размещение файла в /usr/bin и права chmod 755
Бинарник кладётся в /usr/bin/CCcam. После загрузки обязательно выставьте права:
chmod 755 /usr/bin/CCcam
Без этого демон не запустится. Конфиги CCcam ищет в двух местах в зависимости от сборки: /usr/keys/CCcam.cfg или /var/etc/CCcam.cfg. На большинстве Enigma2-образов 2026 года это /etc/CCcam.cfg с симлинком в /usr/keys/.
Автозапуск через /etc/init.d или systemd
На Enigma2 автозапуск настраивается через скрипт в /etc/init.d/. Минимальный вариант для systemd на чистом Linux — файл /etc/systemd/system/cccam.service:
[Unit]
Description=CCcam Softcam
After=network.target
[Service]
ExecStart=/usr/bin/CCcam
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Затем: systemctl enable cccam && systemctl start cccam. На Enigma2 проще использовать плагин SoftcamSetup — он сам создаёт нужные скрипты.
Проверка версии и логов запуска
Запустите CCcam вручную для проверки:
/usr/bin/CCcam &
Логи пишутся в /tmp/CCcam.log. Если в логе видите reading config file /usr/keys/CCcam.cfg и затем connecting to host:12000 — демон поднялся и пытается подключиться к серверу. Версию CCcam можно узнать из веб-интерфейса на порту 16001 или из самого лог-файла в первых строках.
Конфигурация CCcam.cfg: разбор ключевых параметров
Файл /usr/keys/CCcam.cfg — это сердце всей настройки cccam tv. Разберём его структуру построчно, потому что ошибки здесь дают совершенно непредсказуемые симптомы.
Синтаксис C-line: C: host port username password
C-line выглядит так:
C: mydns.example.com 12000 myuser mypassword
Четыре поля через пробел: хост, порт, логин, пароль. Хост может быть IP-адресом или доменным именем. Если у сервера динамический IP — обязательно нужен DDNS (DynDNS, No-IP или собственный сервис), иначе после смены IP сервера C-line перестанет работать, и вы будете несколько часов искать причину, пока не посмотрите в логи.
F-line — зеркальная история, но для ваших клиентов:
F: clientuser clientpassword
Клиент прописывает в своём конфиге вашу C-line, а вы у себя держите F-line с его логином и паролем.
Параметры SERVER LISTEN PORT и WEBINFO
Если вы раздаёте доступ — нужно открыть серверный порт:
SERVER LISTEN PORT : 12000
WEBINFO LISTEN PORT : 16001
Порт 12000 должен быть открыт во внешний мир (проброшен через NAT, если ресивер за роутером). Порт 16001 — веб-интерфейс мониторинга, его обычно оставляют только для локальной сети. Через браузер на http://192.168.x.x:16001 можно видеть статус всех подключённых линий, ECM time и активные соединения.
Распространённая проблема: линия подключается (handshake прошёл), но CW не приходит. Почти всегда это фаервол или NAT — порт открыт для входящих, но блокирует ответы. Проверяйте iptables -L -n и правила FORWARD.
Опции ALLOW TELNET, DEBUG, GLOBAL LISTEN PORT
Несколько опций, которые реально используются в продакшне:
ALLOW TELNET : yes— включает telnet-доступ к CCcam на порту 16000. Удобно для быстрой диагностики, но не держите открытым в интернет.DEBUG : no— в режиме DEBUG лог растёт быстро, включайте только при отладке.GLOBAL LISTEN PORT : 12001— если вы хотите, чтобы клиенты подключались на нестандартный порт, отдельный от серверного.IGNORE RESHARE DISTANCE : 1— ограничивает hop для клиентов, которым вы раздаёте. Ставьте 1, чтобы не плодить длинные цепочки.
Файлы CCcam.prio и CCcam.channelinfo
Это файлы, которые игнорируют 90% мануалов — и зря. CCcam.prio лежит рядом с основным конфигом и задаёт приоритет источников для конкретных CAID и провайдеров:
; CAID:ProvID
0500:032830
0604:000000
Без этого файла CCcam при наличии двух источников на один CAID выбирает произвольно. Если один источник — hop 1 с ECM 200 мс, а другой — hop 3 с ECM 700 мс, и CCcam выбрал второй — получаете фризы при полностью рабочей линии. CCcam.prio фиксирует порядок и убирает эту проблему.
CCcam.channelinfo — маппинг SID на названия каналов для отображения в веб-интерфейсе. На работу cccam tv не влияет, но помогает в мониторинге понять, какой канал генерирует ECM-нагрузку.
Связка CCcam с OScam и выбор протокола
Чистый CCcam хорош для простых сценариев. Но если у вас несколько линий разных провайдеров, нужен детальный контроль над каждым reader или требуется cacheex — переходите на OScam с поддержкой протокола CCcam.
Когда OScam предпочтительнее чистого CCcam
OScam выигрывает в трёх сценариях: когда нужны отдельные правила для каждого reader (таймауты, приоритеты, фильтрация CAID), когда используется cacheex для ускорения ответа на повторяющиеся ECM-запросы, и когда нужен подробный веб-интерфейс с историей ECM. Чистый CCcam проще в начальной настройке, но быстро упирается в потолок гибкости.
На одном ресивере одновременно запускать и CCcam, и OScam — плохая идея. Оба будут слушать порт 12000 и конфликтовать. Выберите один. Если используете OScam, CCcam полностью не нужен — OScam сам реализует протокол CCcam для подключения к серверам.
Конвертация C-line в reader OScam (protocol = cccam)
C-line из CCcam.cfg:
C: mydns.example.com 12000 myuser mypassword
Превращается в секцию [reader] в файле /etc/oscam/oscam.server:
[reader]
label = myserver
protocol = cccam
device = mydns.example.com,12000
user = myuser
password = mypassword
caid = 0500,0604
group = 1
reconnecttimeout = 15
Поле caid — фильтр: OScam будет слать ECM этому reader только для указанных систем. Это аналог CCcam.prio, но гибче. group связывает reader с аккаунтами пользователей.
Настройка oscam.server и oscam.user
Файл /etc/oscam/oscam.user описывает ваших клиентов (аналог F-line):
[account]
user = clientuser
password = clientpassword
group = 1,2
au = 1
uniq = 4
Параметр uniq = 4 ограничивает одновременные подключения с одного аккаунта — полезно, если клиент пытается расшарить вашу линию дальше. au = 1 включает автообновление ключей карты.
Мониторинг через OScam webif на порту 8888
Веб-интерфейс OScam включается в /etc/oscam/oscam.conf:
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
На http://192.168.x.x:8888 увидите все reader, их статус, текущий ECM time и историю ответов. Это на порядок информативнее CCcam webinfo на 16001. Для каждого reader OScam показывает среднее время ответа, количество успешных/неудачных ECM — сразу понятно, какая линия проседает.
Диагностика и устранение фризов и обрывов
Фризы при просмотре cccam tv — это почти всегда один из четырёх сценариев: слишком долгий ECM time, потеря CW, сетевые проблемы, или конфликт источников на один CAID. Разберём каждый по порядку.
Анализ логов ECM time и статусов линий
Норма ECM time — до 400 мс. При 400-600 мс начинаются периодические подзависания. При 700+ мс — постоянные фризы. Смотреть ECM time можно в веб-интерфейсе CCcam на порту 16001 (колонка "ecmtime") или в OScam webif.
В логе CCcam (/tmp/CCcam.log) ищите строки вида:
ecm time: 280 ms from server mydns.example.com
Если видите нулевые ответы или строки no card found — сервер не видит вашего запроса или не имеет нужного CAID. Строка connection closed — сервер разорвал соединение, смотрите статус линии.
Причины фризов: высокий hop, длинный ECM time, потеря CW
Высокий hop — главный враг стабильности. При hop 1 ECM идёт напрямую к карте и обратно. При hop 3 запрос проходит через двух посредников, каждый добавляет латентность и точку отказа. Если сервер утверждает hop 1, но ECM time стабильно держится выше 500 мс — скорее всего, hop реально выше или сервер перегружен.
Потеря CW без обрыва соединения — редкий, но неприятный баг. Случается при одновременном запросе одного ECM от двух источников с разными CW (race condition). Лечится через CCcam.prio или настройкой caid в reader OScam так, чтобы только один reader обрабатывал конкретный CAID.
Проверка сети: ping, telnet на порт, стабильность DNS
Первый шаг при проблемах с линией — проверить базовую доступность:
ping mydns.example.com
telnet mydns.example.com 12000
Если telnet не подключается — порт закрыт фаерволом на сервере или у вас. Если ping проходит, а telnet нет — смотрите правила iptables и NAT. Если ping идёт с потерями выше 1-2% — проблема в сети, и никакие настройки CCcam не помогут.
Отдельно проверяйте DNS. Если в C-line стоит доменное имя, а DNS-сервер на ресивере — публичный с высоким TTL, при смене IP сервера обновление может запаздывать на несколько часов. Ставьте минимальный TTL на стороне DDNS (60-300 секунд) и убедитесь, что ресивер не кэширует DNS агрессивно.
Настройка CCcam.prio против конфликта каналов
Конфликт двух источников на один CAID без настроенного приоритета — частая причина фризов, которую трудно поймать. CCcam видит два reader для CAID 0500 и переключается между ними по какой-то внутренней логике. Если один из них hop 2+ или с высоким ECM time — получаете нестабильность.
Файл /usr/keys/CCcam.prio фиксирует порядок. Синтаксис:
; Формат: CAID:ProviderID
; Пустой ProvID = любой провайдер
0500:032830
0500:000000
0604:
Строки идут в порядке приоритета — CCcam сначала пробует первый источник, потом второй. Чтобы узнать ProviderID для нужного канала — смотрите в CCcam webinfo или в OScam, там он отображается при активных ECM-запросах.
Частые вопросы
Какой порт использует CCcam по умолчанию?
Сервер CCcam слушает входящие подключения на порту 12000. Веб-интерфейс мониторинга работает на порту 16001. Оба значения можно изменить в CCcam.cfg через параметры SERVER LISTEN PORT и WEBINFO LISTEN PORT. Если меняете серверный порт — не забудьте обновить этот же порт во всех C-line клиентов.
Чем отличается C-line от F-line?
C-line — это исходящее подключение. Вы прописываете C-line в своём конфиге, чтобы ваш ресивер подключился как клиент к чужому серверу. F-line — входящее: вы выдаёте её тому, кто будет подключаться к вашему серверу. Сервер держит F-line с логином и паролем клиента, клиент прописывает у себя C-line с адресом вашего сервера и теми же реквизитами.
Почему возникают фризы при просмотре?
Порядок проверки: сначала смотрим ECM time в веб-интерфейсе (норма до 400 мс), затем проверяем hop линии (желательно не выше 2), потом тестируем сеть через ping и telnet host 12000. Если всё в порядке, но фризы есть на конкретных каналах — скорее всего, конфликт источников на один CAID. Решение: настроить CCcam.prio с явным приоритетом нужного провайдера.
Что лучше — CCcam или OScam?
CCcam проще в начальной настройке — файл конфига понятный, запуск занимает пять минут. OScam сложнее, но даёт детальное управление каждым reader, поддерживает cacheex (кэширование CW для повторных ECM), показывает подробную статистику и устойчивее при нестабильных линиях. Для домашнего ресивера с одной-двумя линиями CCcam достаточно. Для сервера, который обслуживает несколько клиентов или объединяет линии разных провайдеров — OScam однозначно лучше.
Как проверить, что сервер доступен?
Три шага: ping hostname проверяет базовую сетевую доступность, telnet hostname 12000 проверяет, что порт открыт и принимает соединения. Если telnet подключается и не выдаёт отказ сразу — сервер работает. Затем смотрим статус линии в веб-интерфейсе на порту 16001: там видно, установлено ли соединение и есть ли активный обмен CW. В логе /tmp/CCcam.log ищем строки с адресом сервера — они показывают попытки подключения и статусы ответов.
На что смотреть при выборе провайдера линий?
Главные критерии: ECM time стабильно ниже 300 мс (проверяйте в разное время суток), hop 1 для максимальной стабильности, uptime выше 99% за последние 30 дней. Убедитесь, что провайдер поддерживает именно те CAID, которые нужны вам — это можно проверить тестовым периодом. Адекватная техподдержка с реальным временем ответа — не ботом. И наличие мониторинга на стороне провайдера: если они сами видят проблемы в реальном времени, восстановление проходит быстрее.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.