CCcam cardsharing: настройка сервера и клиента 2026

Если вы попали сюда, то уже знаете что такое DVB-ресивер и примерно понимаете зачем нужен cardsharing cccam. Эта статья — не для новичков, которые ищут объяснение "что такое спутниковое телевидение". Здесь конкретика: конфигурационные файлы, команды, диагностика, типовые ошибки. Я прошёл через всё это на нескольких инсталляциях — делюсь тем, что реально работает в 2026.

Что такое CCcam и как работает протокол cardsharing

CCcam — это программный сервер для условного доступа (CA), написанный анонимными разработчиками и распространяемый как закрытый бинарник. Последняя стабильная версия — 2.3.x. Проект давно не обновляется официально, но для классической схемы cardsharing cccam он по-прежнему работает надёжно.

Принцип работы: ECM, CW и DCW

Схема проста, но важно понимать каждый шаг. Зашифрованный канал передаёт вместе с потоком ECM — Entitlement Control Message. Это короткий пакет, содержащий зашифрованный Control Word (CW) — ключ для декодирования видео в данный момент (меняется каждые ~10 секунд).

Ваш ресивер без подписки не может расшифровать CW из ECM самостоятельно. Он отправляет ECM по TCP на CCcam-сервер. Сервер передаёт ECM физической смарт-карте через PCSC-ридер (Phoenix, SmartReader+, или встроенный). Карта возвращает расшифрованный Control Word — его называют DCW (Decrypted Control Word). Сервер отправляет DCW обратно клиенту. Всё это занимает 300–500 мс при нормальной сети.

Ресивер получает DCW, декодирует видео. Канал открыт. Цикл повторяется каждые ~10 секунд при смене CW.

Отличия CCcam от OScam, NewCamd и MgCamd

NewCamd — более старый протокол, работает через UDP, проще по архитектуре. MgCamd — клиентская часть, которая умеет подключаться к NewCamd и CCcam-серверам. Это не серверы, а клиенты.

OScam — это другая история. Открытый код, активная разработка, поддержка CCcam, NewCamd, CAMD35, gbox в одном демоне. В 2026 OScam — технически превосходящее решение: лучше статистика, гибче конфиг, нормальная диагностика. CCcam проще поднять "с нуля" за 20 минут, но при серьёзной нагрузке или сложных схемах OScam выигрывает по всем параметрам.

Архитектура сервер-клиент и роль reader/user

В терминах CCcam: reader — это источник карт (физическая карта через PCSC или подключение к другому серверу через C-line). User — это клиент, которому раздаются права через F-line. Один сервер может одновременно быть клиентом (получать карты по C-line) и сервером (отдавать по F-line) — это и есть классическая реселлерская схема.

Установка CCcam сервера на Linux

CCcam распространяется как бинарник под ARM и x86. Установка несложная, но есть нюансы с правами и зависимостями.

Требования: Debian/Ubuntu, smartcard reader

Нужен Debian 11/12 или Ubuntu 22.04 LTS. Для работы с физическими картами — PCSC-совместимый ридер: Phoenix, SmartReader+, или любой USB CCID. Установите зависимости:

apt-get install libpcsclite1 pcscd libccid libcrypto++-dev

Если планируете работать только как реселлер (получать карты по C-line без физической карты) — pcscd не нужен, но libcrypto нужен обязательно.

Установка бинарника CCcam в /usr/bin/

chmod +x CCcam
cp CCcam /usr/bin/CCcam
chown root:root /usr/bin/CCcam

Проверьте что бинарник запускается:

CCcam --help

Если видите ошибку "no such file" при явно существующем файле — скорее всего это ARM-бинарник на x86 или нет 32-битных библиотек. На x86_64 Debian установите:

dpkg --add-architecture i386
apt-get update
apt-get install libc6:i386 libstdc++6:i386

Структура каталога /var/etc/ и права доступа

CCcam ищет конфиг в /var/etc/CCcam.cfg по умолчанию (некоторые сборки — в /etc/CCcam.cfg). Создайте директорию:

mkdir -p /var/etc
touch /var/etc/CCcam.cfg
chmod 600 /var/etc/CCcam.cfg

Права 600 важны — в конфиге будут пароли. Логи пишутся в /var/log/CCcam, создайте файл заранее:

touch /var/log/CCcam

Запуск как systemd-сервис

Большинство инструкций в интернете предлагают запуск через init.d-скрипты. В 2026 на Debian 12 это анахронизм. Создайте systemd unit:

cat > /etc/systemd/system/cccam.service << 'EOF'
[Unit]
Description=CCcam Cardsharing Server
After=network.target pcscd.service
Wants=pcscd.service

[Service]
Type=forking
ExecStart=/usr/bin/CCcam
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

Активируйте и запустите:

systemctl daemon-reload
systemctl enable cccam
systemctl start cccam
systemctl status cccam

В строке статуса должно быть active (running). Если failed — смотрите journalctl -u cccam -n 50.

Конфигурация CCcam.cfg: F-line, C-line и N-line

Вот где большинство инструкций облажались — дают готовый конфиг без объяснения параметров. Разберём каждый блок.

C-line: подключение к удалённому серверу

C-line описывает подключение вашего сервера к чужому серверу как клиент:

C: hostname.example.com 12000 myusername mypassword

Формат: C: <host> <port> <username> <password>. Можно добавить дополнительные параметры:

C: hostname.example.com 12000 myusername mypassword 1 0 0 0 { 0500:000000 }

Числа после пароля: hop count (сколько уровней переотправки допускает сервер), затем флаги. В фигурных скобках — ограничение по CAID. 0500:000000 означает только Viaccess (CAID 0500) без ограничений по provider ID. Если оставить { } или опустить — принимаются все доступные CAID.

F-line: создание пользователя на своём сервере

F-line — это пользователь, которому вы отдаёте карты:

F: clientusername clientpassword 1 0 0 0 { 0:0:1 }

Параметры: hop count (1 — прямая карта, 2 — реселл), затем разрешения AU (auto-update EMM: 1=да, 0=нет), share limit (0 — без ограничений). { 0:0:1 } в конце означает все CAID. Параметр AU=1 важен: без него клиент не получает EMM-обновления, и через какое-то время карта перестанет работать у него — ключи устареют.

Несколько пользователей — несколько F-line, каждая на отдельной строке.

N-line: интеграция с NewCamd-серверами

Если у вас есть NewCamd-сервер и нужно получить от него карты:

N: hostname.example.com 15050 username password 01 02 03 04 05 06 07 08 09 10 11 12 13 14

После пароля следует 14-байтовый DES-ключ (по умолчанию: 01 02 03 04 05 06 07 08 09 10 11 12 13 14). N-line используется реже, но если ваш апстрим работает через NewCamd — это единственный вариант.

Параметры SERVER LISTEN PORT, WEBINFO LISTEN PORT

SERVER LISTEN PORT = 12000
WEBINFO LISTEN PORT = 16001

12000 — дефолтный порт, на котором сервер принимает клиентов (C-line с другой стороны). Меняйте его — сканеры портов знают дефолт. WEBINFO LISTEN PORT = 16001 открывает веб-интерфейс: http://your-server:16001/ — там видны подключённые клиенты, их IP, время подключения, CAID карт, статус reader. Очень полезно для диагностики. Но закройте этот порт снаружи через iptables — он не требует авторизации по умолчанию.

Минимальный рабочий конфиг выглядит примерно так:

SERVER LISTEN PORT = 15050
WEBINFO LISTEN PORT = 16001

C: upstream-server.example.com 12000 mylogin mypass

F: localclient password1 1 0 0 0 { 0:0:1 }

Настройка клиента на ресивере (Enigma2, OpenATV)

Большинство современных ресиверов с Enigma2 (VU+, Dream, GI, Formuler) поддерживают CCcam через плагин softcam. На OpenATV 7.x или OpenPLi 9.x процедура одинаковая.

