ТВ Шара: настройка CCcam и OScam сервера в 2026
Если вы занялись настройкой тв шара самостоятельно — правильно делаете. Большинство инструкций в сети дают готовую строку и говорят «вставь и смотри». Но когда что-то идёт не так (а оно обязательно пойдёт), разобраться без понимания структуры невозможно. Здесь я разберу всё по-настоящему: синтаксис конфигов, порты, логи, диагностику — без воды и без рекламы провайдеров.
Что такое ТВ шара и как работает кардшаринг
Схема простая. Есть сервер с физической смарт-картой. Эта карта умеет расшифровывать сигнал конкретного спутникового провайдера. Когда зашифрованный канал меняет ключ шифрования (а это происходит каждые несколько секунд), ресивер посылает на сервер ECM-запрос (Entitlement Control Message). Сервер прогоняет его через карту и возвращает DCW — Descrambling Control Word, то есть текущий ключ расшифровки.
Ресивер применяет этот ключ и выдаёт чистое изображение. Вся цепочка должна уложиться в 200–400 миллисекунд — иначе пойдут фризы. EMM-запросы (Entitlement Management Message) — это отдельная история, они управляют правами карты, и их тоже нужно правильно пробрасывать.
Принцип работы протокола CCcam
CCcam — это проприетарный протокол, изначально написанный для ресиверов с Enigma2. Он работает на TCP, по умолчанию на порту 12000. Клиент подключается к серверу, авторизуется парой логин/пароль и начинает слать ECM-запросы. Сервер отвечает DCW.
Протокол относительно простой, что делает его популярным — но у него есть ограничения. Нет встроенного приоритета запросов, нет нормального управления балансировкой нагрузки. При большом количестве клиентов сервер начинает тупить, и ECM time растёт.
Чем OScam отличается от CCcam
OScam — это open source, и это меняет всё. Он поддерживает десятки протоколов одновременно: CCcam, newcamd, camd35, radegast, gbox. Плюс DVBAPI для прямого взаимодействия с Linux DVB-стеком на приставке без отдельного эмулятора.
Главное преимущество OScam — детальный контроль. Можно назначить группы ридеров, настроить приоритеты, фильтровать ECM по SID и CAID, смотреть статистику в реальном времени через веб-интерфейс. CCcam для всего этого — чёрный ящик. Для сервера я бы рекомендовал OScam всегда, CCcam — только если нужен быстрый старт на клиенте.
Что нужно для запуска: ресивер, эмулятор, доступ к карте
Минимальный набор для клиента: ресивер с Enigma2 (или Android-приставка с поддержкой эмулятора), установленный CCcam или OScam, и данные для подключения — хост, порт, логин, пароль. Для сервера дополнительно нужна физическая смарт-карта в кардридере или USB-кардридер типа Phoenix.
На Enigma2-боксах (Vu+, Dreambox, GigaBlue и подобные) всё это устанавливается через плагин-менеджер или вручную через SSH. На чистом Linux — собираете из исходников или ставите бинарник под свою архитектуру.
Настройка клиента CCcam: структура конфига
Это тот раздел, где большинство инструкций провально молчат о деталях. Просто дают строку. Давайте разберём, что в ней что.
Файл CCcam.cfg и строка C-line
На Enigma2 конфиг лежит по пути /var/etc/CCcam.cfg. Реже встречается /etc/CCcam.cfg — зависит от дистрибутива. Редактировать можно по FTP (FileZilla, WinSCP) или через SSH. После правки нужен рестарт: killall -9 CCcam или через плагин.
Важный момент: если вы редактируете файл в Windows Блокноте — скорее всего сломаете его. Блокнот добавляет BOM-маркер или сохраняет в UTF-16, а CCcam ждёт чистый UTF-8 без BOM. Используйте Notepad++ с явным выбором кодировки, либо редактируйте прямо на ресивере через nano.
Синтаксис: C: host port username password
Строка C-line выглядит так:
C: myserver.example.com 12000 mylogin mypassword
По полям: C: — тип строки (Client). Дальше хост — это домен или IP сервера. Порт — обычно 12000, но может быть любым, уточняйте у администратора сервера. Логин и пароль — без пробелов, регистрозависимые.
Можно добавить параметры в конце строки: no для отключения EMM, 01 для версии протокола. Полная строка с параметрами:
C: myserver.example.com 12000 mylogin mypassword no 01
Пятый параметр — allow EMM (yes/no). Шестой — версия CCcam для handshake. Если сервер требует конкретную версию — уточняйте.
Параметры F-line и расшаривание карты
F-line — это Friend-line, используется для настройки сервера CCcam. Если вы раздаёте карту другим клиентам:
F: clientlogin clientpassword 1 0 0 0 { 0:0:1 }
Поля: логин клиента, пароль, максимальный hop (1 = только ваши карты, не пересылать чужие), allow EMM (0 = нет), allow remote cards (0 = нет), минимальный hop, и фильтр по CAID:provid:SID в фигурных скобках. Пустые скобки {} означают — раздавать всё.
Где лежат конфиги: /var/etc/ и /etc/
На Enigma2: /var/etc/CCcam.cfg — основное расположение. Логи CCcam пишет в /tmp/CCcam.log или /var/log/CCcam.log в зависимости от версии. Посмотреть активные подключения можно через telnet на порт 16001 — там веб-статус в текстовом виде.
На чистом Linux-сервере конфиг обычно в /etc/CCcam.cfg, а бинарник в /usr/local/bin/CCcam.
Настройка OScam: oscam.server, oscam.user и oscam.conf
OScam сложнее CCcam, но эта сложность оправдана. Три основных файла: oscam.conf — глобальные настройки, oscam.server — описание ридеров (источников карт), oscam.user — описание клиентов. Все файлы лежат в /etc/oscam/ или /usr/local/etc/oscam/.
Структура oscam.conf и веб-интерфейс на порту 8888
Минимальный oscam.conf:
[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 1000
nice = -1
[webif]
httpport = 8888
httpuser = admin
httppwd = password
httprefresh = 10
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
Секция [webif] включает браузерный интерфейс. Открываете http://IP-сервера:8888 в браузере и видите всю статистику в реальном времени: ECM time по каждому клиенту, статус ридеров, нагрузку. Это убийственно удобно для диагностики.
Параметр httpallowed — обязательно ограничьте доступ своей сетью, не оставляйте открытым на весь интернет.
Описание ридера в oscam.server
Пример ридера, подключающегося к CCcam-серверу:
[reader]
label = my_cccam_reader
protocol = cccam
device = myserver.example.com,12000
user = mylogin
password = mypassword
cccversion = 2.3.0
cccmaxhops = 1
group = 1
reconnecttimeout = 30
Поле group — ключевое. Оно связывает ридер с пользователями в oscam.user. Ридер с group = 1 доступен только клиентам, у которых в oscam.user тоже указана group = 1. Если забыть согласовать группы — карта работает локально, но клиентам не раздаётся. Это одна из самых частых ошибок.
Параметр cccversion — версия CCcam для handshake. Если сервер требует конкретную — укажите. Если не знаете — попробуйте 2.3.0, он принимается большинством серверов.
Пользователи и группы в oscam.user
Файл oscam.user описывает клиентов, которые будут подключаться к вашему OScam-серверу:
[account]
user = client1
pwd = clientpassword
group = 1
au = 1
allowedprotocols = cccam,newcamd
maxconnections = 1
Параметр au = 1 разрешает EMM для этого клиента. maxconnections = 1 — один активный сеанс, полезно против шаринга доступа. allowedprotocols — перечисляете, по каким протоколам клиент может подключаться.
Связка CCcam и OScam через cccam protocol
Это работает в обе стороны. OScam как клиент к CCcam-серверу — через ридер с protocol = cccam, как показано выше. CCcam как клиент к OScam-серверу — OScam должен слушать на порту для CCcam-клиентов.
В oscam.conf добавьте секцию:
[cccam]
port = 12001
version = 2.3.0
reshare = 1
Теперь CCcam-клиенты могут подключаться к OScam на порт 12001 обычной C-line. OScam будет обслуживать их через свои ридеры. Такая связка удобна: OScam управляет физическими картами, а старые CCcam-клиенты подключаются к нему без изменений конфига.
Порты, протоколы и проброс через роутер
Это тема, которую все игнорируют — и потом удивляются, почему клиенты не могут подключиться.
Типовые порты: CCcam 12000, newcamd, mgcamd
Стандартные порты по протоколам:
- CCcam: 12000 (шаринг), 16001 (веб-статус)
- Newcamd: 15000 (стандартный, но может быть любым)
- OScam webif: 8888
- Camd35/cs357x: 35354
- Radegast: 8000
Все эти значения можно менять в конфигах. Если на сервере уже запущено несколько эмуляторов — следите, чтобы порты не конфликтовали. CCcam на 12000 и OScam тоже на 12000 — один из них упадёт при старте.
Проброс портов (port forwarding) на сервере
Если сервер стоит дома за роутером — клиенты из интернета не достучатся напрямую. Нужен port forwarding в настройках роутера: входящий TCP на порт 12000 пробрасывается на внутренний IP сервера.
На iptables это выглядит так:
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
Но если провайдер выдаёт вам «серый» IP (частный адрес типа 10.x.x.x или 100.64.x.x) — проброс портов не поможет, вы за двойным NAT. В таком случае нужен либо VPS с белым IP и туннель (WireGuard, OpenVPN), либо переход к провайдеру, который даёт реальный IP.
Проверка доступности порта через telnet
Самый быстрый способ проверить, что сервер доступен снаружи:
telnet your.server.com 12000
Если соединение устанавливается — порт открыт. Если Connection refused — порт закрыт или сервис не запущен. Если висит и не отвечает — скорее всего файрвол блокирует пакеты.
Для CCcam на порту 16001 можно проверить статус через браузер: http://your.server.com:16001 — там текстовая страница с подключёнными клиентами и статистикой карт.
Динамический IP и DDNS
Домашний IP у большинства провайдеров меняется при переподключении. Клиенты прописали ваш IP в C-line — и через день он уже другой. Решение: DDNS-сервис типа DuckDNS, No-IP, или тот, что встроен в ваш роутер.
Настраиваете DDNS-клиент на роутере (обновляет запись автоматически при смене IP) и в C-line прописываете домен, а не IP. При смене IP домен обновится за 1–5 минут, и клиенты переподключатся автоматически.
Решение типичных ошибок и нестабильного сигнала
Когда тв шара настроена, но изображение нестабильное — проблема почти всегда в ECM time или в соединении. Давайте по порядку.
Фризы и заикания: freeze на сложных каналах
Фриз — это когда ресивер не успел получить новый DCW до того, как сервер сменил ключ. У большинства провайдеров смена ключа происходит каждые 10 секунд (crypto period). У некоторых HD-каналов — каждые 3–5 секунд. При ECM time больше 500 мс начинают появляться кратковременные зависания.
На SD-каналах это незаметно — crypto period длиннее. На HD — уже проблема. Поэтому классическая картина: SD идёт нормально, HD фризит. Это не проблема сигнала спутника, это исключительно проблема задержки в цепочке шаринга.
Ошибка connection failed и неверный C-line
Если CCcam вообще не подключается — смотрите лог. На Enigma2:
tail -f /tmp/CCcam.log
Типичные причины: неправильный хост (опечатка, не работает DNS-резолвинг), неверный порт, неправильные логин/пароль, скрытые символы в C-line после редактирования в Windows. Особенно коварна ситуация с кодировкой: файл выглядит правильно в редакторе, но содержит непечатные символы, и CCcam не может распарсить строку.
Проверка: откройте файл через SSH командой cat -A /var/etc/CCcam.cfg — если в конце строк видите ^M, это Windows-переносы строк (CR+LF вместо LF). Исправить: dos2unix /var/etc/CCcam.cfg.
Высокий ECM time и его причины
В OScam ECM time видно прямо в веб-интерфейсе на 8888 — по каждому клиенту и каждому запросу. Нормальный показатель: до 300 мс. Приемлемый: до 500 мс. Выше — начинаются проблемы.
Причины высокого ECM time:
- Большой географический пинг до сервера (проверить:
ping your.server.com) - Перегруженный сервер — слишком много клиентов на одну карту
- Слабый канал связи с потерями пакетов
- Сервер сам подключён через шару с плохим ECM time — и добавляет свою задержку
В логах OScam ищите строки вида ECM System: IRDETO, CAID: 0622, ECM time: 847ms — это то, что нужно снижать.
Проблема с HD-каналами и пиксельация
Пиксельация (блоки, артефакты) на HD-каналах при нормальном сигнале спутника — почти гарантированно это ECM time. Ещё один вариант: сервер раздаёт контрольное слово с задержкой из-за того, что сам получает его через несколько hop'ов (cascading).
В CCcam это можно проверить через порт 16001 — там показан hop count для каждой карты. Hop 0 — локальная карта. Hop 1 — карта с прямого сервера. Hop 2+ — карта через посредника. С каждым дополнительным hop'ом задержка растёт примерно на 50–150 мс. Для HD-каналов с быстрой сменой ключа hop 2 уже критичен.
Чеклист диагностики по логам:
- Смотрим ECM time в OScam webif или
tail -f /var/log/oscam/oscam.log | grep ECM - Проверяем пинг до сервера — должен быть стабильным, без потерь
- Смотрим hop count в CCcam статусе на порту 16001
- Проверяем загрузку процессора на сервере:
topилиhtop - Если всё в норме, но фризы есть — проблема на стороне сервера с картой, смена провайдера шаринга
Где находится файл CCcam.cfg на ресивере Enigma2?
Основной путь — /var/etc/CCcam.cfg. На некоторых прошивках может быть /etc/CCcam.cfg. Редактируйте по FTP через WinSCP или FileZilla, либо напрямую через SSH командой nano /var/etc/CCcam.cfg. После любых правок нужен рестарт демона: killall -9 CCcam, и он запустится снова автоматически. После обновления прошивки приставки проверьте путь заново — он может сброситься.
Почему каналы фризят, хотя подключение есть?
Подключение есть — это одно, а скорость получения DCW — другое. Смотрите ECM time: в OScam через веб-интерфейс на порту 8888, в CCcam через порт 16001. Если ECM time выше 500 мс — ищите причину: большой пинг до сервера, перегрузка, слишком много hop'ов в цепочке шаринга. HD-каналы особенно чувствительны из-за быстрой смены ключей — там и 400 мс может давать фризы.
Чем OScam лучше CCcam для сервера?
OScam выигрывает по всем параметрам, кроме простоты первоначальной настройки. Он поддерживает одновременно несколько протоколов, умеет в DVBAPI без отдельного эмулятора, даёт детальный веб-интерфейс с ECM-статистикой в реальном времени, поддерживает гибкое управление группами и приоритетами ридеров. CCcam проще настроить за пять минут — но как только нужна диагностика или тонкая настройка, его чёрный ящик начинает раздражать.
Какой порт по умолчанию использует CCcam?
Порт 12000 — стандартный для шаринга по протоколу CCcam. Порт 16001 — веб-статус, текстовая страница с информацией о подключённых клиентах и картах. Оба значения задаются в конфигурационном файле сервера и могут быть изменены — уточняйте у провайдера шаринга, какой порт использует именно его сервер.
Как проверить, что сервер доступен из интернета?
Самый простой способ: telnet your.server.com 12000 с внешней машины (не из той же локальной сети). Если соединение открывается — порт доступен. Если нет — проверьте проброс порта на роутере, правила iptables, и убедитесь, что у вас белый IP, а не серый от провайдера. При динамическом IP настройте DDNS и в C-line прописывайте домен, а не IP-адрес.
Можно ли запустить OScam и CCcam одновременно?
Да, и это рабочая схема. OScam подключается к CCcam-серверу через ридер с protocol = cccam, получает карты оттуда и раздаёт их своим клиентам. Либо наоборот: OScam сам слушает на порту для CCcam-клиентов (секция [cccam] в oscam.conf), и к нему подключаются устройства с CCcam-конфигами. Главное — убедитесь, что оба процесса не заняли один и тот же порт, иначе один из них не запустится.