Кардшаринг сервер: настройка CCcam и OScam с нуля

Главная Статьи Кардшаринг сервер: настройка CCcam и OScam с нуля

Дата публикации

22.06.2026

Кардшаринг сервер: настройка CCcam и OScam с нуля

Если вы впервые поднимаете кардшаринг сервер — готовьтесь к тому, что половина туториалов в сети устарела, а другая половина написана людьми, которые сами не уверены, что делают. Я прошёл через это и расскажу, как оно работает на самом деле: с реальными конфигами, актуальными путями и диагностикой, которая реально помогает.

Что такое кардшаринг сервер и как он работает

Базовая идея проста. Ресивер получает зашифрованный сигнал — DVB-поток с платными каналами. Чтобы его расшифровать, нужен control word (CW). Ресивер отправляет на сервер ECM-запрос (Entitlement Control Message), сервер пропускает его через реальную смарт-карту, получает CW и отправляет обратно клиенту. Клиент расшифровывает картинку. Всё происходит каждые несколько секунд.

EMM (Entitlement Management Message) — это отдельная история. Это сообщения от вещателя для обновления прав на карте. Если не обрабатывать EMM, карта через какое-то время перестаёт давать валидные CW. Поэтому параметр au=1 в OScam — не просто опция, а необходимость для долгой работы локальной карты.

Принцип обмена control words (CW) и ECM/EMM

ECM уходит от клиента к серверу, CW возвращается обратно. Время этого обмена — ecm time — критически важный параметр. Если ecm time превышает 500–700 мс, начинаются фризы. Сервер на другом конце света с пингом 200 мс даст ecm time 400+ мс даже при идеальном канале — и каналы будут периодически подвисать.

Роли: сервер (share) и клиент (peer)

Сервер держит физическую смарт-карту и расшифровывает ECM локально. Клиент подключается к серверу и использует его карту удалённо. В терминологии CCcam: строка F: описывает friend — того, кому вы даёте доступ к своей карте. Строка C: — это подключение к чужому серверу как клиент. Один ресивер может быть одновременно и сервером, и клиентом.

Понятие hops — количество пересылок карты между серверами. Hops 0 означает, что карта физически вставлена в этот ресивер. Hops 1 — карта на соседнем сервере. Чем больше hops, тем выше задержка и вероятность фризов. На практике больше 3–4 hops уже нестабильно.

Чем отличаются протоколы CCcam, newcamd и cs378x

CCcam — закрытый протокол, стандартный порт 12000/TCP. Простой синтаксис конфига, но ограниченная гибкость. Newcamd — старый, стабильный протокол, порты обычно начинаются от 15000 и выше, настраиваются индивидуально под каждый CAID. CS378x (Camd35 over TCP) — протокол клонов CCcam, порт настраивается в конфиге. OScam поддерживает все три плюс радку других — это его главное преимущество перед монолитным CCcam-демоном.

Настройка сервера на OScam: конфиги и пути

OScam — это не просто замена CCcam. Это полноценный демон с веб-интерфейсом, поддержкой нескольких протоколов одновременно и гибкой настройкой прав для каждого клиента. На Enigma2-ресиверах его обычно ставят из feeds дистрибутива — OpenATV, OpenPLi, OpenViX.

Структура файлов: oscam.conf, oscam.server, oscam.user

Три основных файла конфигурации лежат в одной директории. На большинстве Enigma2-сборок это /etc/tuxbox/config/oscam/ или /var/etc/oscam/. Точный путь зависит от параметра --config-dir, с которым запущен демон. Проверить просто:

ps aux | grep oscam

В выводе увидите что-то вроде oscam --config-dir /var/etc/oscam. Вот туда и кладите конфиги.

Секция [global] и [cs378x]/[newcamd]

Минимальный рабочий oscam.conf выглядит так:

[global]
logfile                       = /tmp/oscam.log
loghistorysize                = 4096
maxlogsize                    = 512
nice                          = -1
waitforcards                  = 1
preferlocalcards              = 1

[cs378x]
port                          = 15000

[newcamd]
port                          = 15010@0B00:000000

[cccam]
port                          = 12000
reshare                       = 1
version                       = 2.3.2

Параметр preferlocalcards = 1 важен: OScam будет сначала пробовать локальную карту, и только если она не отвечает — идти к удалённым ридерам. Без этого может случиться, что локальная карта есть, но трафик уходит на сетевой ридер с бо́льшим ecm time.

Подключение ридера и DVB-карты в oscam.server

Файл oscam.server описывает источники карт. Локальный ридер — физическая карта в слоте ресивера:

[reader]
label                         = local_card
protocol                      = internal
device                        = /dev/sci0
caid                          = 0B00
detect                        = cd
mhz                           = 357
cardmhz                       = 357
group                         = 1
emmcache                      = 1,3,15,1
au                            = 1