Установка CCcam plugin через ipk/opkg

opkg update
opkg install enigma2-plugin-softcams-cccam

Если пакет не находится — проверьте source-репозитории в /etc/opkg/. На некоторых сборках CCcam идёт как часть пакета softcam-feed, который нужно добавить отдельно.

Размещение CCcam.cfg в /etc/tuxbox/config/

На ресивере конфиг лежит не в /var/etc/, а здесь:

/etc/tuxbox/config/CCcam.cfg

Создайте или отредактируйте его, добавив C-line вашего сервера:

C: your-server.example.com 15050 clientusername clientpassword

После редактирования перезапустите softcam:

/etc/init.d/softcam restart

Или через меню ресивера: Plugins → Softcam Manager → Restart.

Привязка к softcam-priority.conf

Если у вас несколько softcam (скажем, CCcam и OScam параллельно) — настройте приоритеты в /etc/tuxbox/config/softcam-priority.conf. Формат:

0500:000000 = CCcam
0B00:000000 = OScam

CAID 0500 — Viaccess, 0B00 — Conax. Это говорит системе, какой softcam использовать для каких каналов. Без этого файла система выбирает softcam произвольно, что иногда приводит к неочевидным проблемам.

Проверка через telnet и tail -f /tmp/ecm.info

Самый быстрый способ проверить что всё работает:

tail -f /tmp/ecm.info

При переключении на зашифрованный канал вы увидите что-то вроде:

ECM: CAID=0500 Provider=040810 ECMTime=312ms Source=CCcam

ECMTime в диапазоне 200–600 мс — норма. Выше 800 мс — начнутся фризы. Выше 1500 мс — канал будет постоянно замерзать.

Через telnet можно посмотреть статус CCcam:

telnet localhost 16001

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

Вот раздел, ради которого большинство и приходит. Собрал сюда всё что встречал в реальной жизни.

Freezing/фризы: причины и измерение latency

Фризы почти всегда — это ECM time. Смотрите /tmp/ecm.info и меряете. Если время стабильно 300–400 мс — проблема не в сети. Если скачет от 200 до 1500 мс — нестабильная сеть или перегруженный сервер.

Проверьте ping до сервера. Если ping 80–100 мс, а ECM time 600–800 мс — сервер перегружен или у него проблемы с ридером. Если ping 300+ мс — выбирайте другой сервер, физически ближе к вам.

Что ещё помогает: уменьшить hop count в C-line (чем меньше — тем быстрее), отключить C-line к серверам, которые не используете (каждое подключение создаёт нагрузку), убедиться что на сервере нет лишних reader.

Ошибка 'card not found' и проблемы с EMM

Карта работает локально (PCSC), но клиенты получают "no card" — классика. Почти всегда это права доступа к устройству:

ls -la /dev/ttyUSB0

CCcam должен иметь доступ к устройству ридера. Добавьте пользователя в группу dialout (или запускайте CCcam от root — грязно, но работает для диагностики):

usermod -a -G dialout cccam_user

Если карта требует EMM-обновлений (большинство современных карт), но в C-line стоит AU=0 — клиент не получит обновлённые ключи. Через несколько часов или дней канал перестанет открываться. Решение: выставить AU=1 в F-line для клиента, и убедиться что сам reader корректно обрабатывает EMM.

Сервер виден, но каналы не открываются (CAID mismatch)

Самая частая причина — CAID карты не совпадает с CAID канала. Каждая система шифрования имеет свой CAID:

  • 0500 — Viaccess
  • 0B00 — Conax
  • 0D00, 0D02 — Cryptoworks
  • 1800 — Nagravision
  • 0600 — Irdeto
  • 0100 — SECA/Mediaguard
  • 0E00 — PowerVU

Проверьте через /tmp/ecm.info какой CAID запрашивает канал. Потом на сервере через WEBINFO (порт 16001) проверьте какие CAID доступны на reader. Если не совпадают — у вас не та карта для этого канала. Никакая настройка это не исправит.

