Настройка CCcam сервера: полное руководство 2026

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

Как работает протокол CCcam и из чего состоит соединение

Прежде чем лезть в конфиг, стоит понять механику. Спутниковый канал зашифрован системой условного доступа — Viaccess, Nagravision, Irdeto и другими. Для расшифровки нужен control word (CW) — ключ, который меняется каждые 10 секунд. Именно за ним ресивер и обращается к серверу.

Принцип card sharing: ECM, EMM и control word

Ресивер-клиент вытаскивает из входящего сигнала ECM (Entitlement Control Message) — зашифрованный пакет, содержащий control word. Сам ресивер расшифровать его не может, потому что у него нет подписки. Он отправляет ECM по сети на сервер, у которого есть физическая смарт-карта с действующей подпиской.

Сервер расшифровывает ECM через карту, получает control word и отправляет его обратно клиенту. Клиент применяет CW, канал открывается. Всё это происходит за миллисекунды — в норме ECM time не должен превышать 500–700 мс. EMM (Entitlement Management Message) — это обновления прав карты, они идут в другом направлении и на скорость отдачи почти не влияют.

Роли в сети: сервер, клиент и пир

В CCcam есть три роли. Сервер — тот, у кого физическая карта, он отдаёт CW. Клиент — тот, кто карту запрашивает. Пир (peer) — ресивер, который одновременно является и клиентом для одного сервера, и сервером для другого. Это и есть решар — карта передаётся по цепочке.

Каждое звено в цепочке добавляет HOP и задержку. Если у вас C-line на сервер первого уровня (HOP 1), то карта приходит за 300–500 мс. Если цепочка длиннее — HOP 3-4 — ECM time легко улетает за 1500 мс, и канал фризит.

Порт по умолчанию 12000 и шифрование трафика

CCcam — проприетарный закрытый протокол, разработанный командой CCcam. В отличие от открытого newcamd (порт 525), никто не публиковал его спецификацию. Реверс-инжиниринг сделали сторонние разработчики, именно поэтому OScam умеет принимать CCcam-клиентов.

По умолчанию сервер слушает TCP-порт 12000. Трафик между клиентом и сервером шифруется сессионным ключом — это базовая защита, но не замена нормальному VPN, если нужна анонимность. Веб-интерфейс CCcam висит на 16001, внешний API — на 16000.

Что нужно подготовить перед настройкой сервера

Без правильной базы настройка превратится в угадывание. Вот что должно быть готово до того, как открывать CCcam.cfg.

Совместимый ресивер на Enigma2 и подходящий образ

CCcam работает на ресиверах под управлением Enigma2 — это Dreambox, Vu+, Gigablue, Formuler и десятки других. Образ прошивки должен содержать CCcam или поддерживать его установку через плагин. OpenPLi, OpenATV, OpenVIX — все нормально поддерживают CCcam 2.3.x.

Проверь версию перед началом: зайди по Telnet на ресивер (порт 23, логин root без пароля в большинстве образов) и выполни CCcam -v. Если бинарник не найден — which CCcam или find / -name CCcam -type f.

Версии CCcam и где лежит бинарник

Бинарник обычно находится в /usr/bin/CCcam. На некоторых образах путь другой — /usr/local/bin/CCcam. Автозапуск настраивается через скрипт /etc/init.d/CCcam или /etc/rc.d/init.d/CCcam, в зависимости от образа. Чтобы запустить или перезапустить демон вручную:

/etc/init.d/CCcam restart

Или через kill + ручной запуск, если init.d-скрипта нет:

kill $(pidof CCcam) && sleep 2 && CCcam &

Последняя актуальная версия — CCcam 2.3.2. Разработка остановлена, новых релизов не выходит. Это не проблема для базового использования, но сравнение с OScam позже в статье станет важным.

Статический IP или DDNS при динамическом адресе

Если ты хочешь принимать клиентов на свой сервер, клиенты должны знать твой IP. Если провайдер выдаёт статический IP — проблем нет. При динамическом нужен DDNS-сервис: No-IP, DynDNS, Duck DNS или встроенный DDNS в роутере.

