Шаринг TV: настройка CCcam и OScam в 2026
Если вы уже разбирались с sharing tv настройка CCcam OScam и застряли на этапе конфигурации — вы не одиноки. Большинство гайдов в сети либо устарели, либо дают общие слова без реальных путей к файлам и рабочего синтаксиса. Здесь всё иначе: конкретные команды, точный синтаксис строк, реальные проблемы и как их решать.
Материал рассчитан на тех, кто работает с ресиверами на Enigma2 — OpenATV, OpenPLi, VTi — и уже понимает, что такое ECM и зачем нужен шаринг. Теория — минимальная, практика — максимальная.
Что такое шаринг TV и как работает протокол
Шаринг TV — это не магия. Это конкретный сетевой обмен, который происходит каждые несколько секунд между вашим ресивером и сервером с физической смарт-картой.
Принцип работы card sharing на уровне ECM/EMM
Когда ресивер принимает зашифрованный сигнал канала, он извлекает из него ECM-пакет (Entitlement Control Message). Этот пакет содержит зашифрованный control word — ключ, которым декодируется видеопоток прямо сейчас. Сам по себе ресивер расшифровать его не может — для этого нужна авторизованная смарт-карта оператора.
Вот тут и начинается шаринг: ресивер отправляет ECM на удалённый сервер, там карта расшифровывает его и возвращает control word обратно. Ресивер подставляет его в декодер — канал открывается. Весь цикл должен укладываться в 200–400 мс, иначе начнутся фризы.
EMM (Entitlement Management Message) — отдельная история. Это сообщения оператора для обновления прав на карте. Если карта за NAT или не получает EMM-пакеты, её подписка через время перестаёт работать. Поэтому в OScam параметр au (auto-update) так важен при работе с локальной картой.
Разница между CCcam и OScam
CCcam — это закрытый протокол и одновременно название программного обеспечения. Он появился раньше, проще в настройке, и большинство сервисов по-прежнему работают именно на нём. Но архитектура у него монолитная: один демон, один конфиг, ограниченные возможности для гибкой настройки.
OScam — open source, активно развивается, и это совсем другой уровень гибкости. Он поддерживает десятки протоколов, умеет работать с несколькими ридерами одновременно, балансирует нагрузку и имеет веб-интерфейс для мониторинга. На серверной стороне OScam выигрывает почти всегда. Для клиентского ресивера разница уже не такая очевидная.
Newcamd, CCcam и CS378x: какой протокол выбрать
Newcamd — старый, стабильный, работает практически везде. Минус — передаёт данные в слабо зашифрованном виде, и у него нет встроенной поддержки reshare. Хорош для простых клиентских подключений, особенно если сервер отдаёт строку Newcamd.
CCcam-протокол поверх OScam (через секцию [cccam]) — золотая середина. Сервер принимает CCcam-клиентов, но внутри использует OScam-логику с балансировкой и приоритетами ридеров.
CS378x (Camd35 over UDP) работает быстрее по задержкам, но менее стабилен при потере пакетов. На плохих каналах связи лучше не использовать. Enigma2-плагины типа mgcamd и CCcam его поддерживают, но на практике CCcam-протокол встречается чаще на 90% сервисов.
Настройка сервера и клиента CCcam
CCcam читает единственный конфигурационный файл при старте. Никакой базы данных, никаких дополнительных зависимостей — всё в тексте.
Структура файла CCcam.cfg и путь /var/etc/CCcam.cfg
На большинстве образов Enigma2 файл лежит по пути /var/etc/CCcam.cfg. На некоторых старых образах — /etc/CCcam.cfg. В OpenATV 7.x и OpenPLi 9.x стандартный путь именно /var/etc/. Лучше проверить командой:
find / -name "CCcam.cfg" 2>/dev/null
Файл должен иметь права 600, иначе CCcam откажется его читать или будет вести себя непредсказуемо:
chmod 600 /var/etc/CCcam.cfg
После каждого изменения конфига — перезапуск демона. На Enigma2:
/etc/init.d/CCcam restart
Строки F: для клиентов и C: для подключения к серверу
Синтаксис CCcam.cfg жёсткий — одна директива, одна строка. Пустые строки и комментарии с # разрешены.
Строка F: определяет локального клиента, который может подключаться к вашему CCcam-серверу:
F: username password 1 0 0
Поля: логин, пароль, reshare (1 = разрешить), минимальный downhops для reshare, максимальный downhops. Если reshare = 0, клиент получает контент, но не может его перераздавать дальше.
Строка C: — исходящее подключение к вышестоящему серверу:
C: hostname.example.com 12000 myuser mypassword
Формат: хост, порт, логин, пароль. Никаких лишних полей — CCcam не простит синтаксическую ошибку молча, он просто проигнорирует строку.
Несколько строк C: добавляют резервные подключения. CCcam пробует их по порядку при недоступности основного.
Параметры порта (по умолчанию 12000) и hops/distance
CCcam слушает порт 12000 по умолчанию. Изменить его можно директивой в конфиге:
SERVER LISTEN PORT: 12001
Hops — количество "прыжков" от источника (физической карты) до вашего ресивера. Hops = 1 означает, что вы подключены напрямую к серверу с картой. Hops = 2 — уже через посредника. С каждым хопом ECM time растёт. Если сервер отдаёт hops 3 и выше — это тревожный сигнал.
Параметр MINIMIZE CARDSHARING DISTANCE: yes заставляет CCcam выбирать путь с минимальным количеством хопов при наличии нескольких источников. Рекомендую включать всегда.
Настройка OScam: oscam.server, oscam.user и oscam.conf
OScam — это уже не один файл, а целый каталог конфигураций. Зато гибкость такая, что CCcam рядом не стоял.
Каталог /etc/tuxbox/config или /var/etc и структура конфигов
Зависит от образа. В OpenATV и OpenPLi основной каталог — /etc/tuxbox/config/. В VTi нередко используется /var/etc/. Конфиги OScam:
oscam.conf— глобальные настройки, протоколы, веб-интерфейсoscam.server— описание ридеров (физических карт и сетевых подключений)oscam.user— учётные записи клиентовoscam.services— фильтрация по SID (опционально)
Минимальный oscam.conf для работающей конфигурации выглядит так:
[global]
logfile = /tmp/oscam.log
loghistorysize = 1000
debug = 0
nice = -1
[cs378x]
port = 3478
[cccam]
port = 12000
[webif]
httpport = 8888
httpuser = admin
httppwd = admin
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
Секция [reader] в oscam.server для физической карты и сетевых ридеров
Для подключения к внешнему CCcam-серверу через OScam:
[reader]
label = upstream_server
protocol = cccam
device = hostname.example.com,12000
user = myuser
password = mypassword
caid = 1810
ident = 1810:000000
group = 1
au = 1
reconnecttimeout = 30
Для локальной физической карты в USB-ридере (например, Smargo):
[reader]
label = local_card
protocol = mouse
device = /dev/ttyUSB0
caid = 0919
ident = 0919:000000
group = 1
au = 1
cardmhz = 357
Параметр cardmhz задаёт тактовую частоту карты. 357 = 3.57 МГц, стандарт для большинства карт. Некоторые карты требуют 600 (6 МГц) — если карта не читается, попробуйте поменять.
Параметр reconnecttimeout — сколько секунд ждать перед повторным подключением при разрыве. Рекомендую 30–60 секунд, не меньше — иначе сервер может заблокировать за слишком частые переподключения.
Привязка caid/ident и группы доступа в oscam.user
В oscam.user каждый клиент описывается отдельной секцией:
[account]
user = client1
password = secret123
group = 1
au = upstream_server
caid = 1810
ident = 1810:000000
uniq = 0
monlevel = 0
Параметр group связывает клиента с ридерами — клиент группы 1 получает доступ только к ридерам, у которых тоже group = 1. Это удобно для разграничения: разные клиенты — разные ридеры, без пересечений.
au в oscam.user указывает, через какой ридер идут EMM-обновления для этого клиента. Если au не задан или указан неверный ридер — карта клиента не будет получать обновления прав.
caid и ident — фильтры. Если задать их в oscam.user, клиент сможет запрашивать расшифровку только для указанных систем. Без них клиент получает всё, что умеет ридер. Для безопасности лучше ограничивать.
Веб-интерфейс OScam на порту 8888 позволяет видеть статус каждого ридера в реальном времени, ECM time, количество запросов и ошибок — незаменимая вещь при диагностике.
Диагностика и решение типичных ошибок
Большинство проблем с sharing tv настройка CCcam OScam решаются за 10 минут, если знать, куда смотреть. Самая частая ошибка — лезть в конфиги, не прочитав логи.
Анализ логов: oscam.log и уровни логирования
По умолчанию OScam пишет в /tmp/oscam.log (как задано в oscam.conf). Смотреть лог в реальном времени:
tail -f /tmp/oscam.log
Параметр debug в секции [global] управляет детальностью. Значение 0 — только ошибки и предупреждения. Для диагностики временно выставьте debug = 64 (ECM/EMM логи) или debug = 255 для полного вывода. Потом обязательно верните на 0 — иначе /tmp/ переполнится.
Параметр loghistorysize = 1000 задаёт количество строк лога, доступных через веб-интерфейс. При активной диагностике можно поднять до 5000.
У CCcam логи менее информативны. Обычно лежат в /tmp/CCcam.log или /var/log/CCcam.log. Уровень логирования задаётся директивой:
DEBUG LEVEL: 8
Ошибки 'card not found', freeze и долгое открытие каналов
"Card not found" в логах OScam обычно означает одно из трёх: неверный CAID, неверный ident, или ридер вообще не подключён. Проверьте в веб-интерфейсе на порту 8888 — статус ридера должен быть "connected" или "cardok".
Если канал открывается, но через 10–30 секунд зависает — скорее всего ECM time на грани таймаута. Посмотрите в веб-интерфейсе: если ECM time стабильно выше 600–800 мс — линия перегружена или сервер далеко.
Фризы только на HD-каналах при нормальной работе SD — это специфическая проблема. HD-каналы меняют control word чаще (иногда каждые 2 секунды вместо 10), и при ECM time 400–500 мс система просто не успевает. Решение — либо найти более близкий сервер, либо уменьшить hops.
Конфликт CAID/ident при нескольких ридерах: если два ридера обслуживают одинаковые CAID, OScam может посылать ECM-запросы на менее предпочтительный. Используйте параметр priority в oscam.server или oscam.dvbapi для явной расстановки приоритетов.
Проверка портов, NAT и проброса через firewall
Самый простой тест доступности сервера — telnet:
telnet hostname.example.com 12000
Если подключение зависает или отказывает — проблема сетевая, не в конфиге. Проверьте ping, потом traceroute.
Если ресивер за двойным NAT или CGNAT провайдера — пробросить порт наружу для входящих подключений практически невозможно без VPN или reverse proxy. Для исходящих подключений (когда ваш ресивер подключается к внешнему серверу) это не проблема — NAT здесь работает нормально.
Проброс порта на роутере: для CCcam нужно открыть TCP-порт 12000 (или тот, что задан в конфиге). Для OScam веб-интерфейса — 8888. Делается в разделе "Port Forwarding" роутера: внешний порт → IP ресивера → внутренний порт.
Если iptables включён на ресивере:
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
Как выбрать провайдера шаринга: критерии без названий
Здесь не будет рекомендаций конкретных сервисов. Но критерии оценки вполне объективные.
Стабильность аптайма и ECM time как метрики качества
Нормальный ECM time для хорошего сервиса — до 300 мс. 300–500 мс — приемлемо, но на HD-каналах могут быть фризы. Выше 500 мс — плохо, выше 800 мс — неприемлемо. Эти цифры можно видеть в веб-интерфейсе OScam сразу после подключения ридера.
Uptime смотрите за период не менее месяца. Любой сервис может работать неделю без перебоев. Реальная стабильность проверяется временем, особенно в периоды обновления ключей оператором.
Хороший провайдер имеет резервные линии — когда основной сервер недоступен, вы автоматически переключаетесь на резервный. В CCcam.cfg это несколько строк C:, в OScam — несколько ридеров с одинаковым CAID и параметром priority.
Поддержка нужных caid и локальных карт
CAID — это идентификатор системы условного доступа. Перед выбором сервиса убедитесь, что он поддерживает именно ваши CAID. Например, 0919 — Videoguard (Sky), 1810 — Nagravision, 0B00 — Conax, 1830 — Nagravision 3. Сервисы обычно публикуют список поддерживаемых CAID в описании.
Если у вас есть локальная физическая карта с EMM — настройте OScam с au = 1 для этого ридера. Без обновления EMM карта через 30–90 дней перестаёт расшифровывать новые control words. Это не баг конфигурации, это механизм защиты оператора.
Признаки ненадёжного сервиса
Красные флаги: нет тестового периода вообще, поддержка только через форум без личного кабинета, непрозрачные условия по количеству подключений. Нормальный сервис даёт хотя бы 24–48 часов теста, отвечает на технические вопросы и прямо указывает, сколько одновременных подключений включено в тариф.
Ещё один признак — отсутствие информации о hops. Если провайдер не говорит, сколько хопов до карты, скорее всего их много. А значит, ECM time будет высоким.
При качественной настройке sharing tv настройка CCcam OScam должна работать практически незаметно — каналы открываются мгновенно, фризов нет, логи чистые. Если это не так — проблема либо в конфиге, либо в качестве самой линии.
Где находится файл CCcam.cfg на ресивере с Enigma2?
Стандартный путь — /var/etc/CCcam.cfg для большинства современных образов (OpenATV, OpenPLi). На некоторых старых прошивках — /etc/CCcam.cfg. Проверить можно командой find / -name "CCcam.cfg" 2>/dev/null через telnet или SSH. Редактируется через FTP-клиент (FileZilla, WinSCP) или напрямую через nano/vi. После изменений — обязательно перезапуск: /etc/init.d/CCcam restart.
Какой порт по умолчанию использует CCcam?
Порт 12000 (TCP). Именно его нужно указывать в строке C: при подключении к серверу и именно его пробрасывать на роутере, если хотите принимать входящие подключения. Изменить порт можно директивой SERVER LISTEN PORT: 12001 в CCcam.cfg. Не забудьте обновить настройки NAT на роутере после смены порта.
Чем OScam лучше CCcam для сервера?
Прежде всего — гибкостью. OScam поддерживает десятки протоколов одновременно (CCcam, Newcamd, CS378x и другие), умеет балансировать нагрузку между несколькими ридерами, корректно работает с EMM-обновлениями для локальных карт через параметр au. Плюс веб-интерфейс на порту 8888 — видите ECM time, статус ридеров и ошибки в реальном времени. CCcam всё это не умеет.
Что означает высокий ECM time и как его снизить?
ECM time — время в миллисекундах от отправки ECM-запроса до получения control word. При значениях выше 500–600 мс начинаются фризы, особенно на HD-каналах. Снижается тремя способами: выбрать сервер географически ближе (меньше RTT), уменьшить количество hops (чем ближе к физической карте — тем лучше), или разгрузить линию (меньше одновременных клиентов на одной карте).
Почему канал открывается, но периодически замерзает (freeze)?
Причин несколько. Нестабильная линия с потерями пакетов — проверьте ping и traceroute до сервера. Перегрузка сервера — ECM time растёт в часы пик. Неверный CAID или ident — OScam выбирает не тот ридер. Проблема NAT — если за двойным NAT, UDP-пакеты могут теряться. Диагностика: смотрите ECM time в веб-интерфейсе OScam (порт 8888) и логи с debug = 64.
Как проверить, что сервер шаринга доступен по сети?
Три шага. Сначала ping hostname — базовая доступность. Потом telnet hostname 12000 — если порт открыт, вы увидите соединение (или мусор CCcam-протокола, что тоже хорошо). Наконец, откройте веб-интерфейс OScam по адресу http://ip-ресивера:8888 — там статус каждого ридера обновляется каждые несколько секунд. "Connected" или "cardok" означает, что всё работает.