Кардшаринг: настройка CCcam и OScam в 2026
Кардшаринг — это технология, которую либо понимают до деталей, либо путаются в конфигах до бесконечности. Если вы уже знаете, что такое DVB-тюнер и зачем нужен условный доступ (CA), но хотите разобраться в механике на уровне протоколов и файлов настройки — вы в нужном месте. Здесь не будет рекламных слоганов, только реальная техника.
Что такое кардшаринг и как он работает
Суть проста: один ресивер с физической смарт-картой декодирует сигнал и передаёт ключ расшифровки другим устройствам по сети. Без этого каждому ресиверу нужна своя карта. С ним — карта одна, клиентов может быть несколько.
Технология сама по себе нейтральна. Классический легальный сценарий — несколько ресиверов в одном домохозяйстве с одной оплаченной подпиской. Вопрос всегда в том, что именно написано в договоре с вещателем.
Принцип обмена control word (CW)
Каждые 10 секунд вещатель меняет control word — симметричный ключ, которым зашифрован транспортный поток. Ресивер-клиент без карты не может его получить самостоятельно. Поэтому он отправляет ECM-пакет на сервер, сервер прогоняет его через карту, получает CW и возвращает клиенту.
10 секунд — стандартный интервал для большинства систем кодирования. Если CW не пришёл вовремя, картинка замерзает. Поэтому время отклика ECM так важно.
Роль ECM и EMM в системе кодирования
ECM (Entitlement Control Message) — это зашифрованный пакет с control word. EMM (Entitlement Management Message) — служебные сообщения, которые обновляют права на карте: продление подписки, смена ключей вещателя. Без правильной обработки EMM карта со временем «протухает», и права перестают обновляться.
Параметр au (autoupdate) в OScam как раз отвечает за то, чтобы EMM-потоки обрабатывались автоматически. Если au отключить — рано или поздно карта потеряет актуальные права.
Архитектура клиент-сервер: кто такие peer и share
Сервер — машина с картоприёмником и реальной смарт-картой. Клиент (peer) подключается к серверу по протоколу CCcam, Newcamd или другому, запрашивает CW и получает его. Share — это список каналов и систем кодирования, которые сервер готов обслуживать.
В CCcam понятие share ещё шире: сервер может пробрасывать доступ дальше по цепочке пиров. Отсюда параметр hop — глубина этой цепочки.
Чем отличается локальная карта от шары
Локальная карта — физически вставлена в картоприёмник вашего сервера. Задержка ECM минимальная, обычно 50–150 мс. Шара (remote share) — карта находится на удалённом сервере, доступ через сеть. Добавляет задержку: чем дальше и нестабильнее канал, тем выше риск фризов.
OScam при правильной конфигурации умеет расставлять приоритеты: сначала пробует локальную карту, и только если она не даёт ответа — уходит к удалённым reader'ам.
Протоколы CCcam, Newcamd и MGcamd: в чём разница
Три протокола — три разных подхода к одной задаче. Выбор зависит от железа, прошивки ресивера и того, что поддерживает сервер на другом конце.
CCcam — порт 12000 и принцип hop/share
CCcam слушает по умолчанию на порту 12000. Протокол проприетарный, но давно реверс-инженерен. Главная фича — система share и hop. Каждый сервер в цепочке уменьшает hop на единицу; при hop=0 шара дальше не передаётся.
Hop больше 2 — это уже проблема. Каждый дополнительный узел добавляет задержку и точку отказа. На практике hop>2 даёт нестабильность даже при хорошем интернете. Держите цепочку короткой.
Newcamd — порт 15000, шифрованный обмен и DES-ключ
Newcamd работает на порту 15000 и использует DES-шифрование обмена с 14-байтным ключом (des_key). Это делает его чуть более защищённым по сравнению с ранними версиями CCcam, но накладывает требование: ключ должен совпадать на сервере и клиенте до байта.
Типичный des_key выглядит так: 01 02 03 04 05 06 07 08 09 10 11 12 13 14. Не оставляйте дефолтный ключ — любой, кто знает порт, попробует стандартные значения.
MGcamd и формат newcamd.list
MGcamd — это клиентское приложение для Enigma2-боксов, которое понимает Newcamd-протокол. Конфигурация хранится в файле newcamd.list, обычно расположенном в /var/keys/. Формат строки:
CWS = hostname 15000 username password 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Каждая строка — отдельный сервер. MGcamd пробует их по порядку при неудаче с текущим. Простой и предсказуемый механизм фолловера.
Когда выбирать каждый протокол
CCcam — если сервер раздаёт доступ нескольким пирам и нужна система share. Newcamd — если важно шифрование и работа один-на-один с конкретным сервером. MGcamd — если ресивер на Enigma2 и нужен простой клиент без лишних зависимостей.
OScam поддерживает все три одновременно. CCcam как самостоятельный сервер — давно не обновляется, последние рабочие сборки датируются 2012–2013 годами.
Установка и настройка сервера OScam
OScam — это то, что сегодня реально используют для серьёзной настройки. Активно поддерживается сообществом, есть сборки под почти любое железо: от Raspberry Pi до Enigma2-боксов и обычного Linux-сервера.
Сборка OScam и структура /etc/tuxbox/config или /usr/keys
На Enigma2-боксах конфиги обычно живут в /etc/tuxbox/config/. На обычном Linux (Debian, Ubuntu) — типичный путь /usr/local/etc/oscam/ или /etc/oscam/. На некоторых OpenATV/OpenPLi образах можно встретить /var/keys/.
Перед сборкой проверьте зависимости: libssl-dev, libpcsclite-dev (если планируете USB-картоприёмник через PC/SC). Минимальный набор флагов при cmake:
cmake -DWEBIF=1 -DREAD_CAMD33=1 -DREAD_NEWCAMD=1 -DREAD_CCCAM=1 .
Файл oscam.conf: секции [global], [cs378x], [newcamd]
Главный конфиг — oscam.conf. Базовая структура секции [global]:
[global]
logfile = /var/log/oscam.log
maxlogsize = 512
nice = -1
WaitForCards = 1
[cs378x]
port = 11000
[newcamd]
port = 15000@1830:000000
key = 01 02 03 04 05 06 07 08 09 10 11 12 13 14
[webif]
httpport = 8888
httpuser = admin
httppwd = password
httprefresh = 10
Параметр port в секции [newcamd] содержит не только номер порта, но и привязку к caid и provid через символ @. В примере 1830 — caid, 000000 — provid. Если провайдер несколько, перечисляете через запятую.
Файл oscam.server: подключение картоприёмника
Файл oscam.server описывает ридеры — физические карты или удалённые шары. Пример для внутреннего картоприёмника Enigma2-бокса:
[reader]
label = local_card
protocol = internal
device = /dev/sci0
caid = 1830
ident = 1830:000000
group = 1
au = 1
detect = cd
Параметр au = 1 включает обработку EMM — карта будет получать обновления прав автоматически. Без этого при смене ключей вещателем карта перестанет декодировать. Параметр group связывает ридер с пользователями из oscam.user: у клиента должна быть та же группа.
Для USB-ридера (например, Smargo) строка device будет другой: device = /dev/ttyUSB0, протокол — protocol = smartreader.
Файл oscam.user: создание учёток клиентов
Каждый клиент — отдельный блок в oscam.user:
[account]
user = client1
pwd = secretpass
group = 1
au = 1
uniq = 1
monlevel = 0
caid = 1830
Параметр uniq = 1 запрещает одновременный вход с одними учётными данными с разных IP. Без него один аккаунт может использоваться несколькими людьми одновременно — это обычно нежелательно. monlevel = 0 закрывает доступ к веб-интерфейсу для этого пользователя.
Веб-интерфейс на порту 8888 и мониторинг
OScam поднимает веб-морду на порту 8888 — это реально удобно. Там видно активные соединения, время отклика по каждому ECM-запросу, статус ридеров и лог в реальном времени. Стандартный URL: http://192.168.1.x:8888/.
В продакшн-конфиге доступ к веб-интерфейсу стоит ограничить по IP через параметр httpallowed. Иначе любой в вашей сети (или за NAT-ом, если порт проброшен) сможет зайти и посмотреть конфиг.
Настройка CCcam: CCcam.cfg и строки C-line/F-line
CCcam всё ещё встречается на старых ресиверах и в цепочках обмена — знать формат конфига нужно. Основной файл — CCcam.cfg, на Enigma2-боксах лежит в /var/etc/CCcam.cfg, на других системах путь может отличаться.
Структура CCcam.cfg и путь /var/etc
Файл построен на принципе «одна директива — одна строка». Нет секций в стиле INI, нет отступов. Пример минимального рабочего конфига:
SERVER LISTEN PORT : 12000
NEWCAMD LISTEN PORT : 15000
ALLOW TELNET : yes
TELNET PORT : 16001
LOG FILENAME : /tmp/CCcam.log
LOG FILESIZE LIMIT : 1
C-line: подключение к серверу как клиент
C-line описывает подключение к удалённому серверу. Формат:
C: hostname 12000 username password
Пробелы между элементами — обязательны. Hostname — IP или доменное имя сервера. Порт — обычно 12000, но может быть любым. Учётные данные должны совпадать с тем, что прописано на сервере для этого клиента.
Можно прописать несколько C-line — CCcam будет пробовать их по порядку при недоступности основного сервера. Фактически это примитивный фолловер без какого-либо балансирования.
F-line: раздача доступа другому пиру
F-line — это обратная операция: вы раздаёте доступ другому клиенту CCcam. Формат:
F: username password uphops downhops
uphops — сколько hop-ов «вверх» клиент может получить (то есть насколько глубоко он видит вашу цепочку шар). downhops — сколько hop-ов он может передать дальше своим клиентам. Стандартная безопасная настройка: F: user pass 1 0 — клиент получает доступ, но не может передавать его дальше.
Параметры: SERVER LISTEN PORT, ALLOW TELNET
Несколько параметров, которые часто игнорируют при первой настройке:
SHARE LIMIT : 10— максимальное количество шар, которые CCcam будет принимать от одного сервераNEWCAMD LISTEN PORT : 15000— CCcam может работать и как Newcamd-сервер одновременноMINIMUM SERVERSUPPORTED CARDTIME : 0— задержка перед ответом (обычно 0)ALLOW TELNET : yes— без этого telnet-мониторинг не работает
Проверка статуса через telnet на порту 16001
Быстрая диагностика без веб-интерфейса:
telnet localhost 16001
После подключения введите l для просмотра логов или s для статуса шар. Вы увидите список пиров со статусами ONLINE, CONNECTING или OFFLINE. Если пир завис в CONNECTING больше минуты — смотрите в сторону закрытого порта или неверных учётных данных.
Диагностика и устранение типичных проблем
90% проблем с кардшарингом решаются чтением логов. Не «перезагрузить ресивер», не «пересоздать конфиг с нуля», а именно прочитать, что написано в /var/log/oscam.log.
Чёрный экран и сообщение «нет доступа»
Первым делом проверьте, что в oscam.log нет строк вида no matching reader или user not found. Первое означает, что ни один ридер не обслуживает запрошенный caid. Второе — учётки нет или имя/пароль не совпадают.
Ещё частая причина — несоответствие caid и ident. Если в oscam.server прописан caid 1830, а клиент запрашивает caid 0919 — ридер просто не ответит. Сверяйте caid с тем, что реально транслирует пакет.
Фриз картинки и долгий отклик ECM
Приемлемое значение ECM time — до 400 мс. Всё, что выше, будет давать периодические фризы, особенно при смене CW каждые 10 секунд. В веб-интерфейсе OScam ECM time виден в реальном времени по каждому клиенту.
Если время отклика 600–800 мс — либо сервер перегружен, либо канал до него нестабильный. Проверьте ping до сервера: если там 300+ мс с джиттером, это уже сетевая проблема, не конфигурационная.
Ошибки CW not found и timeout
В oscam.log ищите строки ECM rejected и CW not found. Первое — сервер получил запрос, но ни один ридер его не смог обработать (нет прав, неверный ident, карта не обновлена). Второе — запрос ушёл, ответ не вернулся за отведённое время.
Параметр ctimeout в oscam.conf задаёт таймаут ECM-запроса в миллисекундах. Дефолт обычно 1500 мс. Слишком низкое значение даёт ложные timeout при нормальной загрузке сети.
Проблемы с фаерволлом и пробросом портов
Проверка открытости порта снаружи — элементарная, но про неё забывают:
nc -zv your.server.ip 12000
Двойной NAT (CGNAT у провайдера) — отдельная головная боль. Если ваш провайдер использует CGNAT, у вас нет реального внешнего IP, и пробросить порт через роутер просто невозможно без участия провайдера. В такой ситуации выход — туннель (WireGuard, OpenVPN) через VPS с белым IP, или смена провайдера на того, кто даёт статический IP.
Расхождение системного времени и сбои
Это недооценённая причина проблем. Криптообмен CW чувствителен к времени: если системное время сервера и клиента расходится больше чем на несколько секунд, возникают ошибки расшифровки, которые выглядят как случайные фризы или полные отказы декодирования.
Обязательно настройте NTP синхронизацию. На Debian/Ubuntu:
apt install ntp
systemctl enable ntp
timedatectl set-ntp true
Проверьте текущее смещение командой timedatectl status или ntpq -p. Расхождение больше 1–2 секунд — уже повод для разбора.
Как выбрать надёжный сервер: критерии без названий
Называть конкретные сервисы я не буду — не потому что скрываю, а потому что рынок меняется быстро, и любое название здесь устареет раньше, чем вы дочитаете. Но критерии оценки — постоянны.
Стабильность аптайма и время отклика ECM
Нормальный провайдер без стеснения показывает статистику аптайма. ECM time до 200 мс — хорошо. 200–400 мс — приемлемо. Всё выше — спорно. Попросите тестовый доступ и замерьте реальные цифры в своих условиях, не верьте скриншотам на сайте.
Прайм-тайм (20:00–23:00) — настоящий стресс-тест. Сервер, который отлично работает в 14:00, может рассыпаться под нагрузкой вечером. Тестируйте именно в это время.
Поддержка нужных caid и пакетов
Перед покупкой уточните конкретные caid: например, Viaccess (caid 0500), Nagravision (0919), Irdeto (0604). Абстрактное «поддерживаем все пакеты» — не ответ. Нужен список caid с соответствующими provid и подтверждение, что карта активна именно сейчас.
Защита от перепродажи и количество подключений
Один аккаунт — одно подключение. Это базовое требование к качеству. Если на сервере нет ограничения по uniq/simultaneous connections, значит вашу линию могут продать ещё десяти людям. Чем больше одновременных клиентов на одной карте — тем выше ECM time у каждого из них.
Тестовый период и техподдержка
Нормальный провайдер даёт тестовый доступ на 24–48 часов. Если тестового периода нет вообще — это красный флаг. Поддержка должна отвечать на технические вопросы (порт, caid, ident, проблема с конфигом) — а не только принимать оплату.
Спросите напрямую: «Какой у вас caid и provid для пакета X?». Если ответ уклончивый — значит, либо не знают сами, либо скрывают, что карта мультиарендованная.
Какой порт используется по умолчанию для CCcam и OScam?
CCcam слушает на порту 12000, telnet-мониторинг — на 16001. Newcamd, который поддерживают и CCcam, и OScam, по умолчанию работает на порту 15000. Веб-интерфейс OScam поднимается на 8888. Все эти значения задаются в конфиге и могут быть изменены; главное — не забыть пробросить нужные порты на роутере, если сервер за NAT.
Чем OScam лучше CCcam?
OScam поддерживает одновременно несколько протоколов (CCcam, Newcamd, CS378x и другие), имеет удобный веб-интерфейс с реальным мониторингом ECM time, гибкую систему групп и приоритетов ридеров, и активно развивается сообществом. CCcam проще для первого запуска, но последнее официальное обновление — более десяти лет назад. Для серьёзной настройки выбор очевиден.
Почему появляются фризы и чёрный экран?
Чаще всего виноваты: высокий ECM time (выше 400 мс), расхождение системного времени по NTP, закрытый или непроброшенный порт, неверный caid или provid в конфиге, перегрузка сервера при превышении лимита одновременных линий. Читайте oscam.log — там написано конкретно, что пошло не так.
Что означают C-line и F-line в CCcam.cfg?
C-line — это клиентское подключение к удалённому серверу: C: hostname port username password. F-line — раздача доступа своему клиенту: F: username password uphops downhops. C-line говорит «откуда я получаю доступ», F-line — «кому я его даю». Параметры uphops и downhops контролируют глубину распространения шары по цепочке пиров.
Насколько важно точное системное время на сервере?
Критично. Криптообмен control word завязан на временные метки: расхождение времени между сервером и клиентом приводит к ошибкам расшифровки, которые выглядят как случайные фризы или полный отказ декодирования. Настройте NTP синхронизацию через timedatectl set-ntp true и периодически проверяйте смещение командой ntpq -p.
Можно ли использовать кардшаринг легально?
Технология нейтральна. Легальный сценарий — доступ к собственной оплаченной подписке на нескольких ресиверах в рамках одного домохозяйства. Ключевое условие: это должно быть разрешено договором с вещателем. Большинство операторов платного ТВ явно ограничивают количество одновременных устройств; прочитайте условия своего договора перед настройкой.