DDNS привязывает доменное имя вроде myreceiver.ddns.net к твоему меняющемуся IP. Роутер или ресивер обновляет запись при каждой смене адреса. Проблема одна: между сменой IP и обновлением DNS может пройти 5–30 минут — в этот период клиенты отвалятся. Ночью провайдеры часто переподключают сессии, поэтому если у тебя клиенты из другого часового пояса, это создаёт проблемы.

Отдельный случай — CGNAT. Это когда провайдер выдаёт тебе серый IP из диапазона 100.64.0.0/10, а несколько абонентов сидят за одним белым адресом. В этом случае никакой проброс портов не поможет — входящие соединения физически не дойдут до ресивера. Ты можешь работать только как клиент, но не как сервер.

Настройка файла CCcam.cfg: разбор строк по порядку

Это ключевая часть. Настройка CCcam сервера на спутниковом ресивере начинается и заканчивается именно этим файлом — всё остальное вторично.

Путь к конфигу: /var/etc/CCcam.cfg

Основной путь — /var/etc/CCcam.cfg. На некоторых образах это /etc/CCcam.cfg, на других — симлинк. Редактировать можно через FTP (FileZilla, WinSCP) или прямо в Telnet через vi или nano (если установлен).

Файл чувствителен к синтаксису. Лишний пробел в конце строки или скрытый символ табуляции — и CCcam не стартует без внятного сообщения об ошибке. Если после правки демон не запускается, первым делом проверяй именно это.

Базовая структура файла выглядит так:

# CCcam.cfg — основная конфигурация

# Порт сервера
SERVER LISTEN PORT: 12000

# Веб-интерфейс
WEBINFO LISTEN PORT: 16001

# Логирование
LOG FILE: /tmp/CCcam.log
LOG LEVEL: 0

# Входящие клиенты (F-lines)
F: myuser mypassword 1 0

# Исходящие подключения (C-lines)
C: server.example.com 12000 clientlogin clientpass

F-line — учётная запись для входящих клиентов

F-line описывает, кто может подключиться к твоему серверу. Синтаксис:

F: username password uphops downhops

Пример: F: john secret123 1 0

  • username — логин клиента
  • password — пароль клиента
  • uphops — сколько HOP вверх клиент может передавать карты
  • downhops — сколько HOP вниз клиент получает доступ

Значение uphops: 1 означает, что клиент видит карты на расстоянии 1 HOP от тебя. downhops: 0 — клиент не может передавать твои карты дальше. Для обычного клиента это правильная настройка.

Можно добавить несколько F-lines — по одной на каждого клиента. Для разных клиентов можно задавать разные права. Права на файл: chmod 600 /var/etc/CCcam.cfg.

C-line — подключение к внешнему серверу

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

C: hostname port username password [options]

Пример: C: cserver.example.com 12000 mylogin mypass

Можно прописать несколько C-lines — CCcam будет подключаться ко всем одновременно. Карты суммируются. Если один сервер падает, другой продолжает работать.

Важно: hostname в C-line может быть доменным именем или IP-адресом. Если сервер использует DDNS, ставь имя, а не IP — иначе при смене IP придётся вручную обновлять конфиг.

Параметры доступа: HOP, SHARE, частота переподключения

Несколько важных параметров, которые влияют на стабильность:

ALLOW SHARE SIDONLY = no
MAX HOPS = 3
RECONNECT TIME = 3

MAX HOPS — максимальная глубина ретрансляции карт. Рекомендую ставить не больше 3, лучше 2. Каждый HOP добавляет задержку. RECONNECT TIME: 3 — через сколько секунд CCcam попытается переподключиться при разрыве. Слишком маленькое значение создаёт флуд попыток, слишком большое — длинные паузы при пересоединении. 3–5 секунд — разумный диапазон.

После любой правки CCcam.cfg нужно перезапустить демон. Изменения не применяются «на лету».

Сетевые настройки: порты, проброс и фаервол

Без правильного сетевого конфига сервер будет работать только внутри локальной сети. Для приёма внешних клиентов нужен проброс порта.

