CCcam: что это, как работает протокол card sharing
CCcam — это проприетарный протокол card sharing, работающий поверх TCP/IP. Если вы только разбираетесь в теме или мигрируете с Newcamd на что-то более современное, это руководство даёт техническое понимание архитектуры, конфигурации и диагностики. Без воды — только то, что реально нужно для настройки.
Что такое CCcam и как работает протокол
Смысл card sharing прост: одна физическая смарт-карта обслуживает несколько ресиверов по сети. CCcam реализует это через TCP-соединение, где сервер держит карту в ридере, а клиенты запрашивают расшифровку в реальном времени.
История и назначение протокола
Протокол появился в середине 2000-х как решение для спутникального сообщества. Последняя официальная версия — 2.3.2, выпущена в 2014 году. С тех пор разработка полностью остановилась. Тем не менее протокол до сих пор живёт — благодаря OScam, который умеет работать с CCcam как клиент и как сервер.
Исходного кода никто никогда не видел. Это закрытый бинарник, и именно поэтому сообщество постепенно перешло на OScam.
Архитектура клиент-сервер
Архитектура стандартная: один сервер с картой, много клиентов. Сервер слушает на порту 12000 (по умолчанию). Клиент подключается, аутентифицируется через логин/пароль, и дальше начинается обмен зашифрованными данными.
Соединение держится постоянно — не сессионно, а как долгоживущий TCP-стрим. Это важно для понимания проблем с дисконнектами.
Обмен ECM и контрольными словами (CW)
Вот как это работает на уровне протокола. DVB-поток содержит зашифрованные пакеты и ECM (Entitlement Control Message) — это зашифрованный контейнер с ключами. Ресивер-клиент вытаскивает ECM из потока и отправляет его на CCcam-сервер. Сервер передаёт ECM в смарт-карту через CAM или PCSC-ридер. Карта возвращает CW (Control Word) — 8-байтный ключ, которым расшифровывается видео. Сервер отправляет CW обратно клиенту. Клиент расшифровывает поток в реальном времени.
Весь этот цикл должен укладываться в ~300-500 мс, иначе будут артефакты или чёрный экран. CW меняются каждые ~10 секунд (cryptoperiod), поэтому запросы идут постоянно.
Hop-уровни и реселлинг карт
Hop — количество промежуточных серверов между физической картой и конечным клиентом. H0 — карта прямо в ридере на сервере. H1 — карта через один сервер (оптимально). H2 и выше — цепочка серверов, и тут начинаются проблемы: ECM time растёт, стабильность падает.
Сервер может разрешать или запрещать reshare через параметры в F-line. Если вы получаете карту с h0 и раздаёте клиентам как h1 — это нормальная схема. Но если кто-то берёт вашу h1 и перепродаёт как h2 без разрешения — это и есть несанкционированный реселлинг.
Структура файла CCcam.cfg и основные параметры
Весь конфиг CCcam-сервера живёт в одном файле. Синтаксис прямолинейный, но нюансов достаточно.
Расположение файла на разных прошивках (Enigma2, OpenATV, VTi)
На большинстве Enigma2-прошивок (OpenATV, VTi, OpenPLi) стандартный путь — /usr/keys/CCcam.cfg. На некоторых сборках файл лежит в /var/etc/CCcam.cfg. Перед правкой всегда проверяйте через find / -name CCcam.cfg 2>/dev/null — чтобы не редактировать не тот файл.
На чистом Linux-сервере путь определяете сами — можно класть в /etc/CCcam.cfg или рядом с бинарником.
Строка C: line — подключение к серверу
C-line — это клиентское подключение к удалённому серверу. Формат:
C: hostname.example 12000 mylogin mypassword no { 0:0:2 }
Разбор полей: hostname.example — адрес сервера (IP или домен). 12000 — порт. mylogin mypassword — учётные данные. no — запрет на передачу EMM (обычно no, если не нужна запись прав на карту). { 0:0:2 } — максимальный hop, который принимать от этого сервера (здесь — до h2). Можно указать несколько C-line — CCcam будет использовать первый доступный сервер.
Строка F: line — раздача клиентам
F-line создаёт аккаунт для клиента:
F: clientlogin clientpassword 1 0 1 0 { 0:0:2 }
Поля: логин, пароль, uphops (сколько hop принимать от клиента — обычно 0), downhops (сколько hop отдавать — 1 означает только прямые карты), флаг reshare (1 = разрешить, 0 = запретить), флаг suppress_cardsharing. Последний параметр { 0:0:2 } — ограничение по CAID.
Параметры SERVER LISTEN PORT, WEBINFO LISTEN PORT
В файле CCcam.cfg несколько глобальных параметров:
SERVER LISTEN PORT: 12000
WEBINFO LISTEN PORT: 16001
WEBINFO USERNAME: admin
WEBINFO PASSWORD: strongpass123
Порт 12000 — основной, для card sharing. Порт 16001 — веб-интерфейс со статусом карт, подключённых клиентов и ECM-таймингами. Менять оба от дефолтных — хорошая практика.
ALLOW TELNETINFO, SHOW TIMING
Ещё два полезных параметра:
ALLOW TELNETINFO PORT: 16000
SHOW TIMING: yes
DEBUG: yes
ALLOW TELNETINFO PORT открывает telnet-консоль для диагностики на порту 16000. SHOW TIMING добавляет в лог время ECM-ответов. DEBUG: yes делает лог подробным — включать только при диагностике, иначе лог раздувается быстро.
Установка CCcam на Linux-сервер и Enigma2-ресивер
Требования к железу и ОС
На Enigma2 — любой ресивер с поддержкой softcam. На Linux нужен x86_64 или ARM (соответственно разные бинарники). Для работы с физической смарт-картой нужен PCSC-совместимый ридер и пакеты pcscd + ccid. Без физической карты — только C-line к другому серверу.
Установка бинарника через ipk/opkg на Enigma2
На OpenATV и OpenPLi:
opkg update
opkg install enigma2-plugin-softcams-cccam-2.3.2
После установки softcam появится в меню управления. Перед запуском — положите CCcam.cfg в /usr/keys/ с заполненными C-line. Запуск через GUI: Setup → System → Softcam → выбрать CCcam → Start.
Важно: на ARM-ресиверах используется бинарник CCcam.arm, на MIPS — CCcam.mips. Бинарник x86_64 на них не запустится — получите cannot execute binary file.
Запуск как systemd-сервис на Debian/Ubuntu
Копируем бинарник и даём права:
cp CCcam.x86_64 /usr/bin/CCcam
chmod +x /usr/bin/CCcam
Создаём unit-файл /etc/systemd/system/cccam.service:
[Unit]
Description=CCcam Card Sharing
After=network.target
[Service]
ExecStart=/usr/bin/CCcam
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Включаем и запускаем:
systemctl daemon-reload
systemctl enable cccam
systemctl start cccam
Подключение PCSC-ридера для физической карты
Если есть физическая смарт-карта:
apt install pcscd ccid
systemctl start pcscd
pcsc_scan
pcsc_scan покажет, видит ли система карту. CCcam автоматически подхватит карту через PCSC-интерфейс при запуске. Если карта не определяется — проверьте lsusb на наличие ридера и journalctl -u pcscd на ошибки.
Проверка через webinfo на порту 16001
После запуска открываем http://server-ip:16001 в браузере. Там видим: список подключённых C-line с hop-уровнями, список активных клиентов (F-line соединения), CAID доступных карт и ECM-тайминги. Если webinfo не открывается, а CCcam работает — проверьте iptables и параметр WEBINFO LISTEN PORT в конфиге.
CCcam vs OScam vs Newcamd: технические отличия
Часто задают вопрос: что выбрать в 2026? Давайте по-честному, с реальными отличиями.
| Параметр | CCcam 2.3.2 | OScam | Newcamd |
|---|---|---|---|
| Открытость кода | Закрытый бинарник | Open-source (SVN) | Open-source |
| Последнее обновление | 2014 год (мёртв) | Активная разработка | Устарел |
| Простота настройки | Высокая | Средняя (больше параметров) | Высокая |
| Поддержка протоколов | Только CCcam | CCcam, Newcamd, CS378X, Radegast | Только Newcamd |
| Эмуляторы | Ограниченно | SoftEMU, GBOX и другие | Только локальные |
| Стабильность | Приемлемо при h1 | Лучше, настраивается | Хорошо для локального |
Открытость кода и поддержка
OScam разрабатывается открыто — любой может посмотреть исходники, собрать под свою платформу, предложить патч. CCcam — закрытый бинарник 12-летней давности. Это не просто философское отличие: когда появляются новые системы условного доступа, OScam адаптируется, а CCcam — нет.
Производительность и стабильность
В моём опыте OScam с протоколом CCcam стабильнее под нагрузкой. У чистого CCcam бывают утечки памяти при большом количестве клиентов (50+). OScam управляет ресурсами лучше, поддерживает лимиты на количество соединений, приоритизацию по CAID.
Поддержка протоколов (DVB-CSA, AES, Nagra)
OScam поддерживает несколько протоколов одновременно. Можно принимать клиентов по CCcam-протоколу, а подключаться к аплинку по Newcamd — в одном конфиге. CCcam так не умеет.
Когда выбрать какой softcam
CCcam 2.3.2 стоит выбирать только если вы устанавливаете на старый ресивер с минимальным железом и хотите максимально простой конфиг с одним C-line. Для всего остального — OScam с модулем protocol = cccam в oscam.server. Вы получаете совместимость с CCcam-серверами плюс все преимущества открытого проекта.
Newcamd в 2026 году — только если работаете с локальными эмуляторами на совсем старом оборудовании.
Диагностика и решение типичных проблем CCcam
Чёрный экран на закодированных каналах
Первое что делать — смотреть лог:
tail -f /tmp/CCcam.log
Или на Linux: journalctl -u cccam -f. Чёрный экран при подключённом сервере обычно означает одно из: CW не приходит вовремя, неправильный CAID в C-line, или конфликт двух softcam запущенных одновременно. Если видите строки can't decode — проблема на стороне сервера. Если лог вообще пустой — CCcam не запустился.
Конфликт CCcam + OScam одновременно — классическая ошибка. Проверьте через ps aux | grep -i cam и отключите лишний через /etc/init.d/softcam stop.
Сервер виден но карты не открываются (00 hops)
В webinfo колонка hops показывает 00. Причины: неверный логин/пароль (сервер принял соединение, но не авторизовал), ограничение по IP на стороне сервера, hop-лимит в F-line исчерпан, или сервер просто не имеет карт с нужным CAID.
Проверьте через telnet-консоль:
telnet localhost 16000
Команда l покажет список C-line и их статус. Команда rc перечитает конфиг без рестарта.
Постоянные дисконнекты и replay-проблемы
Replay detected в логе означает, что один аккаунт используется с нескольких IP одновременно. Сервер это видит и сбрасывает соединение. Исправление со стороны сервера — добавить в F-line ограничение по количеству одновременных соединений или привязать к IP. Со стороны клиента — убедитесь, что один аккаунт используется только на одном ресивере.
ECM time превышает 1000 мс
В webinfo колонка ecm показывает время ответа в миллисекундах. Норма — до 500 мс, желательно до 300. Больше 1000 мс — будут артефакты. Причины: высокий hop (h2+), перегрузка аплинк-сервера, проблемы с сетью. Если SHOW TIMING: yes в конфиге — тайминги пишутся и в лог.
Решение: попробуйте другой C-line с h1, проверьте пинг до сервера командой ping hostname.example. Пинг выше 150 мс уже проблематичен для стабильного card sharing.
Логи: /tmp/CCcam.log и telnet на порт 16000
Полный набор диагностических команд в telnet-консоли (порт 16000): l — список C-line. f — список F-line и подключённых клиентов. rs — полный рестарт CCcam. rc — reload конфига. debug — включить дополнительный вывод.
Безопасность CCcam-сервера и защита от утечки
Открытый порт 12000 на публичном IP — это приглашение для сканеров. Боты постоянно перебирают стандартные порты card sharing. Несколько мер, которые стоит применить сразу.
Изменение портов по умолчанию
В CCcam.cfg:
SERVER LISTEN PORT: 23456
WEBINFO LISTEN PORT: 28001
Нестандартный порт не защищает от целенаправленных атак, но отсеивает 90% автоматических сканеров, которые бьют только по дефолтным портам.
Ограничение по IP через iptables
Webinfo никогда не должен быть доступен из интернета. Только из локальной сети:
iptables -A INPUT -p tcp --dport 28001 -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp --dport 28001 -j DROP
Для основного порта card sharing — если знаете IP клиентов, тоже ограничьте. Или хотя бы заблокируйте диапазоны известных сканеров через ipset.
Защита webinfo паролем
WEBINFO USERNAME: myuser
WEBINFO PASSWORD: randomstring42
Без этих строк webinfo открыт всем без пароля. Пароль не сложный, но без него — вообще никакой защиты.
Fail2ban для блокировки перебора
Создайте фильтр /etc/fail2ban/filter.d/cccam.conf:
[Definition]
failregex = .* wrong login from <HOST>
ignoreregex =
И jail в /etc/fail2ban/jail.local:
[cccam]
enabled = true
filter = cccam
logpath = /tmp/CCcam.log
maxretry = 3
bantime = 3600
findtime = 600
После трёх неверных попыток авторизации за 10 минут — IP блокируется на час. Перезапустите fail2ban: systemctl restart fail2ban.
Какой стандартный порт у CCcam?
Три порта: 12000 — основной протокол card sharing (SERVER LISTEN PORT), 16001 — веб-интерфейс статуса (WEBINFO LISTEN PORT), 16000 — telnet-консоль для диагностики. Все три меняются в CCcam.cfg. Рекомендуется менять от дефолтных.
Чем отличается C-line от F-line в CCcam.cfg?
C-line — это исходящее подключение: вы как клиент подключаетесь к чужому серверу и получаете CW. F-line — входящее: вы раздаёте карты своим клиентам с указанием логина, пароля, uphops/downhops и уровня reshare. На чисто клиентском ресивере нужна только C-line.
Что означает hop 1, hop 2 в CCcam?
Hop — количество промежуточных серверов между физической картой и вашим ресивером. Hop 0 — карта стоит прямо в ридере на сервере, к которому вы подключены. Hop 1 — оптимально: быстро, стабильно. Hop 2 и выше — цепочка серверов, ECM time растёт, стабильность падает. Старайтесь работать только с h1.
Почему CCcam показывает 00 в колонке cards?
Сервер принял TCP-соединение, но карты не передал. Типичные причины: неверный логин или пароль, ограничение по IP на сервере, сервер не имеет карт с вашим CAID, или hop-лимит в F-line не позволяет передать карту. Диагностируйте через webinfo и лог — там будут строки с описанием причины.
CCcam или OScam — что выбрать в 2026?
OScam с протоколом CCcam — однозначно лучший выбор. Открытый код, активная разработка, поддержка новых CAM-систем, гибкая конфигурация. Чистый CCcam 2.3.2 не обновлялся с 2014 года и технически мёртв. Единственный аргумент за CCcam — немного проще первоначальная настройка, но это преимущество исчезает после первого прочтения документации OScam.
Можно ли запустить CCcam на обычном Linux-сервере без ресивера?
Да. Бинарник CCcam.x86_64 работает на Debian, Ubuntu, CentOS. Для работы с физической смарт-картой нужен USB PCSC-ридер и пакеты pcscd + ccid. Без физической карты сервер работает как ретранслятор — принимает карты через C-line и раздаёт клиентам через F-line. Запуск через systemd-юнит описан выше.
Где лежит CCcam.cfg на Enigma2-ресивере?
Стандартный путь — /usr/keys/CCcam.cfg на большинстве прошивок (OpenATV, VTi, OpenPLi). На некоторых сборках — /var/etc/CCcam.cfg. Проверьте через find / -name CCcam.cfg. После правки файла нужен рестарт softcam — через GUI или командой rc в telnet-консоли на порту 16000. И обязательно делайте бэкап CCcam.cfg перед обновлением прошивки — апдейт может перезаписать файл дефолтным.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.