ТВ шара: настройка CCcam и OScam сервера 2026
Если вы дошли до этой страницы, значит уже знаете, что такое ресивер и DVB-карта, и вам нужен не ликбез, а рабочая инструкция. Тв шара — это схема, при которой один физический смарт-картридер на сервере обслуживает множество клиентов через сеть. Здесь я разберу настройку с нуля: конфиги, пути, порты, и что делать, когда ничего не работает.
Что такое ТВ шара и как работает кардшаринг
Принцип простой. Ресивер принимает зашифрованный DVB-поток с тарелки, но не может его расшифровать самостоятельно — у него нет карты или эмулятора. Он отправляет ECM-запрос (Entitlement Control Message) на удалённый сервер. Сервер пропускает запрос через физическую смарт-карту или эмулятор, получает control word (CW) и возвращает его клиенту. Клиент расшифровывает поток. Весь обмен занимает миллисекунды при хорошем соединении.
Принцип обмена ключами ECM/EMM
ECM-пакеты идут в потоке каждые несколько секунд и содержат зашифрованный control word. EMM (Entitlement Management Message) — это сервисные сообщения от вещателя для управления правами карты. Клиент перехватывает ECM из DVB-потока и пересылает на сервер. Сервер отвечает CW, который клиент передаёт softcam'у для дешифровки потока на лету.
Если ECM time (время ответа) превышает интервал смены CW — а это обычно около 10 секунд — картинка замерзает. На практике нормальный ECM time — до 300–400 мс. Всё выше 800 мс уже проблема.
Роль сервера и клиента в схеме шаринга
Сервер держит физическую карту в ридере (например, смарт-картридер Smargo на USB) и запускает softcam — OScam или аналог. Клиент (ресивер на Enigma2, VU+, DM800 и т.д.) запускает свой softcam и подключается к серверу через протокол. Сервер — источник CW, клиент — потребитель.
Протоколы: CCcam, newcamd, mgcamd, CS378x
CCcam использует порт 12000 по умолчанию — это проприетарный протокол, простой и распространённый. Newcamd работает обычно в диапазоне портов 15000–15050, использует DES-шифрование. CS378x (camd35) — ещё один вариант, порт задаётся вручную. mgcamd — это softcam-клиент, поддерживает несколько протоколов. Все эти протоколы можно параллельно слушать в OScam.
Чем OScam отличается от CCcam
CCcam — закрытое ПО, настраивается одним файлом, работает "из коробки". OScam — open source, поддерживает cccam, newcamd, camd35, gbox и другие протоколы одновременно. Логирование в OScam подробнее, и веб-интерфейс даёт статус каждого ридера в реальном времени.
На практике многие используют OScam как клиент с протоколом cccam: подключаются к серверу через C-line, но получают гибкость OScam в управлении CAID и приоритетами. Это рабочая и удобная схема.
Настройка CCcam: конфиги, пути и строка C-line
Путь к конфигу зависит от прошивки. На большинстве Enigma2-сборок это /var/etc/CCcam.cfg. На некоторых старых образах или после ручной установки softcam файл лежит в /usr/keys/CCcam.cfg. После обновления прошивки путь иногда меняется — и это одна из самых частых причин, почему CCcam не стартует: файл есть, а softcam смотрит не туда.
Структура файла CCcam.cfg и его расположение
Файл текстовый, одна директива — одна строка. Комментарии начинаются с #. Минимальная рабочая конфигурация клиента выглядит примерно так:
# Подключение к серверу
C: yourserver.example.com 12000 myuser mypassword no
# Локальный порт для приёма
F: localuser localpassword 0 0 0 0:0:1
Строка C: — это клиентское подключение (Client line). Строка F: — это Friend line, она открывает вашему серверу возможность отдавать CW другим клиентам. Для чистого клиента без решары строку F: можно не добавлять.
Разбор C-line: host port username password
Формат: C: <host> <port> <username> <password> <recv_hop_limit> { <caid:provid> }
Параметр после пароля — no или yes — управляет минимальным хопом. Фигурные скобки с 0:0:1 означают "принимать все CAID". Если нужно ограничить, например, только Viaccess: { 0500:000000 }. Большинство пользователей оставляют 0:0:1.
Файлы CCcam.channelinfo и CCcam.providers
CCcam.channelinfo содержит маппинг SID → название канала для отображения в логах. CCcam.providers — имена провайдеров по CAID. Оба файла опциональны, но с ними логи читаются удобнее. Лежат рядом с CCcam.cfg — в /var/etc/ или /usr/keys/.
Запуск и перезапуск демона на Enigma2
Убить процесс и перезапустить вручную:
killall -9 CCcam
sleep 2
/usr/bin/CCcam &
Для отладки с выводом в консоль:
/usr/bin/CCcam -C /var/etc/CCcam.cfg -d
Флаг -d запускает в режиме отладки и не уходит в фон. Ctrl+C останавливает. Это самый быстрый способ увидеть, что происходит при старте.
Через telnet на порт 16000 (если не меняли) можно смотреть статус клиентов и ридеров прямо из командной строки. Или через Blue Panel → Softcam Setup на ресивере.
Настройка OScam: oscam.server, oscam.user и dvbapi
OScam хранит конфиги в каталоге. Типовые пути: /etc/tuxbox/config/oscam/, /var/etc/oscam/, /etc/oscam/. Снова — зависит от прошивки и сборки пакета. После обновления системы всегда проверяйте, куда смотрит init-скрипт OScam.
Конфиги oscam.conf, oscam.server, oscam.user
Минимальный oscam.conf:
[global]
logfile = /var/log/oscam.log
loglevel = 4
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
[dvbapi]
enabled = 1
boxtype = dreambox
pmt_mode = 0
Без блока [dvbapi] OScam не будет работать как softcam на Enigma2 — он не будет слушать PMT и расшифровывать каналы.
Подключение reader через протокол cccam
В файле oscam.server добавляем блок для каждого сервера:
[reader]
label = myshare
protocol = cccam
device = yourserver.example.com,12000
user = myuser
password = mypassword
caid = 0500,1800,0604
reconnecttimeout = 30
group = 1
Параметр caid — список CAID через запятую. Если не знаете заранее, что поддерживает сервер, можно убрать строку — OScam попробует всё. Но лучше указывать конкретно: меньше лишних ECM-запросов, быстрее ответ.
В oscam.user добавляем аккаунт для локальных клиентов (если OScam выступает ещё и как сервер):
[account]
user = localclient
pwd = localpass
group = 1
au = 1
Настройка [dvbapi] и oscam.dvbapi
Файл oscam.dvbapi задаёт приоритеты расшифровки — какой ридер использовать для какого CAID. Формат:
P: 0500:000000
P: 1800:000000
I: 0604:000000
P: — Priority (использовать в первую очередь), I: — Ignore (игнорировать этот CAID/provid). Если один CAID приходит от нескольких ридеров с разным ECM time, приоритеты здесь решают, кто отвечает первым.
Серый экран только на HD-каналах при рабочих SD — типичный признак неверного CAID или provid. У некоторых пакетов HD-каналы идут на отдельном provid. Смотрите лог: там будет точный CAID:provid из ECM-запроса.
Веб-интерфейс на порту 8888 для мониторинга
После старта OScam открываете браузер: http://<ip-ресивера>:8888. В разделе Readers видите статус каждого ридера — CONNECTED, CONNECTING, или FAILED. Если статус CONNECTING дольше минуты — проблема с подключением: неверный хост, порт, логин/пароль, или файрвол.
Вкладка Clients показывает, какие каналы сейчас расшифровываются и с каким ECM time. Это самый быстрый способ диагностики без копания в логах.
Диагностика и решение типичных ошибок шары
Большинство проблем с тв шарой решаются чтением логов. Не методом тыка, не переустановкой softcam, а именно чтением. Лог OScam по умолчанию — /var/log/oscam.log. CCcam пишет в /tmp/CCcam.log или через syslog.
Канал не открывается: чтение ECM-логов
Смотрите строки с ECM в логе. Если видите запрос ушёл, но ответа нет — проблема в соединении с сервером. Если видите ответ, но канал не открывается — либо неверный CW (CW NOK), либо softcam не получил его вовремя.
Строка вида no matching reader означает, что ни один ридер не поддерживает нужный CAID. Проверяйте список CAID в oscam.server и то, что ридер вообще в статусе CONNECTED.
Ошибки CW NOK, no matching reader, timeout
CW NOK — control word некорректен. Причины: карта на сервере не держит канал (нет прав), неверный CAID/provid, повреждение данных при передаче. Если CW NOK идёт постоянно по конкретному каналу — проблема на стороне источника.
reader not connected — ридер не подключён. Алгоритм: проверьте хост и порт в oscam.server, попробуйте telnet yourserver.example.com 12000 прямо с ресивера. Если telnet не открывается — порт закрыт файрволом или неверный адрес.
timeout — запрос ушёл, ответ не пришёл вовремя. Смотрите ECM time в логе. Если время скачет от 100 мс до 2000 мс — нестабильная сеть или перегруженный сервер.
Фриз картинки и завышенный ECM time
ECM time выше 800 мс — уже повод для расследования. Выше 1500 мс — почти гарантированные фризы. Причины по убыванию частоты: длинная цепочка решары (каждый хоп добавляет задержку), перегрузка сервера, медленный интернет-канал между вами и сервером, высокий пинг до хоста.
Проверьте пинг: ping yourserver.example.com. Если пинг нормальный (до 50–80 мс), а ECM time всё равно высокий — это реша́ра, и с этим ничего не сделать на клиентской стороне.
Проблемы с проброшенными портами и NAT
Ряд интернет-провайдеров блокирует нестандартные порты или использует симметричный NAT. Порт 12000 — один из частых кандидатов на блокировку. Проверка: telnet yourserver.example.com 12000. Если соединение не устанавливается с ресивера, но пинг до хоста идёт — скорее всего, порт заблокирован провайдером или не проброшен на сервере.
Решение: попросите изменить порт на менее экзотический (например, 8080 или 443) или настройте VPN-туннель для доступа к своему легальному ресурсу. Через VPN проблема NAT и блокировки портов снимается полностью.
Ещё одна неочевидная причина отвалов — рассинхрон времени на ресивере. Некоторые системы защиты чувствительны к временно́й метке. Настройте NTP: в /etc/ntp.conf или через меню системных настроек Enigma2. Синхронизация с pool.ntp.org решает эту проблему раз и навсегда.
И последнее: если у вас одновременно запущены CCcam и OScam, они оба пытаются захватить /dev/dvb через dvbapi. Получается конфликт — один из них не получит доступ к тюнеру. Оставьте только один активный softcam.
Как выбрать надёжный источник шары: критерии без названий
Не буду называть конкретные сервисы — это не реклама и не антиреклама. Расскажу, на что смотреть при выборе, чтобы не нарваться на нестабильный источник.
Аптайм сервера и стабильность ECM time
Первое, что стоит спросить или проверить на тестовом доступе — аптайм за последние 30 дней и средний ECM time. Хороший показатель — аптайм выше 99%, ECM time стабильно до 300–400 мс. Если аптайм "99.9%" заявлен, но проверить нечем — это просто слова.
Попросите тестовый доступ на 24–48 часов. За это время успеете увидеть реальную картину: смотрите в веб-интерфейсе OScam или в логах CCcam не только среднее, но и пики ECM time. Именно пики вызывают фризы, а не среднее.
Поддерживаемые CAID и пакеты
Уточняйте конкретные CAID, а не "все европейские пакеты". Разные CAID — разные карты. Сервер может хорошо держать один пакет и плохо — другой. Если нужен конкретный вещатель, спросите именно его CAID и провайдер ID, и проверьте на тесте.
Локальные карты против решары
Это принципиальный момент. Локальная карта (local) на сервере — это физическая смарт-карта в ридере. Решара — это когда сервер сам является клиентом другого сервера и просто пересылает запросы. Каждый хоп решары добавляет задержку и снижает надёжность. Цепочка из трёх хопов даёт суммарный ECM time 600–900 мс даже при хорошей сети.
В OScam в веб-интерфейсе напротив каждого ECM-ответа видна пометка — local или reshare с номером хопа. Это самый честный способ проверить, с чем вы работаете. Серьёзный источник тв шары будет иметь хотя бы часть карт как local.
Тестовый доступ и техподдержка
Если тестовый доступ не дают — странно. Нормальная практика — 24–48 часов без оплаты, чтобы вы могли проверить совместимость с вашим ресивером и нужными каналами. Отсутствие теста часто говорит о нестабильности, которую не хотят показывать заранее.
Техподдержка должна отвечать на конкретные технические вопросы: какой CAID, какой порт, есть ли local-карты. Если в ответ идут только маркетинговые фразы — это сигнал.
Чем ТВ шара отличается от обычного IPTV?
Тв шара передаёт только ключи расшифровки (control words) — сам видеопоток ресивер принимает с тарелки по DVB. Трафик минимальный: несколько килобайт в секунду на ECM-обмен. IPTV транслирует весь видеопоток через интернет — это 3–15 Мбит/с на канал. Соответственно, требования к оборудованию разные: для шары нужна тарелка и ресивер, для IPTV достаточно смарт-ТВ или приставки.
Какой порт используется для CCcam по умолчанию?
Стандартный порт CCcam — 12000. Его прописывают вручную и в C-line клиента, и в конфиге сервера. Newcamd обычно использует диапазон 15000–15050, CS378x — произвольный, задаётся при настройке. Любой из этих портов должен быть открыт в файрволе сервера и проброшен через NAT, если сервер за роутером. Порт 12000 иногда блокируют провайдеры — тогда меняйте на другой в обоих конфигах.
Что лучше для новичка — CCcam или OScam?
CCcam проще: один файл конфига, одна C-line, запустил — работает. OScam гибче и информативнее, но требует настройки минимум трёх файлов (oscam.conf, oscam.server, oscam.user) плюс понимания блока dvbapi. На практике многие начинают с CCcam, потом переходят на OScam с протоколом cccam — получают удобство C-line и гибкость OScam одновременно.
Почему высокий ECM time вызывает фризы?
Control word меняется примерно каждые 10 секунд. Softcam должен успеть получить новый CW до того, как старый устареет. Если ECM time, скажем, 1200 мс — это нормально при коротком окне. Но если запрос уходит и возвращается уже после смены CW — ресивер получает устаревший ключ и картинка замирает. Чаще всего причина — длинная цепочка решары или перегруженный сервер в пиковые часы (вечер, выходные).
Где находится файл конфигурации на Enigma2?
CCcam.cfg — чаще всего /var/etc/CCcam.cfg, реже /usr/keys/CCcam.cfg. OScam хранит конфиги в каталоге: /etc/tuxbox/config/oscam/ или /var/etc/oscam/ — там лежат oscam.conf, oscam.server, oscam.user и oscam.dvbapi. Точный путь зависит от прошивки (OpenATV, OpenPLi, OpenViX и т.д.) и версии пакета softcam. После обновления прошивки всегда проверяйте, куда смотрит init-скрипт командой cat /etc/init.d/oscam.
Как проверить, подключился ли клиент к серверу?
В OScam — открыть веб-интерфейс на порту 8888, раздел Readers. Статус CONNECTED означает, что соединение установлено. В CCcam — через telnet на порт 16000 (по умолчанию) или через Blue Panel на ресивере. Самый быстрый первичный тест: telnet yourserver.example.com 12000 прямо с ресивера. Если терминал завис на подключении или сразу выдал "Connection refused" — порт недоступен и дальнейшую диагностику начинать именно с этого.