Устройство /dev/sci0 или /dev/sci1 — встроенный картридер Enigma2-ресивера. Для внешнего USB-ридера (например Smargo) это будет /dev/ttyUSB0 с протоколом mouse. CAID 0B00 — один из распространённых идентификаторов систем условного доступа, подставьте свой.

Для сетевого ридера (подключение к другому серверу через CCcam-протокол):

[reader]
label                         = remote_cccam
protocol                      = cccam
device                        = host.example.com,12000
user                          = myuser
password                      = mypass
caid                          = 0B00,0500
group                         = 2
cccversion                    = 2.3.2
cccmaxhops                    = 2

Параметр cccmaxhops = 2 ограничивает принимаемые карты по количеству hops. Если провайдер отдаёт карты с hops 5 — вы их просто не получите, что правильно: такие карты нестабильны.

Создание учётных записей клиентов в oscam.user

Каждому клиенту — отдельный блок в oscam.user:

[account]
user                          = client1
pwd                           = secretpass
group                         = 1,2
au                            = 1
caid                          = 0B00
ident                         = 0B00:000000
services                      = +package_hd
maxconnections                = 1
failban                       = 1

Параметр ident — это CAID:providerid. Если провайдер имеет несколько идентификаторов для одного CAID, а вы прописали только один — клиент будет получать ошибку для каналов с другим provider ID. Это одна из самых частых причин "карта есть, а канал не открывается".

Web-интерфейс мониторинга (httpport)

В oscam.conf добавьте секцию:

[webif]
httpport                      = 8888
httpuser                      = admin
httppwd                       = adminpass
httpallowed                   = 127.0.0.1,192.168.1.0/24
httprefresh                   = 3
httphideidx                   = 0

После перезапуска OScam веб-интерфейс доступен на http://[IP-ресивера]:8888. Там в реальном времени видно ecm time для каждого клиента, статус ридеров и историю запросов. Без этого диагностировать проблемы вслепую — занятие неблагодарное.

Настройка сервера и клиента на CCcam

CCcam живёт проще: один файл конфига, минималистичный синтаксис. Для многих задач этого хватает, особенно если нужен быстрый старт без глубокого погружения в параметры OScam.

Файл CCcam.cfg и его расположение

На Enigma2 файл обычно лежит по адресу /var/etc/CCcam.cfg. Иногда встречается /etc/CCcam.cfg — зависит от сборки прошивки. CCcam запускается как системный сервис и при старте ищет конфиг в стандартных местах.

Строки C: (клиент) и F: (сервер/friend)

Синтаксис строки подключения к серверу:

C: hostname.example.com 12000 username password yes

Последний параметр — использовать ли минимальный downhops (yes/no). Строка для выдачи доступа клиентам:

F: clientuser clientpassword 2 1 0 0 { 0B00:000000 }

Здесь: clientuser — логин, clientpassword — пароль, 2 — downhops (сколько hops карта уходит вниз к клиенту), 1 — uphops (сколько hops карта принимается вверх), 0 0 — параметры reshare.

Параметры hops, distance и reshare

Hops 0 в строке F: означает, что клиент видит только локальные карты. Hops 1 — видит карты с одним пересылом. Чем больше значение, тем больше ecm time и нестабильность. Для большинства случаев downhops = 1 или 2 — разумный предел.

Reshare определяет, может ли клиент пересылать полученную линию дальше. Значение 0 запрещает решару. Если вы хотите, чтобы клиент мог подключить к вашей карте своих клиентов — ставьте 1. На практике неконтролируемая решара быстро приводит к перегрузке сервера.

Совместная работа CCcam и OScam на одном ресивере

Здесь важный момент, который часто упускают: CCcam и OScam не могут одновременно слушать один и тот же порт. Если оба демона пытаются занять 12000/TCP — один из них упадёт при старте. Решение: запускать только OScam, а CCcam-протокол обеспечивать через секцию [cccam] в oscam.conf. OScam отлично эмулирует CCcam-сервер, клиенты подключаются по стандартному синтаксису строки C: и не замечают разницы.

Если всё же нужен именно CCcam-демон — отключайте один из них через init-скрипты. На Enigma2 это делается через меню плагинов или командой update-rc.d в зависимости от дистрибутива.

Открытие портов, NAT и сетевые требования

Поднять кардшаринг сервер локально несложно. Сделать его доступным из интернета — отдельная задача, и именно здесь большинство застревает.

Проброс портов на роутере (port forwarding)