Проброс порта 12000 на роутере

Зайди в веб-интерфейс роутера, найди раздел Port Forwarding (или Virtual Servers, NAT — в зависимости от прошивки). Создай правило:

  • Протокол: TCP
  • Внешний порт: 12000
  • Внутренний IP: локальный IP ресивера (например, 192.168.1.100)
  • Внутренний порт: 12000

Локальный IP ресивера должен быть фиксированным. Лучше настроить статическую аренду DHCP по MAC-адресу в роутере, чем прописывать статику прямо на ресивере — меньше шансов потерять доступ при ошибке.

Если у тебя двойной NAT — модем от провайдера и свой роутер — придётся пробросить порт дважды: сначала на модеме до IP роутера, потом на роутере до IP ресивера. Забыть первый шаг — самая частая причина, почему проброс «не работает».

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

После настройки проверь, что порт действительно открыт снаружи. Из сети интернет (не из своей локальной сети) выполни:

nc -zv твой.внешний.ip 12000

Или используй онлайн-инструмент проверки портов — там достаточно ввести IP и порт 12000. Если порт закрыт, а правило в роутере создано — проверь firewall на ресивере (iptables -L -n) и убедись что CCcam реально слушает порт (netstat -tlnp | grep 12000).

Блокировка портов провайдером и обход через смену порта

Некоторые провайдеры блокируют входящие соединения на порту 12000 — именно потому, что это стандартный CCcam-порт. Решение простое: сменить порт в CCcam.cfg:

SERVER LISTEN PORT: 19500

И обновить правило проброса в роутере под новый порт. Клиентам тоже нужно обновить C-line с новым портом. Порты 19000–19999 или 8080 реже блокируются провайдерами. При CGNAT никакая смена порта не поможет — это архитектурное ограничение на стороне провайдера.

Подключение клиента и проверка работы сервера

Сервер настроен. Теперь проверим, что он реально работает и карты отдаёт.

Добавление C-line на стороне клиента

Клиент открывает свой /var/etc/CCcam.cfg и добавляет C-line на твой сервер:

C: твой.домен.или.ip 12000 john secret123

Логин и пароль — те, что прописаны в F-line на сервере. После перезапуска CCcam на клиентском ресивере соединение должно установиться. Если нет — смотри в лог.

Проверка статуса через веб-интерфейс CCcam (порт 16001)

Открой в браузере http://192.168.1.100:16001 (IP своего ресивера). Там увидишь несколько разделов:

  • Servers — список твоих C-lines и их статус (connected/disconnected)
  • Clients — кто подключён к тебе по F-lines
  • Cards — список доступных карт с CAID и провайдерами
  • ECM — история запросов с временем ответа

Некоторые образы прошивок поставляются с урезанным CCcam без веб-интерфейса. Если страница не открывается — проверь, что WEBINFO LISTEN PORT: 16001 прописан в конфиге, и порт не занят другим процессом. В этом случае диагностику придётся вести только через лог в Telnet.

Чтение лога и определение активных карт

Лог по умолчанию пишется в /tmp/CCcam.log. Открыть в реальном времени:

tail -f /tmp/CCcam.log

На что смотреть: строки connected to server говорят об успешном подключении. CARD: CAID=... — карта получена и доступна. ECM time: 450ms — нормально. ECM time: 1800ms — плохо. no card found for ECM — карты с нужным CAID нет или доступ закрыт.

Типичные ошибки настройки и их устранение

Это самая полезная часть. Разберём конкретные сценарии поломки и шаги диагностики.

Каналы не открываются: чёрный экран

Чёрный экран при наличии соединения обычно означает одно из трёх: нет карты с нужным CAID, HOP-лимит не позволяет карте добраться до клиента, или провайдер в карте заблокирован.

Диагностика: в веб-интерфейсе CCcam на сервере открой раздел Cards. Найди CAID канала, который не открывается (его можно посмотреть в настройках ресивера или в Enigma2 через Service Info). Если CAID вообще отсутствует в списке — карты нет. Если есть, но канал всё равно чёрный — проблема в HOP или правах доступа клиента.

