Шара ТВ: настройка CCcam и OScam сервера в 2026
Если вы читаете это, то уже понимаете базово, что такое шара тв, и хотите конкретики — реальных конфигов, путей к файлам, номеров портов. Без воды. Я прошёл через все типичные грабли при настройке CCcam и OScam на Enigma2-ресиверах, и ниже — то, что реально работает в 2026 году.
Что такое шара ТВ и как работает кардшаринг
Кардшаринг — это обмен ключами дешифрования между ресивером-сервером (у которого есть физическая карта) и ресивером-клиентом. Клиент сам не имеет карты, но получает от сервера control word (CW) — 8-байтный ключ, которым расшифровывается поток. Шара тв работает именно по этому принципу: один сервер с картой, много клиентов.
Принцип обмена control words (CW)
Спутниковый провайдер шифрует видеопоток, меняя CW каждые 7–10 секунд — это стандартный интервал для DVB Conditional Access. Клиент должен получить новый ключ до истечения старого, иначе — фриз. При задержке больше 500–700 мс начинаются видимые артефакты. При задержке больше 10 секунд — чёрный экран.
Вот почему latency критична. Не "важна", не "желательна минимальная" — а критична. Сервер в другом городе с пингом 80 мс вполне работает. Сервер через три решары в другой стране — уже лотерея.
Роль ECM и EMM пакетов
ECM (Entitlement Control Message) — это зашифрованный запрос, который ресивер отправляет в сторону CA-системы за каждым новым CW. Сервер расшифровывает ECM через физическую смарт-карту и возвращает чистый CW клиенту. EMM (Entitlement Management Message) управляет правами доступа на самой карте — это уже история для сервера с картой, а не для клиента.
Разница между сервером и клиентом
Сервер — это ресивер или компьютер с физической смарт-картой в CAM-модуле или встроенном ридере. Клиент — это ресивер, который через сеть подключается к серверу и получает CW. Один сервер может обслуживать несколько клиентов одновременно, но каждая дополнительная нагрузка увеличивает ECM time.
Протоколы CCcam, newcamd, MGcamd, CS378x
Протоколов несколько, и у каждого свои дефолтные порты и синтаксис:
- CCcam — закрытый протокол, порт задаётся в конфиге вручную, обычно 12000–12020. Синтаксис подключения:
C: hostname port user password - newcamd — старый, но надёжный протокол. Порты обычно начинаются с 15000. Требует дополнительный 14-байтный DES-ключ в конфиге.
- CS378x (camd35 over TCP) — компактный протокол, работает по отдельному TCP-порту, обычно в диапазоне 15000–15100. Использует MD5-хеш пароля.
- MGcamd — клиентское ПО, работает с newcamd-серверами. Сам по себе протоколом не является.
Настройка CCcam сервера: конфиги и пути
CCcam — это монолитный демон. Один файл конфигурации, никакой веб-морды, зато простота настройки компенсирует отсутствие гибкости.
Файл CCcam.cfg и его расположение (/var/etc/CCcam.cfg)
На Enigma2-ресиверах конфиг лежит в /var/etc/CCcam.cfg. На некоторых старых имиджах — в /usr/keys/CCcam.cfg. Если вы на OpenATV 7.x или OpenPLi 9.x, проверяйте именно /var/etc/. Файл — обычный текст, правится через Notepad++ или nano по SSH.
Строка F: для добавления пользователей
Строка F: добавляет локального пользователя на сервере. Синтаксис:
F: username password hops_down hops_up uphops { caid:ident }
Реальный пример:
F: myuser mypassword123 1 0 0 { 0:0:1 }
F: seconduser pass456 1 0 0 { 0500:000000 }
Третье поле — максимальное количество хопов, которое сервер передаёт клиенту. Четвёртое и пятое — ограничения на апстрим. { 0:0:1 } означает доступ ко всем caid без ограничений. Если хотите ограничить пользователя конкретным провайдером — пишите его caid явно.
Строка C: для подключения к удалённому серверу
Строка C: — это клиентское подключение вашего ресивера к удалённому CCcam-серверу:
C: hostname port username password yes/no
Например:
C: share.example.com 12000 myclient mypassword yes
Последний параметр (yes/no) включает или отключает передачу карт апстрим-серверу. Обычно no, если вы чистый клиент без собственных карт. Важно: если у сервера динамический IP — используйте DynDNS-домен вместо IP-адреса, иначе после каждой смены адреса придётся обновлять конфиг вручную.
Параметры hops и SID-фильтрация
Hops — это глубина решары. Один хоп = прямое подключение к серверу с картой. Два хопа = ваш ресивер подключается к промежуточному серверу, который подключается к источнику. Каждый хоп добавляет задержку и точку отказа. В CCcam.cfg можно ограничить максимум через HOPS: 1 в глобальных параметрах.
SID-фильтрацию (Service ID — конкретные каналы) включают через секцию IGNORE SIDS: или ALLOW SIDS:. Это актуально, если хотите разрешить пользователю только определённые каналы пакета.
Перезапуск демона на Enigma2:
init 4 && init 3
Или через Telnet/SSH:
killall -9 CCcam && CCcam &
Настройка OScam: oscam.conf, oscam.server, oscam.user
OScam — это другой уровень. Открытый исходный код, поддержка десятков протоколов одновременно, веб-интерфейс мониторинга. Настройка сложнее, но результат стоит вложенного времени. Для серверной стороны OScam объективно лучше CCcam.
Структура секций [global], [cccam], [newcamd]
Минимальный oscam.conf:
[global]
logfile = /tmp/oscam.log
serverip = 0.0.0.0
usrfile = /var/log/oscam.usr
[webif]
httpport = 8888
httpuser = admin
httppwd = admin
httprefresh = 10
[cccam]
port = 12000
version = 2.3.0
reshare = 1
[newcamd]
port = 15000@0500:000000
key = 0102030405060708091011121314
Секция [webif] с портом 8888 — это то, что даёт вам мониторинг через браузер. Не пропускайте её. Секция [cccam] активирует CCcam-протокол на порту 12000 — именно сюда будут подключаться клиенты с C:-строкой.
Reader в oscam.server и параметры protocol
Файл /etc/oscam/oscam.server (или /etc/tuxbox/config/oscam/oscam.server на Enigma2) описывает каждый источник карт. Пример подключения к внешнему CCcam-серверу как клиент:
[reader]
label = external_cccam
protocol = cccam
device = share.example.com,12000
user = myclient
password = mypassword
group = 1
caid = 0500
reconnecttimeout = 15
connectoninit = 1
Параметр group — это числовой идентификатор группы ридеров. Пользователи в oscam.user получают доступ только к ридерам из разрешённых групп. Если у вас несколько ридеров с одинаковым caid — OScam сам выберет самый быстрый, но конфликты всё равно бывают (подробнее ниже в разделе диагностики).
Назначение caid, ident, group в oscam.user
Файл oscam.user:
[account]
user = webclient1
pwd = clientpass
group = 1
caid = 0500
ident = 0500:000000
au = 1
uniq = 0
Поле caid ограничивает пользователя конкретной системой условного доступа. ident сужает до конкретного провайдера внутри системы. au = 1 разрешает обновление авторизации (EMM). uniq = 0 означает, что один логин можно использовать с нескольких адресов — для продакшна лучше ставить uniq = 2.
Веб-интерфейс мониторинга (httpport)
Открываете браузер и идёте на http://<ip-ресивера>:8888. Там видно статус каждого ридера, ECM time в миллисекундах, количество активных клиентов, декодированные каналы в реальном времени. Это не "приятная фича" — это ваш главный инструмент диагностики.
Если OScam работает на ПК под Linux, а не на ресивере, конфиги обычно лежат в /etc/oscam/. На Enigma2 с разными имиджами расположение гуляет: OpenATV использует /etc/tuxbox/config/oscam/, некоторые сборки кладут всё в /usr/keys/. Проверяйте через find / -name oscam.conf 2>/dev/null.
Диагностика проблем: фризы, ошибки ECM и пустой экран
Большинство проблем с шарой тв делятся на три категории: сетевые задержки, неправильные caid/ident в конфигах, и перегрузка сервера. Вот как это диагностировать без угадайки.
Анализ логов OScam и CCcam
Лог OScam (/tmp/oscam.log по дефолту) — читайте его в реальном времени:
tail -f /tmp/oscam.log | grep -E "ECM|CAID|decode"
Лог CCcam на Enigma2:
tail -f /tmp/CCcam.log
В логах OScam ищите строки вида ECM 450ms — это время обработки запроса. Нормально — до 300–500 мс. Плохо — 700 мс и выше. Катастрофа — 1500 мс и выше, фризы неизбежны.
Высокий ECM time и его причины
Причин несколько. Первая — физическая дистанция до сервера. Пинг до хоста проверяется банально:
ping -c 20 share.example.com
Если среднее выше 150 мс — ищите сервер ближе географически. Вторая причина — цепочка решар. Три хопа — это три дополнительных RTT на каждый ECM-запрос. Третья — перегрузка самого сервера: если на одной карте висит 50 клиентов одновременно, ECM time растёт для всех.
Ошибка 'card not found' и проверка caid/ident
Это самая частая ошибка при первичной настройке. Означает одно из двух: либо у сервера нет карты с нужным caid, либо caid в ваших конфигах не совпадает с тем, что реально передаёт канал.
Как проверить caid канала на Enigma2: зайдите в информацию о канале (кнопка Info дважды) — там будет строка CAID. Сравните с тем, что прописано в oscam.server и oscam.user. Если провайдер сменил систему условного доступа или добавил новый ident — обновляйте фильтры.
При наличии нескольких ридеров с одинаковым caid возникает конфликт приоритетов. OScam обычно выбирает ридер с наименьшим ECM time, но если приоритеты не настроены явно через параметр cccmaxhops или группы — поведение непредсказуемо. Решение: явно назначить приоритеты через cacheex или использовать разные группы для каждого ридера.
Сетевые проблемы: ping, latency, открытие портов
Проверить, открыт ли порт сервера:
telnet share.example.com 12000
Если не подключается — либо порт закрыт на стороне сервера, либо ваш роутер блокирует исходящий трафик. Проверить, слушает ли OScam нужный порт локально:
netstat -tlnp | grep oscam
Если вы поднимаете сервер и хотите принимать входящие подключения за NAT — нужен проброс порта на роутере. Для CCcam: проброс TCP-порта 12000 на локальный IP ресивера. Для newcamd — порт 15000. Если IP роутера динамический, без DynDNS-сервиса клиенты будут терять подключение после каждой смены адреса.
Одновременная работа CCcam и OScam на одном ресивере возможна через cardserver-режим: OScam выступает как CA-сервер, а CCcam получает от него карты через локальный loopback-порт. В этом случае в CCcam.cfg добавляется строка L: 127.0.0.1 15050 user pass, а OScam слушает newcamd на 127.0.0.1:15050.
Как выбрать провайдера шары: критерии без названий
Конкретные названия сервисов здесь называть не буду — рынок меняется быстро, и то, что работало год назад, сегодня может быть мёртвым проектом. Но критерии выбора постоянны.
Стабильность аптайма сервера
Нормальный аптайм для рабочего сервера шары тв — 99% и выше за месяц. Это означает суммарно не больше 7 часов даунтайма в месяц. Всё, что ниже — это либо нестабильное железо, либо проблемы с хостингом, либо решара третьего-четвёртого хопа. Спрашивайте у потенциального провайдера статистику аптайма за последние 30 дней. Если не могут показать — идите дальше.
Низкий ECM time и количество хопов
Один хоп — прямое подключение к источнику с физической картой — даёт минимальный ECM time, обычно 100–250 мс при нормальной сети. Каждый дополнительный хоп добавляет один RTT к этому времени. На практике это 50–200 мс за хоп в зависимости от географии.
Хороший провайдер честно указывает количество хопов до источника. Если написано "1 hop" — проверьте это через веб-интерфейс OScam после подключения: там видно реальное значение в поле hops для каждого ридера. Цифра 2 вместо заявленной 1 — повод для вопроса.
Поддержка нужных caid и пакетов
Убедитесь, что сервер поддерживает именно те caid, которые нужны вам. Это не очевидно: у одного провайдера может быть карта для caid 0500 (Viaccess), но не быть для 0604 (Irdeto). Список поддерживаемых caid должен быть явно указан до оплаты.
Если провайдер сменил caid или ident на своём спутниковом пакете — вам придётся обновить фильтры в oscam.server и oscam.user. Нормальный хостинг шары уведомляет клиентов о таких изменениях заранее. Если уведомлений нет — это плохой знак.
Тестовый период и техподдержка
24–48 часов тестового доступа достаточно, чтобы проверить совместимость caid, стабильность ECM time и реальный аптайм. Отказ давать тест — это или автоматизированный скам-сервис, или провайдер сам не уверен в качестве.
Техподдержка должна знать разницу между oscam.conf и oscam.server. Если в ответ на вопрос про caid фильтрацию вам присылают скрин с непонятными настройками или говорят "перезагрузите ресивер" — это не поддержка.
Какой порт по умолчанию использует CCcam?
CCcam не имеет жёстко зафиксированного дефолтного порта — он задаётся в конфиге строкой SERVER LISTEN PORT: 12000 или аналогичной. На практике чаще всего используют диапазон 12000–12020. Для newcamd стандарт — порты от 15000 и выше, каждый caid на своём порту. Для camd35/CS378x — отдельный TCP-порт, часто в районе 15000–15100.
Почему каналы фризят при нормальном интернете?
Скорость интернета тут вообще ни при чём — трафик CW минимальный. Фризы — это высокий ECM time. Причины: географически далёкий сервер, цепочка из нескольких хопов-решар, перегрузка источника. Откройте веб-интерфейс OScam на порту 8888 и смотрите ECM time для вашего ридера. Если больше 500 мс — ищите причину. Если больше 700 мс — фризы неизбежны.
Где находятся конфиги OScam на ресивере Enigma2?
Зависит от имиджа. OpenATV, OpenPLi, OpenViX — обычно /etc/tuxbox/config/oscam/. Некоторые старые сборки кладут файлы в /usr/keys/ или /var/etc/. Файлы конфигурации: oscam.conf, oscam.server, oscam.user. Найти точное расположение: find / -name "oscam.conf" 2>/dev/null.
В чём разница между CCcam и OScam?
CCcam — закрытый проприетарный софт, прост в настройке, один файл конфигурации, нет веб-интерфейса. OScam — открытый исходный код, поддерживает одновременно CCcam, newcamd, CS378x и другие протоколы, имеет полноценный веб-мониторинг с ECM time по каждому ридеру. Для серверной стороны OScam однозначно универсальнее. CCcam удобен как простой клиент, если не нужна тонкая настройка.
Что означает ошибка 'card not found'?
Сервер не может найти карту с нужным caid для расшифровки. Причина первая: у сервера реально нет карты для этого провайдера. Причина вторая: caid в вашем oscam.server или oscam.user не совпадает с тем, что передаёт канал. Проверьте caid канала через информацию о нём на ресивере и сравните с фильтрами в конфигах. Если недавно был переход провайдера на новую CA-систему — обновите caid и ident.
Сколько хопов считается нормой для стабильной шары?
Один хоп — это прямое подключение к серверу с физической картой. Это идеал. При одном хопе ECM time определяется только сетевой задержкой. Два хопа — допустимо, если оба сервера близко. Три хопа и больше — это решара решары, ECM time растёт непредсказуемо, стабильность падает. Реальное значение хопов можно увидеть в веб-интерфейсе OScam в статусе ридера.