Для входящих подключений нужно пробросить TCP-порт (например 12000 для CCcam-протокола, 8888 для веб-интерфейса — но последний лучше вообще не открывать наружу) с роутера на IP ресивера в локальной сети. Ресиверу желательно назначить статический локальный IP через DHCP-резервирование по MAC-адресу.

Серьёзная проблема — CGNAT. Если провайдер выдаёт вам серый IP (узнать можно сравнив IP на роутере с тем, что показывает curl ifconfig.me), проброс портов вообще не поможет. Вы за двойным NAT, и входящие соединения до вас просто не дойдут. Решения: VPN-туннель до VPS с белым IP, или запрос у провайдера белого IP (часто платная услуга, но недорогая).

Статический IP или DDNS для динамического адреса

Если белый IP есть, но он динамический — нужен DDNS. Сервисы вроде No-IP или DynDNS обновляют запись при смене IP. На большинстве роутеров есть встроенная поддержка DDNS-клиентов. Настройте обновление раз в 5 минут — тогда при смене IP клиенты переподключатся максимум через несколько минут.

Проверка доступности порта и firewall

На самом ресивере проверьте, что демон слушает порт:

netstat -tulpn | grep 12000

Должно появиться что-то вроде tcp 0 0 0.0.0.0:12000 0.0.0.0:* LISTEN. Если строки нет — демон не запустился или слушает другой порт.

Проверка снаружи через telnet с другой машины:

telnet your.external.ip 12000

Если соединение зависает или сразу обрывается — скорее всего проблема в роутере или провайдере блокирует порт. Некоторые провайдеры блокируют нестандартные исходящие порты — в этом случае помогает смена порта на что-то из диапазона 8000–9000 или использование 443/TCP (если провайдер не режет TLS-трафик выборочно).

Диагностика ошибок и типичные проблемы

Большинство проблем с кардшарингом решаются чтением логов и веб-интерфейса. Не наугад, а по конкретному алгоритму.

Чтение логов OScam (loghistorysize, logfile)

Логи OScam по умолчанию пишутся в файл, указанный в параметре logfile секции [global]. На Enigma2 типично /tmp/oscam.log — tmpfs, после перезагрузки лог обнуляется. Если нужна история — укажите путь на постоянный раздел. Параметр loghistorysize = 4096 определяет, сколько строк истории хранится в веб-интерфейсе.

В логах смотрим на строки с ECM-запросами. Нормальный обмен выглядит примерно так:

2026/03/15 14:23:01 c client1 (192.168.1.10) ECM 0B00/000000/01AB OK (local_card, 124ms) CW:AB12...

124 мс — это ecm time. Хорошо. Если видите 600–800 мс и выше — ждите фризов.

Статусы CONNECTED, DISCONNECTED, CARD NOT FOUND

В веб-интерфейсе OScam ридер может показывать три основных состояния. CONNECTED с зелёной иконкой — ридер работает, карты получены. DISCONNECTED — нет связи с удалённым сервером, проверьте хост/порт/пароль и сетевую доступность. CARD NOT FOUND — соединение установлено, но сервер не отдаёт карты нужного CAID — возможно, они у него есть, но вы не имеете прав на них по вашей линии.

Проблема freeze/фризы и таймауты ECM

Фризы при работающем подключении — самая частая жалоба. Порядок диагностики такой: сначала смотрим ecm time в веб-интерфейсе для проблемного клиента. Если ecm time стабильно высокий (>500 мс) — проблема в географии или перегрузке сервера, не в конфиге. Если ecm time нормальный, но фризы есть — смотрим на правильность hops и cccmaxhops.

Ещё одна причина: конфликт двух демонов. Если на ресивере запущены и CCcam, и OScam — они могут оба пытаться работать с картридером одновременно. Карта это не любит. Оставьте один демон.

Ошибки caid/ident mismatch

Канал может иметь несколько CAID — например, основной 0B00 и резервный 0500. В oscam.user у клиента прописан только 0B00. Когда канал переключается на 0500 — OScam отказывает в запросе, клиент видит "нет сигнала". Решение: прописать оба CAID в параметрах caid и ident. Смотрите конкретные CAID канала через zap-плагины или логи самого ресивера при переключении канала.

Provider ID (ident) — это вторая часть после двоеточия в ident = 0B00:000000. Значение 000000 означает "любой провайдер для этого CAID". Если ставите конкретный — убедитесь, что он точно совпадает с тем, что транслируется в сигнале.

Как выбрать надёжного провайдера кардшаринга

Технически подкованный пользователь, который поднял свой кардшаринг сервер, рано или поздно сталкивается с вопросом: подключиться к чужой карте или искать нормального провайдера. Критерии выбора вполне конкретные.

Критерии стабильности: uptime, ecm time, локальные карты

