Кардшаринг сервер: настройка CCcam и OScam 2026
Если вы читаете это — значит, вы уже разобрались с основами DVB и хотите поднять нормальный кардшаринг сервер своими руками, а не слепо вставлять чужие строки в конфиг. Здесь разберём всё по-настоящему: пути к файлам, форматы строк, что значит каждая директива и почему каналы могут не открываться даже при подключённом сервере.
Что такое кардшаринг сервер и как он работает
Ресивер, принимая зашифрованный сигнал, получает из потока так называемые ECM-пакеты (Entitlement Control Message). Это зашифрованные запросы, из которых нужно достать управляющее слово — DCW (Direct Control Word). Именно DCW и расшифровывает видеопоток в реальном времени. Без него картинка — каша.
Когда у вас нет физической карты, которая умеет декодировать этот ECM, ресивер отправляет запрос на удалённый сервер. Сервер передаёт запрос своему reader (физической карте или эмулятору), получает DCW и возвращает его клиенту. Весь этот цикл должен укладываться в ~300-400 мс — иначе начнутся фризы.
Принцип обмена ключами DCW и ECM/EMG
ECM — это запрос на ключ. EMM (Entitlement Management Message) — это сообщение, которое обновляет права на карте (подписки, авторизация). EMM обрабатывается отдельно и нужен для поддержания актуальности карты, но в повседневной работе шаринга вы работаете именно с ECM-циклом.
Поток ECM → сервер → reader → DCW → клиент → декодирование. Это и есть вся магия. Никакого видео по сети не передаётся — только небольшой ключ длиной 8 байт каждые несколько секунд.
Роль CAM-модуля и эмуляторов softcam
Физический CAM-модуль в CI-слоте делает то же самое, что и softcam — обрабатывает ECM локально. Разница в том, что softcam (OScam, CCcam) может запрашивать расшифровку удалённо, у кардшаринг сервера. CAM-модуль — нет, он работает только с картой, которая вставлена в него физически.
Для шаринга используют softcam-эмуляторы. OScam и CCcam — два самых распространённых. Важный момент: никогда не запускайте их одновременно на одном ресивере. Два softcam конкурируют за DVB-адаптер и /dev/dvb/adapter0/demux0 — конфликт гарантирован, и ни один из них нормально работать не будет.
Клиент-серверная схема: сервер раздаёт, клиент запрашивает
Один и тот же ресивер может одновременно быть и сервером (раздавать ключи другим), и клиентом (получать ключи от вышестоящего источника). В OScam это реализуется через секции reader (входящий источник) и конфигурацию user (исходящие клиенты). В CCcam — через строки C: (подключение к серверу) и F: (клиенты, которым вы раздаёте).
Это называется «каскад» или resharing. Плюс — гибкость. Минус — каждый дополнительный уровень добавляет задержку. Три хопа — это уже риск нестабильной работы на быстро меняющихся каналах.
Настройка сервера на CCcam: конфиги и порты
CCcam — проверенный инструмент, хотя и не развивается с 2013 года. Настройка у него прямолинейная, и разобраться с конфигом можно за полчаса. Главное — понимать, что именно вы пишете.
Структура /var/etc/CCcam.cfg и основные директивы
Основной конфиг лежит по пути /var/etc/CCcam.cfg на большинстве Linux-ресиверов (Dreambox, VU+). На некоторых прошивках — /etc/CCcam.cfg. Ключи и SoftCam.Key хранятся в /usr/keys/.
Вот базовые директивы, которые реально нужны:
SERVER LISTEN PORT : 12000— порт, на котором CCcam принимает подключения клиентовTELNET LISTEN PORT : 16000— порт telnet-интерфейса для управленияALLOW TELNET : YES— разрешить telnet (в продакшне лучше NO)GLOBAL LIST ONHOP : NO— при YES клиенты видят вашу карту как свою локальную; при NO — хоп увеличиваетсяNEWCAMD LISTEN PORT : 15000— если нужна поддержка newcamd-клиентовSHARE RESHARE LEVEL : 0— максимальный уровень решаринга для клиентов (0 = только ваша карта, без решаринга)
Перезапуск после изменений: /etc/init.d/CCcam restart или через telnet командой r.
Строка F: для клиентов и C: для подключения к серверу
Формат строки для клиента, которому вы раздаёте ключи:
F: username password 1 0 { }
Здесь: username и password — учётные данные клиента. Цифра 1 — разрешённое количество хопов для resharing (поставьте 0, если не хотите, чтобы клиент мог расшаривать дальше). 0 — группа. Фигурные скобки — фильтры CAID/provid (пусто = всё разрешено).
Строка подключения к вышестоящему серверу:
C: hostname.example.com 12000 your_user your_pass
Всё просто. Один сервер — одна строка C:. Несколько серверов — несколько строк. CCcam будет использовать тот, который быстрее ответит на конкретный CAID.
Стандартный порт 12000 и проброс через NAT
Стандартный порт CCcam — 12000, и это нужно прокинуть на роутере, если ресивер за NAT. Схема стандартная: в настройках роутера создаёте правило Port Forwarding с внешнего TCP:12000 на внутренний IP ресивера:12000.
Сложнее с двойным NAT (CGNAT у провайдера + ваш роутер). Тут проброс порта с вашего роутера не поможет — провайдер не даст вам публичный IP. Решение — либо VPN-туннель (WireGuard или OpenVPN с VPS), либо reverse tunnel через ssh -R. Без этого сделать ресивер сервером для внешних клиентов не получится.
Файлы CCcam.channelinfo и CCcam.providers
Эти файлы не обязательны для работы, но полезны. CCcam.channelinfo — маппинг SID каналов на человекочитаемые имена, отображается в телнете и веб-интерфейсе. CCcam.providers — маппинг CAID+ProviderID на названия провайдеров.
Лежат они рядом с основным конфигом — в /var/etc/ или /usr/keys/ в зависимости от прошивки. Обновлять их нужно вручную, автоматического обновления нет.
Настройка сервера на OScam: dvbapi и протоколы
OScam — это другой уровень гибкости. Открытый исходный код, поддержка десятков протоколов, веб-интерфейс, подробнейшее логирование. Настройка чуть сложнее, но зато вы понимаете что происходит. Я предпочитаю OScam именно за логи — с ними диагностика занимает минуты, а не часы.
Файлы oscam.conf, oscam.server, oscam.user, oscam.dvbapi
Конфиги OScam лежат в /etc/tuxbox/config/oscam/ или /var/keys/oscam/ — зависит от дистрибутива. На OpenPLi и OpenATV чаще всего /etc/oscam/. Четыре основных файла:
oscam.conf— глобальные настройки, протоколы, логированиеoscam.server— reader'ы: физические карты и удалённые серверыoscam.user— пользователи, которым вы раздаётеoscam.dvbapi— настройки интеграции с DVB-стеком ресивера
Секции [global], [cs378x], [newcamd], [cccam]
В oscam.conf секция [global] содержит пути к логам, уровень логирования, временную зону. Пример минимальной конфигурации:
[global]
logfile = /tmp/oscam.log
maxlogsize = 512
nice = -1
preferlocalcards = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
Секция [newcamd] — включает newcamd-сервер:
[newcamd]
port = 15000@CAID:ProviderID
key = 0102030405060708091011121314
Ключ key — 14 байт в hex. Он должен совпадать на сервере и у клиента. Это не шифрование сессии — это просто handshake-токен протокола newcamd.
Секция [cs378x] — протокол cs378x (UDP-вариант, использует порт 3578 по умолчанию). Секция [cccam] — принимает подключения от CCcam-клиентов на порт, который вы укажете (обычно 12000 или 12001 если уже занят).
Веб-интерфейс на порту 8888 и httpuser
Веб-интерфейс OScam — это не просто статус-страница. Здесь Live Log в реальном времени, таблица активных ECM с временем ответа, список reader'ов и их статус, управление пользователями. Открывается по адресу http://<ip-ресивера>:8888.
Если веб-интерфейс не открывается — проверьте httpport и httpuser/httppwd в oscam.conf. Без этих параметров веб-интерфейс просто не запустится. Также убедитесь, что OScam собран с поддержкой webif (некоторые сборки для слабых устройств идут без него).
Протоколы newcamd (порт 15000), cs357x, cs378x
Три основных протокола для внешних клиентов:
- newcamd — TCP, порт 15000 (настраиваемый). Самый распространённый, поддерживается практически всеми ресиверами и эмуляторами. Требует общий ключ 14 байт.
- cs357x — UDP, порт 3576. Старый протокол CCcam, менее надёжен на нестабильных соединениях.
- cs378x — TCP-версия cs357x, порт 3578. Надёжнее cs357x, но менее распространён.
Для mgcamd-совместимости используйте newcamd — mgcamd понимает этот протокол нативно и настраивается через newcamd.list с теми же параметрами (хост, порт, ключ, CAID).
Файл oscam.server: добавление reader
Пример reader для подключения к вышестоящему CCcam-серверу:
[reader]
label = upstream_server
protocol = cccam
device = hostname.example.com,12000
user = your_user
password = your_pass
caid = 0D00,0500
group = 1
reconnecttimeout = 30
Для физической карты в CI-слоте или смарт-карт-ридере протокол будет internal или pcsc, а device — путь вида /dev/sci0.
Файл oscam.dvbapi
Этот файл нужен, если OScam напрямую декодирует каналы на текущем ресивере (не только раздаёт другим). Минимальная конфигурация для Dreambox:
[dvbapi]
enabled = 1
au = 1
boxtype = dreambox
user = local_user
Параметр user здесь — это пользователь из oscam.user, под которым работает локальный dvbapi. У него должны быть права на нужные CAID и группы.
Диагностика и решение типичных проблем
Большинство проблем с кардшаринг сервером укладываются в несколько категорий: неправильные учётные данные, несовпадение CAID, проблемы с сетью или перегрузка источника. Логи OScam говорят почти всё.
Канал не открывается: проверка ECM-логов
Открывайте веб-интерфейс OScam, вкладка Live Log. Переключайтесь на проблемный канал и смотрите что происходит. Три основных статуса в логах:
found (X ms)— всё хорошо, ключ получен за X миллисекундnot found— reader не смог расшифровать ECM. Причины: нет нужного CAID, закончились права на карте, CAID не прописан в readertimeout— запрос ушёл, ответ не пришёл в лимит времени. Проблема в сети или сервер перегружен
Если видите постоянный not found — сначала проверьте CAID канала (можно найти в CCcam.providers или через dvbsnoop) и сравните с тем, что поддерживает ваш reader. Карта может работать локально, но не отдаваться в шаринг — это часто проблема параметра au в oscam.user: если у пользователя au = 0, он не получит ключи от карт с EMM-обновлением.
Ошибка connection refused и блокировка портов
Connection refused означает, что сервис не слушает на этом порту или firewall блокирует соединение. Проверяйте:
netstat -tlnp | grep 12000
telnet host 12000
Если netstat не показывает порт — CCcam/OScam либо не запущен, либо не смог открыть порт (конфликт с другим процессом). Если telnet висит — скорее всего firewall на пути. На роутере проверьте правила iptables или firewalld.
Отдельная история — несовпадение версий протокола CCcam. Если ваш клиент собран под CCcam 2.3.x, а сервер ожидает хендшейк CCcam 2.1.x — соединение установится, но ключи не пойдут. В логах CCcam это выглядит как успешный коннект с последующим silent disconnect. Решение — использовать OScam на стороне клиента, он совместим со всеми версиями протокола.
Фриз и подвисания из-за высокого ping/ECM time
ECM time выше 400-500 мс — это уже красная зона. Канал будет то открываться, то зависать, особенно на каналах с коротким crypto period (некоторые операторы меняют ключ каждые 2-3 секунды).
Прайм-тайм фризы — классика перегруженного источника. Один кардшаринг сервер физически ограничен пропускной способностью карты: одна карта может обрабатывать несколько ECM-запросов одновременно, но не сотни. Если источник делает resharing с перегрузкой — ваш ECM time улетит в 1000+ мс именно в вечерние часы.
Что проверить: в логах OScam смотрите столбец ECM time в разные временные периоды. Если утром 80 мс, а вечером 600 мс — проблема точно в источнике, не в вашей сети.
Несовпадение CAID/provider ID
Каждый оператор имеет свой CAID (4 hex-цифры) и ProviderID (6 hex-цифр). Если в конфиге reader прописан CAID 0D00, а канал шифруется на 0D02 — ключ не придёт, хотя физически это может быть одна и та же система шифрования.
Смотрите реальный CAID из потока через Live Log OScam — там в строке ECM будет указан точный CAID и ProviderID. Сравните с тем, что поддерживает ваш reader. Расхождение на уровне ProviderID встречается часто при работе с многопакетными операторами.
Количество хопов и стабильность
Hop count — это количество промежуточных серверов между физической картой и вашим ресивером. Каждый хоп добавляет латентность и точку отказа. Два хопа — ещё приемлемо. Три-четыре хопа — начинаются проблемы, особенно с Premium HD каналами.
В CCcam хоп виден в телнете командой l (list). В OScam — в веб-интерфейсе в разделе Readers, колонка Hops. Если видите 4 и выше — это объясняет нестабильность даже при нормальном пинге до сервера.
Как выбрать кардшаринг провайдера: объективные критерии
Большинство проблем с нестабильной работой начинаются не в конфиге, а на этапе выбора источника. Технически грамотно настроенный кардшаринг сервер будет бесполезен, если источник — дешёвый решарер с пятью хопами и аптаймом 70%.
Аптайм сервера и заявленный ECM time
Нормальный аптайм для рабочей линии — 99%+. Всё ниже 98% в месячном исчислении — это несколько часов даунтайма еженедельно, что неприемлемо. Заявленный ECM time должен быть до 200-300 мс. Некоторые провайдеры пишут «ECM time 50 мс» — проверяйте это на тестовой линии, не верьте на слово.
Попросите статистику за последние 30 дней. Нет статистики — красный флаг.
Локальные карты vs решаринг (количество хопов)
Это самый важный вопрос перед покупкой. Локальная карта = 1 хоп = максимальная стабильность. Resharing = 2+ хопа = риски. Спросите напрямую: «Это ваша физическая карта или вы сами покупаете у другого источника?»
Хороший провайдер ответит честно и укажет хоп-каунт. Уклончивый ответ вида «у нас всё стабильно» — тревожный признак.
Поддержка нужных CAID и пакетов
Составьте список CAID, которые вам нужны, до разговора с провайдером. Проверяйте не только наличие CAID, но и конкретные ProviderID и пакеты внутри них. Оператор может иметь два пакета с разными ProviderID, а провайдер шаринга — только один из них.
На тестовой линии проверяйте все нужные каналы, не ограничивайтесь одним-двумя. Особенно внимательно — HD и 4K потоки с коротким crypto period.
Тестовый период и техподдержка
Тестовая линия — стандарт. 24-48 часов достаточно, чтобы проверить аптайм в разное время суток, включая вечерний прайм-тайм. Если тест не дают или дают только на час — это не серьёзный поставщик.
Техподдержка должна отвечать на технические вопросы, а не только на «как оплатить». Спросите что-нибудь конкретное — например, какой протокол они рекомендуют для вашего ресивера и какой CAID-лист актуален прямо сейчас. По качеству ответа поймёте многое.
Чек-лист вопросов перед подключением:
- Это локальная карта или решаринг? Какой хоп-каунт?
- Какой средний ECM time по статистике за последний месяц?
- Какой аптайм за последние 30 дней?
- Какие CAID и ProviderID поддерживаются?
- Есть ли тестовая линия на 24-48 часов?
- Какие протоколы поддерживаются (CCcam, newcamd, cs378x)?
- Есть ли резервные серверы на случай падения основного?
Часто задаваемые вопросы
Какой порт по умолчанию использует CCcam сервер?
Стандартный порт — 12000 TCP. Задаётся директивой SERVER LISTEN PORT : 12000 в файле /var/etc/CCcam.cfg. Если ресивер находится за NAT, этот порт нужно прокинуть на роутере через Port Forwarding. При двойном NAT (CGNAT провайдера) проброс не поможет — нужен VPN-туннель или reverse SSH.
Чем OScam отличается от CCcam?
OScam — открытый проект с активной разработкой, поддерживает множество протоколов (newcamd, cs378x, cccam, gbox и другие), имеет веб-интерфейс и детальное логирование. CCcam — закрытый, не обновлялся с 2013 года, проще в настройке, но менее гибок. Для серьёзной настройки я рекомендую OScam — диагностика через веб-интерфейс экономит часы работы.
Что означает ECM time и какое значение считается нормальным?
ECM time — время от отправки ECM-запроса до получения DCW-ответа от сервера. Норма — до 300-400 мс. При 400-600 мс начинаются периодические фризы при переключении каналов. Выше 600 мс — каналы будут регулярно замерзать, особенно те, где оператор меняет управляющее слово каждые 2-3 секунды.
Почему канал не открывается, хотя сервер подключён?
Причин несколько. Первое — проверьте CAID и ProviderID в Live Log OScam: они должны совпадать с тем, что поддерживает ваш reader. Второе — статус reader в логах: если он показывает not found, а не timeout, карта просто не имеет прав на этот канал. Третье — количество хопов: при 4+ хопах и слабой сети ключ может не успевать доходить до крипто-периода смены.
Можно ли сделать один ресивер одновременно сервером и клиентом?
Да. В OScam это реализуется через oscam.server (описываете reader с вышестоящим источником) и oscam.user (описываете клиентов, которым раздаёте). В CCcam — строки C: (подключение к серверу) и F: (ваши клиенты) в одном файле CCcam.cfg. Ресивер будет одновременно тянуть ключи сверху и раздавать их вниз.
Как настроить newcamd протокол в OScam?
В oscam.conf добавьте секцию [newcamd] с параметром port = 15000@CAID:ProviderID и key = 01020304050607080910111213 (14 байт в hex). В oscam.server у reader, если он тоже подключается по newcamd к вышестоящему серверу, укажите protocol = newcamd, device = hostname,15000 и тот же ключ. Ключ должен совпадать на обеих сторонах — это обязательное условие handshake.