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 подключается по внутреннему адресу туннеля.

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.