Первое, на что смотрю: есть ли у провайдера локальные карты или это чистый решарщик. Решара — это когда провайдер сам подключён к кому-то ещё и просто перепродаёт доступ. Каждое звено добавляет hops и ecm time. Хороший провайдер честно говорит: "у нас X локальных карт CAID 0B00, hops 1". Заявленный ecm time должен быть в пределах 100–300 мс для европейских серверов.

Uptime — смотрите не на маркетинговые "99.9%", а на реальные отзывы пользователей на форумах за последние 2–3 месяца. Сезонные просадки, смена провайдера каналами, технические работы — это нормально. Недели недоступности без объяснений — красный флаг.

Тестовый период и техподдержка

Нормальный сервис даёт тестовый доступ: 24–72 часа, без оплаты или с минимальным депозитом. За это время можно реально проверить ecm time, стабильность и наличие нужных CAID. Если тестовый доступ не предусмотрен — это либо самоуверенность, либо нежелание показывать реальное качество.

Техподдержка должна отвечать на конкретные технические вопросы — не "перезагрузите ресивер", а "у вас в логе ошибка ident mismatch, добавьте в oscam.user вот такой ident". Если поддержка не понимает, что такое oscam.user — разворачивайтесь.

Признаки ненадёжного сервиса

Несколько конкретных признаков, после которых я бы не стал платить. Только реселл-линии без упоминания локальных карт. Отсутствие тестового периода. Поддержка только через общий чат без тикет-системы. Невозможность проверить ecm time до оплаты. Обещания "всех каналов мира" за смешные деньги — локальные карты стоят денег, и если цена подозрительно низкая, значит решара с решары с решары.

И последнее: стабильный кардшаринг сервер требует нормального канала с низким пингом до клиентов. Провайдер на дешёвом VPS в дальнем дата-центре — не лучший выбор, даже если цена привлекательна.

Часто задаваемые вопросы

Какой порт по умолчанию использует кардшаринг сервер?

CCcam-протокол по умолчанию работает на порту 12000/TCP. Newcamd настраивается индивидуально — часто используют диапазон от 15000 и выше, при этом каждый CAID может получить свой порт (например, port = 15010@0B00:000000). CS378x (Camd35 over TCP) тоже настраивается в конфиге вручную. Любой из этих портов нужно пробросить на роутере, если сервер находится за NAT.

Чем отличается OScam от CCcam?

OScam — открытый проект, активно развивается, поддерживает одновременно несколько протоколов (CCcam, newcamd, cs378x, radegast и другие), имеет веб-интерфейс и гибкую систему прав для клиентов. CCcam — закрытый бинарник с простым синтаксисом конфига, но ограниченными возможностями. Для сервера предпочтительнее OScam: он может полностью эмулировать CCcam-протокол, так что клиенты на CCcam подключаются к нему без каких-либо изменений со своей стороны.

Где находится конфиг OScam на прошивке Enigma2?

Чаще всего это /etc/tuxbox/config/oscam/ или /var/etc/oscam/. Точный путь зависит от конкретной сборки прошивки (OpenATV, OpenPLi, OpenViX и другие могут различаться) и параметра --config-dir, с которым запущен демон. Проверить можно командой ps aux | grep oscam — в выводе будет полный путь. Основные файлы: oscam.conf, oscam.server, oscam.user.

Почему каналы фризят при работающем подключении?

Причин несколько: высокий ping до сервера (ecm time >500 мс), перегруженный сервер с большим количеством клиентов, неверные параметры hops/reshare, конфликт двух одновременно запущенных демонов (CCcam + OScam), несовпадение CAID или ident в настройках. Начинайте диагностику с просмотра ecm time в веб-интерфейсе OScam — это сразу укажет, проблема сетевая или конфигурационная.

Что означают hops и reshare в строках конфига?

Hops — количество пересылок карты между серверами. Значение 0 означает, что карта физически вставлена в данный ресивер (локальная). Hops 1 — карта на соседнем сервере. Чем больше hops, тем выше задержка и нестабильность. Reshare определяет, сколько раз клиент может перепередать полученную линию своим клиентам. Значение 0 полностью запрещает решару. В строках конфига CCcam: F: user pass downhops uphops reshare.

Как проверить, что мой сервер доступен извне?

Сначала на самом ресивере: netstat -tulpn | grep 12000 — убедитесь, что демон слушает порт. Затем с внешней машины: telnet ваш.внешний.ip 12000. Также можно использовать онлайн-сервисы проверки портов (введите в поиске "check open port online"). Если порт не отвечает извне при работающем демоне — скорее всего серый IP за CGNAT, или провайдер блокирует порт, или не настроен проброс на роутере.

О статье

  • Практические советы и инструкции
  • Материалы по спутниковому ТВ
  • Поддержка и помощь 24/7