Спутниковое ТВ через CCcam: полное руководство 2026
Принять зашифрованные пакеты спутникового ТВ через ресивер с поддержкой CCcam или OScam — задача решаемая даже без физической смарт-карты. Весь секрет в том, что сигнал satellite satellite satellite идёт от транспондера к вашей тарелке в зашифрованном виде, и задача ресивера — получить ключи расшифровки от внешнего сервера по TCP. Этот материал — технический разбор всей цепочки с реальными конфигами, командами диагностики и рабочими watchdog-скриптами.
Как работает связка тарелка → ресивер → cardsharing-сервер
Спутниковое вещание использует систему условного доступа (CAS). Провайдер шифрует видеопоток алгоритмом CSA, и без актуального control word (DCW) вы видите чёрный экран или рябь. DCW меняется каждые 10 секунд у большинства провайдеров — это ключевая цифра для понимания почему возникают freeze.
Путь сигнала: транспондер, DVB-S2, scrambled поток
Сигнал летит от геостационарного спутника (~35 786 км над экватором) на вашу тарелку. LNB конвертирует частоту, ресивер демодулирует DVB-S2 поток. Внутри потока — транспортные пакеты MPEG-TS, среди которых зашифрованные видео/аудио пакеты и служебные пакеты ECM/EMM.
Роль ECM/EMM пакетов и DCW-ключей
ECM (Entitlement Control Message) — зашифрованный пакет, содержащий DCW. Ресивер сам расшифровать ECM не умеет — для этого нужна смарт-карта или внешний sharing-сервер. EMM (Entitlement Management Message) обновляет права подписки на физической карте — при cardsharing они вас напрямую не касаются.
Ресивер извлекает ECM из потока и отправляет его на сервер по TCP. Сервер, у которого есть реальная карта, расшифровывает ECM, извлекает DCW и возвращает его ресиверу. Ресивер применяет DCW — и картинка появляется. Весь цикл должен уложиться менее чем за 10 секунд, иначе — freeze.
Почему ресиверу нужен внешний sharing-сервер
Без физической карты ресивер не знает как расшифровать ECM. Sharing-сервер выступает посредником: у него есть настоящая подписка, он принимает ECM запросы от клиентов и раздаёт DCW. Трафик минимальный — около 1–2 KB/s на канал.
Разница между локальной картой, CAM-модулем и протоколом CCcam
Локальная карта — физическая смарт-карта в слоте ресивера. CAM-модуль — PCMCIA-адаптер с картой или эмулятором для старых ресиверов без Linux. CCcam/OScam — программные клиенты на ресиверах с Enigma2, которые соединяются с удалённым сервером по сети. Старый ресивер без Linux поддерживает только CAM, sharing на нём невозможен напрямую.
Подготовка ресивера: прошивка, плагины, настройки спутников
Прежде чем заниматься конфигами — убедитесь что у вас нормальный сигнал. SNR ниже 10 dB означает что даже идеальный сервер не поможет: ресивер просто не будет стабильно принимать транспортный поток.
Выбор образа: OpenATV, OpenPLi, OpenViX для Enigma2
OpenATV — самый популярный, большой репозиторий плагинов, хорошо поддерживает softcam. OpenPLi — стабильнее, меньше лишнего, предпочтительна для серьёзной работы. OpenViX — хороший выбор для ресиверов Vu+. Версию выбирайте последнюю стабильную под ваше железо — не экспериментируйте с нестабильными билдами на основном ресивере.
Установка CCcam-эмулятора через ipk пакет
На Enigma2 с доступом к сети:
opkg update
opkg install enigma2-plugin-softcams-cccam
Конфиг окажется в /etc/tuxbox/cccam.cfg или /etc/CCcam.cfg — зависит от сборки. Проверить:
find /etc -name "cccam.cfg" 2>/dev/null
Установка OScam через feed репозиторий
opkg update
opkg install enigma2-plugin-softcams-oscam
Конфиги — в /etc/oscam/. Там будут файлы oscam.conf, oscam.server, oscam.user. После установки запуск:
/usr/bin/oscam -b -d 0 -c /etc/oscam &
Настройка satellites.xml и сканирование транспондеров
Актуальный satellites.xml скачиваете с lyngsat или используете встроенный в образ. Под Enigma2 он лежит в /usr/share/enigma2/satellites.xml. После обновления файла — полный пересканировать транспондеры через меню ресивера, иначе новые каналы не появятся.
Проверка SNR, BER, уровня сигнала перед sharing
В меню Enigma2 — Signal / Tuner Info. Нормальные значения для работы: Signal Quality ≥ 70%, SNR ≥ 12 dB, BER = 0 или близко к нулю. Если BER скачет — проблема в установке тарелки или в кабеле, не в sharing-сервере. Чините антенну до того как идти дальше.
Конфигурация CCcam.cfg: построчный разбор
CCcam.cfg — простой текстовый файл. Вот минимальный рабочий пример:
# Подключение к серверу
C: yourserver.example 12000 yourlogin yourpassword
# Порт на котором CCcam слушает входящие подключения (если раздаёте)
SERVER LISTEN PORT: 12000
WEBINFO LISTEN PORT: 16001
# Таймауты и параметры
ZAPTIMEOUT: 3000
DISABLEEMMS: yes
ALLOW TELNETINFO: yes
ACCOUNT: localuser localpass 0 { 0:0:0 }
Параметр C: line — host, port, username, password
Строка C: — это подключение к удалённому серверу. C: host port user pass. После пароля можно добавить дополнительный параметр hop — обычно не нужен, CCcam определяет его автоматически. Несколько строк C: — это failover: если первый сервер недоступен, CCcam пробует следующий.
Параметры F: line для отдачи карты
Если у вас есть физическая карта и вы хотите её раздавать:
F: clientlogin clientpassword 1 0 0 0
Первый числовой параметр — максимальное количество одновременных подключений от этого клиента. Держите его минимальным.
SERVER LISTEN PORT и WEBINFO LISTEN PORT
12000 — стандартный порт CCcam. Можно изменить на любой в диапазоне 1024–65535 — полезно если провайдер блокирует 12000. WEBINFO LISTEN PORT открывает простой веб-интерфейс для мониторинга на указанном порту.
DISABLEEMMS, ALLOW TELNETINFO, ZAPTIMEOUT
DISABLEEMMS: yes — отключает обработку EMM. Рекомендую оставить yes если у вас нет физической карты. ZAPTIMEOUT: 3000 — 3 секунды ожидания ключа перед тем как показать чёрный экран. Значение ниже 2000 ms приводит к ложным ошибкам при высокой нагрузке на сервер.
Перезапуск сервиса и просмотр /tmp/cccam.log
# Перезапуск
killall CCcam && sleep 2 && /usr/bin/CCcam
# Лог в реальном времени
tail -f /tmp/cccam.log
В логе ищите строки connected to и got cw. Если видите только trying to connect без успеха — проверьте порт и учётные данные.
Конфигурация OScam: oscam.conf, oscam.server, oscam.user
OScam — существенно мощнее CCcam: открытый код, поддержка десятков протоколов, веб-интерфейс, гибкая фильтрация. Настраивается тремя основными файлами.
Секция [global] и nice уровень процесса
Файл /etc/oscam/oscam.conf:
[global]
logfile = /var/log/oscam.log
maxlogsize = 1000
nice = -10
preferlocalcards = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
nice = -10 поднимает приоритет процесса OScam — это напрямую влияет на ECM time. На загруженном ресивере с несколькими тюнерами это важно.
Файл oscam.server: protocol, device, caid, ident
[reader]
label = myserver
protocol = cccam
device = yourserver.example,12000
user = yourlogin
password = yourpassword
caid = 0500,0B00
ident = 0500:032830,0B00:000000
group = 1
reconnecttimeout = 30
protocol = cccam означает что OScam подключается к CCcam-серверу. caid — фильтр: OScam будет запрашивать только эти системы. reconnecttimeout = 30 — переподключение через 30 секунд при обрыве.
Файл oscam.user: caid фильтры и betatunnel
[account]
user = localenigma
pwd = localpassword
group = 1
caid = 0500,0B00
betatunnel = 1833.0023:0500
Здесь описывается локальный клиент — Enigma2 подключается к OScam как к локальному серверу. betatunnel нужен для конвертации CAID — например когда провайдер изменил идентификатор, а устаревший ресивер не знает новый.
Web-интерфейс на порту 8888 для мониторинга
Открываете браузер: http://адрес_ресивера:8888. В разделе Readers видите статус подключений и — самое важное — ECM time. Норма: 200–500 ms. Значения 500–800 ms — приемлемо, но на границе. Выше 1000 ms — будут freeze. Выше 2000 ms — канал практически непригоден для просмотра.
Логирование в /var/log/oscam.log и ротация
tail -f /var/log/oscam.log | grep -E "ECM|ERROR|reader"
Без ротации лог съест всю память на ресивере за несколько дней. maxlogsize = 1000 в oscam.conf ограничивает файл 1 МБ — этого достаточно.
Критерии выбора cardsharing-сервера: на что смотреть
Здесь нет правильного ответа без тестирования. Но есть критерии, которые отсеивают плохие варианты до покупки подписки.
Локальные карты vs реселлерские линии (hop 1 vs hop 2+)
Hop — это количество звеньев в цепочке от вашего ресивера до реальной смарт-карты. Hop=1: ECM от вас идёт напрямую к карте. Ожидаемый ECM time: 200–400 ms. Hop=2: между вами и картой ещё один сервер. ECM time: 600–900 ms. Hop=3 и выше: часто нестабильно, freeze на каналах с быстрой сменой ключей. Спрашивайте у провайдера прямо: "это ваши собственные карты или реселлерская линия?"
Аптайм сервера и резервирование линий
Серьёзный сервер публикует статистику аптайма. Приемлемо — 99%+ за последний месяц. Важно: у сервера должно быть резервирование — минимум два независимых канала до интернета. Спросите что происходит при падении основного канала. Если ответ "ничего, ждите" — это не ваш вариант.
Поддержка нужных CAID для ваших спутников
CAID (Conditional Access ID) — четырёхзначный шестнадцатеричный идентификатор системы шифрования. 0500 — Viaccess, 0B00 — Conax, 0622 — Irdeto, 0E00 — PowerVu, 0919 — Videoguard (Sky). Узнать какой CAID у нужного вам канала — смотрите lyngsat.com или логи ресивера при попытке открыть зашифрованный канал. Сервер должен явно подтвердить поддержку нужного CAID и IDENT.
Стабильность ECM time под нагрузкой
ECM time 300 ms в 2 часа ночи и 2000 ms в прайм-тайм — это разные серверы по факту. Тестируйте в пятницу вечером и в воскресенье днём. Если сервер продаёт 500 одновременных подключений с одной картой — ждите деградацию в часы пик. Попросите тестовый доступ именно на эти периоды.
Тестовый период и условия возврата
Адекватный тестовый период — 24–48 часов. За это время вы увидите реальное поведение в разное время суток. Если тест не предлагается или предлагается "час" — это красный флаг. Покупайте минимальный период (1 месяц) до проверки стабильности.
Диагностика типичных проблем приёма
Большинство проблем с satellite satellite satellite приёмом через CCcam/OScam диагностируются за 10 минут если знать что смотреть.
Чёрный экран при переключении канала
Первым делом — проверить что OScam вообще видит запрос. В веб-интерфейсе (порт 8888) открываете раздел Readers. Если запрос пришёл но статус "not found" — сервер не имеет нужного CAID. Если запрос вообще не появляется — проблема на стороне Enigma2, softcam не запущен или подключён неверно. Также проверьте фильтры в oscam.user: неверно указанный caid заблокирует запросы ещё до отправки на сервер.
Заикания и freeze раз в 10 секунд (проблема с ECM)
Классика. Причина почти всегда — ECM time выше 800–900 ms. DCW меняется каждые 10 секунд, ресивер не успевает получить новый ключ до истечения старого. Диагностика:
# Смотрим текущий ECM time в логе
grep "ECM" /var/log/oscam.log | tail -20
# Проверяем соединение с сервером
netstat -an | grep 12000
Если ECM time в норме — проверьте SNR: нестабильный сигнал тоже даёт freeze, но другой характер (помехи, пиксели, а не ровные зависания каждые 10s).
Сообщение 'No signal' или 'Scrambled'
"No signal" — это физическая проблема: кабель, LNB, тарелка. К sharing отношения не имеет. "Scrambled" или "Service unavailable" при наличии сигнала — softcam не запущен, либо подключение к серверу не установлено. Проверьте:
ps aux | grep -i "oscam\|cccam"
Если процесс есть — смотрите лог. Если нет — запускайте softcam.
Сервер подключён но каналы не открываются
Три причины. Первая — сервер не имеет подписки на нужный пакет (CAID есть, но прав нет). Вторая — ваш oscam.user фильтрует этот CAID. Третья — истёк срок подписки на сервере. В веб-интерфейсе OScam смотрите раздел "Users" — должна быть активность. В разделе "Readers" — зелёная иконка и список обслуживаемых CAID.
Высокий ECM time и как его снизить
Последовательно: поднять nice приоритет OScam (nice = -10 в oscam.conf), включить кэширование ECM (cachex — P2P обмен ключами между OScam-серверами), попробовать другую линию с меньшим hop, проверить пинг до сервера:
ping -c 20 yourserver.example | tail -5
Пинг выше 100 ms уже создаёт риски. Выше 200 ms — почти гарантированные проблемы на каналах с быстрой сменой ключей. Если используете 4G/LTE — jitter там выше, нужно увеличить буфер в OScam (ecmcachesize = 500).
Безопасность и стабильность долгосрочной работы
Система без мониторинга и автоматического восстановления — это не система, а везение. Особенно если CCcam периодически падает после нескольких дней работы (это известная проблема некоторых версий).
Использование VPN для шифрования трафика sharing
Трафик CCcam/OScam идёт в открытом виде по TCP. Если провайдер блокирует нестандартные порты — VPN-туннель решает проблему и шифрует трафик. WireGuard предпочтительнее OpenVPN из-за меньшей задержки. На Enigma2 ставится через opkg: opkg install wireguard-tools. Альтернатива — попробовать порт 443 (HTTPS), который блокируют реже всего.
iptables правила для ограничения доступа к серверным портам
Если вы раздаёте карту (F: line), закройте порт для всех кроме известных клиентов:
# Разрешить доступ только с конкретного IP
iptables -A INPUT -p tcp --dport 12000 -s 1.2.3.4 -j ACCEPT
# Заблокировать всех остальных
iptables -A INPUT -p tcp --dport 12000 -j DROP
Ресивер за двойным NAT отдавать F: line не сможет — входящие соединения не пройдут. В этом случае вы только клиент, и iptables на ресивере не нужны.
Watchdog-скрипт для автоперезапуска CCcam
#!/bin/bash
# /usr/local/bin/cccam-watchdog.sh
while true; do
if ! pgrep -x CCcam > /dev/null; then
logger "CCcam watchdog: process not found, restarting"
/usr/bin/CCcam &
fi
sleep 60
done
Добавьте в автозапуск через /etc/init.d/ или добавьте строку в /etc/crontab:
*/1 * * * * root pgrep -x CCcam || /usr/bin/CCcam
Резервный сервер и failover в конфиге
CCcam поддерживает несколько строк C: — при недоступности первого сервера автоматически переключается на следующий. В OScam аналогично: несколько секций [reader] с разными серверами, параметр group определяет порядок приоритетов. Держите хотя бы один резервный сервер с другим физическим расположением.
Мониторинг через MRTG или простой bash-скрипт
#!/bin/bash
# Простая проверка: сервер отвечает на порт?
SERVER="yourserver.example"
PORT=12000
if ! nc -z -w3 $SERVER $PORT 2>/dev/null; then
logger "ALERT: CCcam server $SERVER:$PORT unreachable"
# Здесь можно добавить отправку уведомления
fi
Запускайте через cron каждые 5 минут. Для более глубокого мониторинга — OScam веб-интерфейс отдаёт данные в XML, которые можно парсить и строить графики в MRTG или Grafana.
Граничные случаи, о которых обычно не пишут
Несколько ситуаций заслуживают отдельного упоминания, потому что в них система ведёт себя неочевидно. Конфигурация satellite satellite satellite приёма через sharing имеет свои подводные камни в нестандартных условиях.
PowerVu (CAID 0E00) — отдельная история. Этот стандарт используется на некоторых коммерческих и государственных спутниковых пакетах. OScam может подключиться к серверу, видеть CAID, но каналы не откроются — потому что PowerVu требует дополнительных ключей в файле oscam.keys. Обычный cardsharing здесь не работает.
При нескольких тюнерах и одновременном просмотре разных каналов с разными CAID — каждый канал генерирует отдельный поток ECM-запросов. Убедитесь что ваша подписка на сервере поддерживает нужное количество одновременных потоков, и что oscam.user не ограничивает параллельные запросы.
Спутники с более частой сменой ключей (например, некоторые пакеты меняют DCW каждые 3–5 секунд) требуют сервера с задержкой не выше 150–200 ms. Иначе никакие настройки буфера не спасут.
Какая минимальная скорость интернета нужна для cardsharing?
Сам sharing-трафик смехотворно мал — около 1–2 KB/s на активный канал. Скорость подключения здесь вообще не фактор. Главное — стабильность и пинг до сервера. Меньше 50 ms — отлично, до 100 ms — нормально, выше 150 ms — начинаются риски на каналах с быстрой сменой ключей. Скорость имеет значение только если вы параллельно смотрите IPTV-потоки через тот же канал.
В чём разница между CCcam и OScam протоколами?
CCcam — проприетарный протокол, простая реализация клиент-сервер. Работает, но разработка давно заброшена. OScam — открытый, активно развивается, поддерживает десятки протоколов: cccam, newcamd, gbox, cs378x, radegast. Имеет веб-интерфейс с реальной статистикой ECM time, гибкие фильтры по CAID и IDENT, кэширование, P2P обмен ключами (CacheEx). Если есть выбор — OScam однозначно лучше. CCcam используют в основном когда сервер отдаёт только CCcam-линии и нет других вариантов.
Почему каналы freeze каждые 10 секунд несмотря на хороший сигнал?
Это классический симптом проблем с ECM, не с антенной. DVB-S2 сигнал здесь ни при чём. Провайдер меняет DCW каждые 10 секунд, и если ресивер не успевает получить новый ключ — картинка замирает ровно на длительность одного crypto-периода. Диагностика: открыть OScam webif, раздел Readers, посмотреть ECM time. Если выше 800 ms — искать другую линию с меньшим hop или сервер с меньшей нагрузкой. Также проверить nice-приоритет OScam: renice -10 $(pgrep oscam).
Можно ли использовать одну подписку на двух ресиверах одновременно?
Технически — можно, если настроить локальный OScam как прокси. Первый ресивер запускает OScam, подключённый к внешнему серверу. Второй ресивер подключается к OScam первого через протокол cs378x или newcamd. OScam обрабатывает ECM-запросы с обоих ресиверов и пересылает их на сервер. Но: убедитесь что условия вашей подписки разрешают несколько одновременных подключений. Некоторые серверы ограничивают одним потоком на аккаунт — второй ресивер просто не откроет каналы.
Какой порт открывать в роутере для CCcam-сервера?
Если вы только клиент (строки C: без F:) — пробрасывать порт вообще не нужно. Исходящие TCP-соединения работают через NAT без дополнительной настройки. Проброс портов нужен только если вы сами раздаёте карту через F: line и хотите принимать входящие подключения. В этом случае пробрасываете TCP-порт 12000 (или любой другой из SERVER LISTEN PORT) на IP ресивера в локальной сети. Ресивер за двойным NAT (например, роутер провайдера + ваш роутер) без проброса на обоих уровнях отдавать карту не сможет.
Что такое CAID и как узнать нужный для моего спутника?
CAID — четыре hex-символа, идентифицирующие систему условного доступа. Например: 0500 = Viaccess, 0B00 = Conax, 0622 = Irdeto 2, 0919 = NDS Videoguard (используется в Sky), 0E00 = PowerVu, 0D00 = CryptoWorks. Узнать CAID нужного канала: смотрите lyngsat.com (там указана CAS для каждого транспондера) или просто попробуйте открыть зашифрованный канал на ресивере — в логе OScam появится строка с CAID и IDENT того пакета, который ресивер пытается расшифровать.
Почему сервер показывает 'connected' но каналы остаются зашифрованными?
Три варианта. Первый — сервер подключён, но у него нет подписки на нужный CAID: соединение есть, а прав нет. Проверить в OScam webif раздел Readers: зелёная иконка означает соединение, список CAID показывает что реально обслуживается. Второй — фильтры в oscam.user для вашего локального клиента блокируют этот CAID: пропишите нужные CAID явно или уберите ограничение совсем. Третий — истёк срок подписки на сервере. В этом случае сервер отвечает на handshake но не обрабатывает ECM-запросы — это видно в логе как запросы без ответа.