Фриз и кратковременные подвисания на HD-каналах

Фриз на HD-каналах при рабочих SD — классика перегруженного сервера или высокого ECM time. HD-каналы обновляют CW чаще и требуют более стабильной связи. ECM time выше 800 мс — уже риск. Выше 1200 мс — фриз гарантирован.

Проверь в веб-интерфейсе, какое среднее ECM time. Если высокое — проблема или в пире (сервер далеко, перегружен), или в HOP-цепочке, или в твоём интернете. Пинг до сервера из Telnet: ping server.example.com. Если пинг стабильный, но ECM time высокий — сервер перегружен.

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

Первый шаг: проверь, что порт открыт (см. выше). Второй: убедись, что логин/пароль в C-line клиента точно совпадают с F-line сервера — регистр имеет значение. Третий: несовпадение версий протокола. CCcam 2.1.x и 2.3.x несовместимы на уровне рукопожатия. Если клиент и сервер на разных мажорных версиях — соединение устанавливается, но карты не передаются. В логе будет что-то вроде authentication failed или invalid card data.

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

Самая коварная ошибка — синтаксические проблемы в CCcam.cfg. Демон может не стартовать вообще без внятного сообщения. Проверь:

  • Нет ли скрытых символов табуляции вместо пробелов — редакторы на Windows часто вставляют \r\n вместо \n
  • Нет ли лишних пробелов в конце строки F: или C:
  • Кодировка файла — должна быть UTF-8 без BOM

Безопасный способ редактировать в Telnet: vi /var/etc/CCcam.cfg. Если используешь Windows-редактор — сохраняй с Unix-окончаниями строк. После правки запусти CCcam вручную из Telnet и смотри на вывод: CCcam 2>&1 | head -20.

CCcam или OScam: что выбрать для своего сервера

Честное сравнение без маркетинга. Оба решают одну задачу, но по-разному.

Открытый код OScam против проприетарного CCcam

OScam — открытый проект с активными коммитами. CCcam — закрытая программа, последний релиз 2.3.2 вышел несколько лет назад и обновлений не предвидится. Это практически означает, что новые защиты каналов (новые CAID, новые алгоритмы) CCcam поддерживать не сможет. OScam уже умеет то, что CCcam никогда не научится.

OScam живёт в /usr/bin/oscam, конфиги — в /etc/oscam/. Основные файлы: oscam.conf (глобальные настройки), oscam.server (источники карт и внешние серверы), oscam.user (учётные записи клиентов).

Гибкость конфигурации oscam.server и oscam.user

В oscam.server можно описать подключение к CCcam-серверу:

[reader]
label = myserver
protocol = cccam
device = server.example.com,12000
user = mylogin
password = mypass
cccversion = 2.3.2
cccmaxhops = 2

В oscam.user — клиентов, которые могут подключаться к OScam по протоколу CCcam или newcamd:

[account]
user = client1
pwd = clientpass
group = 1
au = 1

OScam поддерживает одновременно несколько протоколов: CCcam, newcamd, camd35, gbox. Один сервер может отдавать карты клиентам, использующим разные эмуляторы. CCcam так не умеет.

Когда CCcam всё ещё оправдан

Если ты только начинаешь, у тебя один ресивер и одна простая C-line от провайдера — CCcam проще в первоначальной настройке. Один файл, понятный синтаксис. Для старых ресиверов на Enigma2, где нет бинарника OScam для нужной архитектуры, CCcam остаётся единственным вариантом. Но если планируешь расширяться, работать с несколькими картами и клиентами — миграция на OScam сохранит много нервов в будущем.

Как оценить надёжность стороннего сервера

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

Технические критерии: аптайм, ECM time, локальные карты