Отдельный случай: CAID совпадает, но provider ID — нет. Например, CAID 0500 (Viaccess), но canal зашифрован с provider 040810, а карта даёт provider 032830. Разные пакеты на одной системе шифрования — карта не откроет этот канал.

Анализ логов через tail -f /var/log/CCcam

CCcam пишет подробные логи. Полезные паттерны для grep:

tail -f /var/log/CCcam | grep -E "(logged|error|ECM|reader|card)"

Строка client 192.168.1.5: logged in as clientusername — клиент подключился успешно. reader: card inserted — физическая карта обнаружена. ECM: no card found for CAID 0500 — нет подходящего ридера. Если в логах только подключения и нет ни одной строки про ECM — клиент подключился, но не переключается на зашифрованный канал.

Безопасность и легальные аспекты

Протокол CCcam передаёт данные практически в открытом виде. Это не параноя — любой tcpdump на промежуточном узле покажет содержимое сессии. Провайдеры и DPI-системы умеют детектировать CCcam-трафик по сигнатурам.

Шифрование трафика через VPN/SSH-туннель

Простейший вариант — SSH-туннель. На клиенте:

ssh -N -L 12000:localhost:15050 [email protected]

Потом в CCcam.cfg клиента подключаетесь на localhost:12000 — трафик пойдёт через зашифрованный SSH. Минус: SSH туннель не особо стабилен, падает при разрыве соединения.

Лучше — WireGuard. Поднимаете WireGuard-пир между клиентом и сервером, CCcam подключается по внутреннему IP туннеля. WireGuard в 2026 — стандарт de facto, ставится за 10 минут, работает стабильно. Конфиг в /etc/wireguard/wg0.conf, управление через wg-quick up wg0.

Stunnel — ещё один вариант, если WireGuard недоступен. Заворачивает TCP CCcam в TLS. Конфиг на сервере:

[cccam-server]
accept = 12001
connect = 127.0.0.1:15050
cert = /etc/stunnel/server.pem

Защита от сканирования портов

Закройте порты CCcam для всех, кроме доверенных IP. iptables:

iptables -A INPUT -p tcp --dport 15050 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 15050 -j DROP
iptables -A INPUT -p tcp --dport 16001 -j DROP

Веб-интерфейс (16001) закрывайте всегда — он не имеет авторизации по умолчанию и показывает всё о вашей конфигурации.

Хорошая практика: сменить SERVER LISTEN PORT с дефолтного 12000 на что-то из диапазона 30000–50000. Сканеры портов проверяют 12000 первым.

Легальное использование: личная карта в собственной сети

Юридически cardsharing cccam в рамках закона — это использование собственной легально приобретённой подписки внутри вашей личной домашней сети. То есть: у вас одна карта, несколько ресиверов в доме, CCcam-сервер на домашнем Linux-боксе. Это аналог использования одного Netflix-аккаунта на нескольких устройствах дома.

Расшаривание чужих оплаченных подписок, коммерческая продажа F-line доступа — это другое. В большинстве европейских стран это противоречит условиям договора с провайдером и часто нарушает законодательство об авторских правах. Суды в Германии, Великобритании и ряде других стран уже выносили решения по таким делам.

Как выбрать качественный CCcam-сервер: критерии

Конкретных провайдеров называть не буду — рынок постоянно меняется, хорошие сервисы закрываются, плохие появляются. Расскажу что смотреть.

Метрики стабильности: uptime, ECM time, hop count

Три главных числа:

  • Uptime ≥99%. Меньше — это 87+ часов простоя в год. Хорошие провайдеры публикуют uptime-статистику, часто через uptimerobot.com или похожие сервисы.
  • ECM time <500 мс. В идеале 150–300 мс. Попросите тестовый период и измерьте самостоятельно через /tmp/ecm.info. Рекламные "среднее время 200 мс" — не верьте на слово.
  • Hop 1. Это значит прямая карта, не реселл. Hop 2 — реселлер. Hop 3+ — реселлер реселлера. Каждый hop добавляет задержку и точку отказа. Проверить hop в WEBINFO или в логах CCcam.

