Кардшаринг сервер: настройка CCcam и OScam 2026
Если ты уже держишь в руках ресивер на Enigma2 и доступ к шаре, но канал всё равно не открывается — значит, дело в деталях конфигурации. Именно здесь большинство и застревает. Этот материал — про конкретику: реальные пути к файлам, директивы с объяснением каждой строки и диагностику по логам. Правильно настроенный кардшаринг сервер — это не просто скопированный конфиг, а понимание того, что происходит под капотом.
Что такое кардшаринг сервер и как он работает
Смарт-карта, вставленная в картридер сервера, получает от ресивера зашифрованный ECM-пакет (Entitlement Control Message). Карта расшифровывает его и возвращает DCW (Descrambling Control Word) — 16-байтный ключ, который ресивер использует для декодирования видеопотока. Всё это происходит каждые несколько секунд, потому что провайдеры регулярно меняют ключи.
EMM (Entitlement Management Message) — это отдельный класс сообщений, через который сервер обновляет права на смарт-карте. Если EMM не проходят, карта со временем теряет доступ к пакетам. Именно поэтому в конфигах важно не отключать опцию Allow EMM без понимания последствий.
ecm time — время в миллисекундах от отправки ECM до получения DCW. Норма — до 400 мс. Всё, что выше, даёт фризы.
Принцип обмена control words (DCW) между сервером и клиентом
Клиент (твой ресивер) отправляет ECM на сервер по сети. Сервер передаёт его карте, получает DCW и отправляет обратно клиенту. Клиент применяет DCW к потоку — канал открывается. Вся цепочка должна уложиться до истечения текущего крипто-периода, иначе — фриз или чёрный экран.
Hops (хопы) — количество пересылок DCW между серверами до того, как он дойдёт до клиента. При 1 hop сервер держит карту локально. При 3+ hop DCW прошёл через несколько промежуточных серверов, и каждый добавляет задержку. Distance — похожая метрика, но в контексте CCcam означает удалённость карты в топологии шаринга.
Разница между сервером, клиентом и реселлером в схеме шаринга
Сервер — это узел, у которого есть физические смарт-карты в ридере. Клиент — тот, кто подключается к серверу и получает DCW. Реселлер держит сервер без собственных карт: он сам подключён к серверу с картами и перепродаёт доступ дальше. Реселлинг = лишние хопы и чужая точка отказа.
Один и тот же бокс может быть одновременно сервером для своих клиентов и клиентом по отношению к вышестоящему серверу — это peer-to-peer обмен, который используется в частных сетях обмена картами между доверенными пользователями.
Протоколы: CCcam, MGcamd, OScam-cs378x и CCcam-протокол
CCcam использует собственный бинарный протокол поверх TCP. newcamd (порт 15000 по умолчанию) — более старый открытый протокол, поддерживаемый большинством softcam'ов. cs378x — протокол OScam для связи между двумя OScam-нодами, работает по порту 10000+. MGcamd — отдельный softcam с собственным протоколом, совместим с newcamd-серверами.
На практике: если твой ресивер работает на OScam, а сервер отдаёт CCcam-линию — OScam умеет подключаться к CCcam-серверу через reader типа cccam. Совместимость есть, но каждое преобразование протокола — потенциальный источник задержки.
Настройка сервера на CCcam: структура конфигов
CCcam читает единственный файл конфигурации: /etc/CCcam.cfg. На некоторых сборках Enigma2 путь может быть /var/etc/CCcam.cfg — зависит от дистрибутива. Права на файл должны быть 644, владелец — root. Если файл открыт на запись другим пользователям, CCcam может отказаться стартовать.
Критический момент с кодировкой: файл должен быть в Unix-формате (LF, а не CRLF) и без BOM. Если редактировал конфиг в Windows Notepad и скопировал на бокс — CCcam не стартует без каких-либо понятных ошибок. Проверить и исправить: dos2unix /etc/CCcam.cfg.
Файл CCcam.cfg: основные директивы (F-line, C-line, N-line)
C-line — подключение к вышестоящему серверу (ты как клиент):
C: hostname.example.com 12000 myuser mypassword
F-line — создание аккаунта для клиентов, которые будут подключаться к тебе:
F: clientuser clientpassword 1 0 0 { 0:0:1 }
Разбираем F-line по полям: имя, пароль, uphops (максимальная дистанция карты, которую можно раздавать — обычно 1), AU (автообновление EMM, 0=выкл), share limit (0=без ограничений), и фигурные скобки с SID/CAID-фильтрами. { 0:0:1 } означает разрешить все карты без ограничений.
N-line — подключение по протоколу newcamd:
N: hostname.example.com 15000 myuser mypassword 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Последние 14 байт — DES-ключ для шифрования newcamd-соединения. Должен совпадать на клиенте и сервере.
Путь к конфигам в Enigma2 и права доступа
Стандартные расположения в зависимости от образа:
- OpenPLi, OpenATV:
/etc/CCcam.cfg - DreamElite, некоторые старые образы:
/var/etc/CCcam.cfg - Логфайл:
/tmp/CCcam.log
Установить права: chmod 644 /etc/CCcam.cfg && chown root:root /etc/CCcam.cfg. Перезапуск CCcam:
killall -9 CCcam && sleep 2 && CCcam -C /etc/CCcam.cfg &
Или через init.d если настроен: /etc/init.d/softcam restart.
Раздача линий клиентам через F: и приём шары через C:
F-line создаёт учётку, которую ты даёшь клиенту. Клиент прописывает у себя C-line с твоим IP/хостом, портом и этими кредами. Порт сервера задаётся директивой:
SERVER LISTEN PORT: 12000
Uphops в F-line — это фильтр глубины. Если у тебя карта с 1 hop, а клиент хочет её пересдать дальше, uphops=1 это запрещает. Для реселлерской схемы ставят uphops=2+, но это понижает качество сервиса всей цепочки.
Параметры: SID assign/reject, share limits, allow emm
Ограничить клиента конкретными каналами через SID-фильтр в фигурных скобках F-line:
F: clientuser clientpassword 1 0 0 { 0500:000000:1234,5678 }
Здесь 0500 — CAID (например, Viaccess), 000000 — ProviderID (0 = любой), 1234 и 5678 — SID разрешённых каналов. Если хочешь заблокировать SID — используй директиву IGNORE RESHARE SIDS.
Глобальная директива AU включает передачу EMM клиентам:
ALLOW EMM: yes
Без EMM карта постепенно теряет права. Включать только если действительно нужно — лишний трафик и нагрузка на карту.
Настройка сервера на OScam: oscam.server, oscam.user, oscam.conf
OScam — это другой уровень гибкости по сравнению с CCcam. Конфигурация разбита на несколько файлов, что поначалу кажется сложнее, но на деле даёт чёткое разделение: глобальные настройки, ридеры, пользователи, сервисы — всё отдельно. И в отличие от CCcam, OScam активно развивается.
Пути к конфигам зависят от сборки:
- OpenPLi/OpenATV:
/etc/tuxbox/config/oscam/ - Альтернативный путь:
/var/etc/oscam-config/ - Задаётся флагом при запуске:
oscam -c /etc/oscam/
oscam.conf: блоки [global], [cs378x], [newcamd], [cccam], [webif]
Файл oscam.conf — центральный. Минимальный рабочий вариант:
[global]
logfile = /tmp/oscam.log
debuglevel = 64
usrfile = /tmp/oscam.log
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
[cccam]
port = 12001
[newcamd]
port = 15000@0500:000000
[cs378x]
port = 10000
debuglevel = 64 даёт подробные логи по ECM-запросам — достаточно для диагностики. На проде можно снизить до 4.
Важно: если запускаешь CCcam и OScam на одном боксе — порты не должны совпадать. Типичный конфликт: CCcam слушает 12000, OScam пробует поднять cccam на 12000 тоже. OScam не стартует или молча падает. Разноси порты: CCcam на 12000, OScam cccam на 12001.
oscam.server: описание ридеров
Каждый ридер в oscam.server — это источник DCW. Подключение к внешнему CCcam-серверу:
[reader]
label = myshare
protocol = cccam
device = hostname.example.com,12000
user = myuser
password = mypassword
caid = 0500
group = 1
reconnecttimeout = 30
Для локальной смарт-карты в USB-ридере:
[reader]
label = local_card
protocol = internal
device = /dev/sci0
caid = 0500
group = 1
detect = cd
mhz = 357
Параметр mhz задаёт частоту считывателя. Неверное значение = карта не отвечает или зависает. 357 = 3.57 МГц, стандарт для большинства карт. Если карта периодически отваливается — проверь питание USB-ридера (некоторые боксы дают нестабильное питание на USB) и попробуй снизить mhz до 300.
oscam.user: учётные записи клиентов, group, AU, betatunnel
[account]
user = client1
pwd = securepassword
group = 1
au = 1
betatunnel = 1833.FFFF:0500
services = sportpackage
group должен совпадать с group ридера — иначе пользователь не получит доступ к карте. au = 1 включает передачу EMM этому клиенту. betatunnel нужен для преобразования CAID — редкий случай, но иногда необходим для определённых пакетов.
Веб-интерфейс OScam: порт 8888, мониторинг статуса ридеров
Открой http://IP-бокса:8888 в браузере — там в реальном времени видно состояние каждого ридера, текущий ecm time, количество успешных и неудачных ECM-запросов. Это главный инструмент диагностики. Если ридер красный — соединение не установлено. Жёлтый — есть соединение, но нет активных запросов. Зелёный и ecm time < 400 мс — всё нормально.
Порт 8888 не открывай в интернет. Ограничь доступ в oscam.conf директивой httpallowed только локальной сетью.
Порты, протоколы и проброс через роутер
Чтобы клиенты подключались к твоему серверу из интернета, нужен либо статический внешний IP, либо DDNS. Большинство домашних провайдеров выдают динамический IP, который меняется при каждом переподключении или раз в сутки. Если IP сменился ночью, все клиенты получат обрыв до обновления DNS-записи — типичная ситуация при неправильно настроенном DDNS.
Ещё хуже — CGNAT (Carrier-Grade NAT). Ряд провайдеров вообще не выдаёт клиенту публичный IP, а сажает за общий NAT на уровне оборудования провайдера. В этом случае проброс портов на домашнем роутере не помогает физически — порт закрыт на уровне выше. Решение: VPS с публичным IP, на котором поднимается туннель (например, через WireGuard или SSH-туннель) до домашнего бокса. Сложно, но это единственный вариант при CGNAT.
Стандартные порты: CCcam 12000, newcamd 15000, cs378x/csp
- 12000 — CCcam-протокол (дефолт)
- 15000 — newcamd
- 10000+ — cs378x (OScam-to-OScam)
- 8888 — OScam WebIF (только локально!)
- 16000 — MGcamd
Менять дефолтные порты на нестандартные — разумная базовая защита. Автоматические сканеры ищут открытые 12000 и 15000 по всему интернету. Перевесить CCcam на 34127 или любой другой выше 1024 — не панацея, но снижает нежелательный трафик.
Проброс портов (port forwarding) и работа за NAT
В роутере нужно создать правило: внешний TCP-порт X → внутренний IP бокса : порт X. Бокс должен иметь фиксированный IP в локальной сети (DHCP с резервированием по MAC или статический IP в настройках бокса).
Проверить, что порт реально доступен снаружи, с другой машины или телефона (не из той же сети!):
nc -zv your.external.ip 12000
Или через telnet: telnet your.external.ip 12000. Если соединение устанавливается — порт открыт. Если сразу "Connection refused" — брандмауэр или неверный проброс. Если зависает — пакеты идут, но сервис не отвечает.
Использование DynDNS / DDNS при динамическом IP
DDNS-клиент на роутере (встроен в большинство современных роутеров) или на самом боксе обновляет DNS-запись при смене IP. Период TTL для DDNS-записей обычно 60 секунд, но реальное распространение изменений может занять до 5 минут. Всё это время клиенты будут отваливаться.
Чтобы минимизировать проблему: настрой автоматический реконнект на стороне клиентов (в OScam это reconnecttimeout в oscam.server) и убедись, что DDNS-клиент обновляет запись сразу при смене IP, а не по таймеру.
Открытие портов в iptables и проверка
Если на боксе активен iptables, нужно разрешить входящие соединения на нужный порт:
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
Для ограничения доступа только с конкретных IP — разумная защита сервера:
iptables -A INPUT -p tcp --dport 12000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -j DROP
Посмотреть текущие правила: iptables -L -n -v. Сохранить правила чтобы выжили после перезагрузки: iptables-save > /etc/iptables.rules.
Диагностика и устранение типичных ошибок
Большинство проблем с кардшаринг сервером решаются анализом логов, а не перебором конфигов вслепую. Алгоритм простой: смотришь лог, находишь строку с ошибкой, ищешь причину. Без логов — это гадание.
Чёрный экран / канал не открывается: проверка ECM time и CAID
Первый шаг — проверить, есть ли нужный CAID в фрилисте. В CCcam.log ищешь строки вида CAID: 0500 и сверяешь с тем, что требует канал. Узнать CAID канала можно в информации о транспондере в ресивере.
Распространённая ситуация: линия зелёная, но канал чёрный. Это значит соединение есть, но карты с нужным CAID/ProviderID/SID нет в шаре. В OScam webif это видно сразу: запрос ECM отправлен, но пришёл ответ E: (no matching reader). В CCcam.log будет строка card found but no ecm — означает, что карта с нужным CAID есть, но конкретный SID отфильтрован на стороне сервера.
Freeze и фризы: высокий ecm time, перегрузка ридера, hops
Фризы при воспроизведении — это всегда ecm time выше допустимого. Каналы с быстрым ECM (например, некоторые спортивные пакеты меняют ключи каждые 2-3 секунды) требуют ecm time не больше 200-250 мс. При 400+ мс — фриз гарантирован, даже если канал открывается.
В OScam webif смотришь колонку "Last ECM time" для каждого ридера. Если цифра нестабильна и скачет от 100 до 800 мс — ридер перегружен или соединение нестабильно. Причины: слишком много клиентов на один ридер, высокие хопы, медленная карта, сетевая нестабильность между серверами.
Перегрузка ридера — когда одна карта обслуживает 50+ одновременных ECM-запросов. Карта физически не успевает. Нормальная нагрузка — до 20-30 запросов в секунду, зависит от типа карты.
Клиент не подключается: неверный логин, закрытый порт, версия протокола
Чеклист при проблеме с подключением:
- Проверить порт снаружи:
nc -zv IP port - Убедиться, что логин/пароль в C-line клиента точно совпадают с F-line на сервере (регистр важен)
- Проверить версию протокола — старый CCcam 2.1.x может не подключиться к серверу на 2.3.x из-за разницы в хендшейке
- Посмотреть в CCcam.log строки
login failedилиwrong password - Проверить, не заблокирован ли IP клиента в конфиге или iptables
Чтение логов CCcam и OScam для поиска причины
CCcam пишет в /tmp/CCcam.log. Включить подробный лог в CCcam.cfg:
DEBUG LEVEL: 12
Ключевые строки в CCcam.log и их значение:
connected to [host]— успешное подключение к серверуcan't connect to [host]— сервер недоступен (порт, IP, сеть)login failed for [user]— неверные кредиты клиентаECM time: 1250ms— критически высокий ecm timecard info: CAID 0500, provider 000000— что реально есть в шаре
OScam: уровень логирования задаётся в oscam.conf полем debuglevel. Значение 64 — логировать ECM-запросы. Значение 255 — всё подряд, очень много данных. Для диагностики подключения достаточно уровня 16.
Как выбрать провайдера шары: критерии без имён
Выбор линии — это не про красивый сайт и обещания. Это про конкретные метрики, которые ты можешь проверить сам по логам в течение тестового периода. Нормальный провайдер всегда даёт тест перед оплатой — минимум 24 часа, лучше 48-72.
Стабильность аптайма и среднее ecm time как метрики качества
Средний ecm time ниже 200 мс — хорошая линия. 200-400 мс — приемлемо для большинства каналов. Выше 400 мс — будут фризы. Смотреть нужно не разовые замеры, а статистику за несколько часов в OScam webif: там есть минимальное, максимальное и среднее значение по каждому ридеру.
Аптайм 99%+ — это один обрыв в неделю максимум. Проверить реально только за несколько дней наблюдения. Смотри в логах на частоту строк can't connect и reconnect.
Поддержка нужных CAID/пакетов и локальных карт
Запроси фрилист до оплаты. Фрилист — это список CAID и ProviderID, доступных через шару. Убедись, что нужный тебе CAID есть в списке. Отдельно уточни — это локальная карта (1 hop) или реселлинг. Реселлинг = минимум 2 хопа, часто больше.
Локальная карта означает, что провайдер держит физическую смарт-карту в своём ридере. Это принципиально для ecm time и стабильности. Если провайдер сам не знает, сколько хопов у его карты — это плохой знак.
Тестовый период, прозрачность техподдержки, отсутствие овербукинга
Овербукинг — когда одну карту перепродают большему числу клиентов, чем она может обслужить. Симптом: нормальный ecm time ночью и фризы в прайм-тайм (вечер пятницы-воскресенья), когда все смотрят ТВ одновременно.
Тест нужно проводить именно в вечернее время в выходные — это пиковая нагрузка. Если в 21:00 в субботу ecm time улетает за 600 мс, а провайдер говорит "всё нормально" — это и есть перегруженная шара.
Признаки ненадёжного предложения: цена, хопы, поддержка
Слишком низкая цена при обещании "всех пакетов" — почти всегда реселлинг с 3+ хопами. Хорошая локальная карта не может стоить копейки — за ней стоят физические затраты.
Отказ показать фрилист или число хопов до оплаты — красный флаг. Нормальный провайдер без проблем даст эту информацию. Отсутствие тестового периода или тест меньше 24 часов — тоже тревожный сигнал.
Если в тестовом периоде часто видишь в логах reconnect и высокий разброс ecm time (от 80 до 900 мс) — линия нестабильна, и платить за неё не стоит.
Какой порт по умолчанию использует CCcam сервер?
По умолчанию CCcam слушает порт 12000. Задаётся директивой SERVER LISTEN PORT: 12000 в файле /etc/CCcam.cfg. Клиент указывает этот порт в C-line: C: hostname 12000 user password. Для базовой защиты имеет смысл сменить на нестандартный порт — автоматические сканеры постоянно ищут открытые 12000 по всему интернету.
Чем OScam лучше CCcam для сервера?
OScam поддерживает одновременно несколько протоколов — newcamd, cccam, cs378x — в одном процессе, тогда как CCcam работает только со своим протоколом. Веб-интерфейс OScam на порту 8888 даёт мониторинг ecm time в реальном времени, статистику по каждому ридеру и управление без перезапуска. Фильтрация по CAID, SID и группам пользователей в OScam на порядок гибче. CCcam проще настроить с нуля, но он не развивается с 2012 года. Для серьёзного кардшаринг сервера OScam — разумный выбор.
Почему канал не открывается, хотя линия зелёная?
Зелёная линия означает только установленное TCP-соединение с сервером — не наличие нужной карты. Проверь фрилист: есть ли CAID и ProviderID нужного канала. В OScam webif посмотри ответ на ECM-запрос — если E: (no matching reader), карты нет. Если E: (SID filtered) — канал заблокирован настройками на стороне сервера. В CCcam.log строка card found but no ecm указывает на несовпадение SID или фильтрацию на сервере.
Что такое hops (хопы) и почему важно их минимальное число?
Hops — количество промежуточных серверов между твоим клиентом и физической смарт-картой. 1 hop = карта стоит прямо в ридере сервера, к которому ты подключён. 3 hop = DCW прошёл через два промежуточных сервера. Каждый сервер в цепочке добавляет задержку — ecm time растёт. При 3+ хопах ecm time легко превышает 400-500 мс, что гарантирует фризы. Плюс каждый сервер в цепочке — точка отказа: упал один — все клиенты ниже потеряли сигнал.
Где находятся конфигурационные файлы OScam в Enigma2?
Стандартные пути: /etc/tuxbox/config/oscam/ или /var/etc/oscam-config/. Путь задаётся при запуске флагом -c: oscam -c /etc/oscam/. Основные файлы: oscam.conf (глобальные настройки), oscam.server (ридеры), oscam.user (клиенты), oscam.services (фильтрация каналов). Права доступа: 600 для файлов с паролями, 644 для остальных.
Как проверить, открыт ли порт сервера снаружи?
Проверять нужно с машины вне твоей локальной сети — иначе результат некорректный. Команда: nc -zv внешний.ip.адрес 12000. Или: telnet внешний.ip.адрес 12000. Если соединение установилось — порт доступен. Если "Connection refused" — порт закрыт брандмауэром или сервис не запущен. Если зависает без ответа — пакеты идут, но ACK нет (DROP в iptables вместо REJECT). При динамическом IP сначала убедись, что DDNS обновился до актуального значения.
Что означает высокий ecm time и как его снизить?
ecm time — время полного цикла расшифровки: от отправки ECM клиентом до получения DCW. Норма до 300-400 мс. Высокое значение вызвано: большим числом хопов (каждый добавляет 50-200 мс), перегруженным ридером (слишком много одновременных запросов), медленной или старой смарт-картой, нестабильным сетевым соединением между серверами. Снизить: выбрать линию с 1 хопом и локальной картой, проверить загрузку ридера в OScam webif, при возможности — переключиться на сервер в своём регионе с меньшим пингом.
Практические советы для стабильного просмотра
Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.
При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.
Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.
- Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
- Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
- Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.