После подключения смотришь в веб-интерфейс CCcam или лог OScam. Что нужно видеть через сутки использования:

  • ECM time — стабильно ниже 600 мс, без пиков выше 1000 мс в прайм-тайм (20:00–23:00)
  • В разделе Cards — CAID с HOP 1 означает локальную карту. HOP 3-4 — решар чужих решаров
  • Аптайм соединения — должен быть близок к 100% за 24 часа. Частые дисконнекты даже при стабильном интернете говорят о перегруженном сервере
  • Счётчик успешных ECM — если процент отказов выше 5%, карта либо не покрывает нужные каналы, либо перегружена

Признаки нестабильного или перепроданного сервера

Плохой сервер выдаёт себя несколькими признаками. Все карты с HOP 3 и выше — значит, это решар решара решара, и у каждого звена цепочки свои технические проблемы. Фриз исключительно в прайм-тайм — сервер перепродан, в час пик он не справляется с запросами. ECM time прыгает от 200 до 2000 мс в течение одной минуты — нестабильная инфраструктура или плохой пир.

Красный флаг: провайдер не может объяснить, какие CAID включены в подписку. Если в карточке написано «все каналы», а в Cards у тебя три CAID вместо ожидаемых восьми — тебя обманули.

Тестовый период и проверка стабильности

Хороший провайдер даёт тестовый доступ на 24–48 часов. Меньше — недостаточно, потому что нестабильность проявляется именно в прайм-тайм и при смене CW-ключей. За тестовый период нужно поймать минимум один вечерний прайм-тайм и убедиться, что HD-каналы не фризят.

Наблюдай за ECM time не моментально, а в динамике. Скрипт для автоматического логирования ECM из Telnet:

while true; do date; grep "ECM time" /tmp/CCcam.log | tail -5; sleep 60; done

Это покажет картину за несколько часов и сразу видно, стабильный сервер или нет.

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

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

Основной путь — /var/etc/CCcam.cfg. В некоторых образах прошивки файл лежит в /etc/CCcam.cfg или там есть симлинк на /var/etc/. Редактировать удобнее всего через FTP-клиент (FileZilla, WinSCP) с Unix-режимом окончания строк. После изменения файла обязательно перезапустить CCcam: /etc/init.d/CCcam restart.

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

TCP-порт 12000 — для обмена карточными данными между сервером и клиентом. Веб-интерфейс для мониторинга статуса по умолчанию на порту 16001, внешний API — на 16000. Если провайдер блокирует входящие на 12000, порт можно сменить в CCcam.cfg через параметр SERVER LISTEN PORT и обновить правило проброса в роутере.

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

F-line описывает входящую учётную запись — кто имеет право подключаться к твоему серверу с каким логином и паролем. C-line описывает исходящее подключение — куда твой ресивер сам подключается как клиент для получения карт. В одном CCcam.cfg могут быть одновременно несколько F-lines (несколько клиентов) и несколько C-lines (несколько серверов-источников).

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

Чаще всего — высокий ECM time выше 800–1000 мс. Причины: большой HOP (цепочка решаров), перегруженный или физически далёкий сервер, нестабильный пир в цепочке, слабый интернет-канал. Диагностика: веб-интерфейс CCcam на порту 16001 → раздел ECM → смотреть на время ответов. Параллельно пинг до сервера из Telnet покажет, в сети ли проблема.

Можно ли запустить CCcam сервер при динамическом IP?

Да, через DDNS-сервис — он привязывает постоянное доменное имя к меняющемуся IP. Роутер или ресивер автоматически обновляет DNS-запись при смене адреса. Но при CGNAT у провайдера (серый IP из диапазона 100.64.0.0/10) входящие соединения не пройдут физически — тогда принимать клиентов не получится, только работать самому как клиент чужого сервера.

Что лучше для нового сервера — CCcam или OScam?

OScam гибче, активно разрабатывается и поддерживает больше протоколов одновременно — newcamd, cccam, camd35, gbox. Тонкая настройка через три файла: oscam.conf, oscam.server, oscam.user. CCcam проще для первого запуска — один файл, понятный синтаксис. Но разработка CCcam остановлена, и новые форматы защит он поддерживать не сможет. Если задача — стабильный долгосрочный сервер, выбор очевиден.

Practical checklist for smooth viewing

Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.

When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.

Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.

  • Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
  • Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
  • Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.