География серверов и пиринг

Сервер в 200 мс от вас по пингу даст ECM time 400–500 мс при нормальной нагрузке. Сервер в 20 мс — 150–250 мс. Физическое расстояние важно. Спрашивайте у провайдера где физически стоит сервер — Нидерланды, Германия, Франция дают хорошие показатели для европейских пользователей.

Пиринг тоже влияет. Сервер на дата-центре Hetzner или OVH с хорошим пирингом будет стабильнее, чем сервер на дешёвом VPS с плохой связностью.

Признаки ненадёжного провайдера

Несколько сигналов которые я считаю красными флагами:

  • Hop 3+ при позиционировании как "прямые карты"
  • Требование предоплаты за 6–12 месяцев без тестового периода
  • Нет информации о конкретных CAID и спутниковых пакетах
  • Техподдержка только через Telegram без email/тикет-системы
  • Сайт существует меньше 6 месяцев
  • Нет мониторинга uptime с историей

И наоборот — хороший признак: провайдер даёт тестовый период 24–48 часов без оплаты. Значит сами уверены в стабильности. Провайдер, который боится дать тест — обычно знает почему.

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

Порт 12000 — дефолтный для серверного протокола (параметр SERVER LISTEN PORT в CCcam.cfg). Веб-интерфейс — порт 16001 (WEBINFO LISTEN PORT). Оба рекомендуется менять: 12000 сканируется автоматически, 16001 не имеет авторизации по умолчанию. Измените в CCcam.cfg и не забудьте обновить правила iptables.

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

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

Что делать если ECM time превышает 800 мс и появляются фризы?

По шагам: 1) Проверьте ping до сервера — если больше 150 мс, проблема в сети или географии. 2) Проверьте hop count в C-line — hop 3+ добавляет задержку на каждом узле. 3) Отключите C-line к серверам, которые не используете. 4) Попросите провайдера проверить загрузку CPU сервера. 5) Если ничего не помогает — смотрите в сторону OScam с его более гибким менеджментом соединений или смените сервер на географически ближайший.

CCcam или OScam — что выбрать в 2026?

Если настраиваете с нуля — OScam. Открытый код, активная разработка, поддерживает CCcam, NewCamd, CAMD35 и gbox в одном демоне. Конфиги в /etc/oscam/oscam.conf, oscam.server, oscam.user — гибче и читаемее. CCcam — закрытый бинарник, последний стабильный релиз 2.3.x, разработка фактически остановлена. Единственный аргумент за CCcam: он проще для первого запуска за 20 минут. Для чего-то серьёзного — OScam.

Можно ли запустить CCcam-сервер без физической смарт-карты?

Сервер запустится, но ECM расшифровывать нечем. Можно работать как реселлер: получать карты от upstream-сервера через C-line (hop 1) и раздавать своим клиентам через F-line (hop 2). Это полностью рабочая схема. Физическая карта нужна только если вы хотите быть точкой происхождения (hop 1), а не реселлером.

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

На сервере: откройте http://your-server:16001/ — в разделе Connected Clients должен появиться IP клиента с временем подключения. В логах /var/log/CCcam будет строка вида client 192.168.1.5: logged in as clientusername. На клиенте: cat /tmp/ecm.info при переключении на зашифрованный канал покажет source, CAID и ECM time — если source показывает ваш сервер, всё работает.

Безопасно ли передавать CCcam-трафик в открытом виде?

Нет. Протокол CCcam не шифрует данные, трафик легко обнаруживается по сигнатурам. DPI-системы провайдеров и сетевые администраторы видят CCcam-сессии без особых усилий. Минимальная защита — завернуть соединение в WireGuard-туннель или SSH-проброс портов. Для серьёзной инфраструктуры WireGuard — стандарт: /etc/wireguard/wg0.conf, запуск через wg-quick up wg0, 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 или внешние мониторы.