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

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

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

23.06.2026

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

Если вы читаете это, значит уже разобрались с тем, что такое кардшаринг, и теперь хотите поднять собственный кардшаринг сервер, а не зависеть от чужого. Правильный подход. В этом материале — конкретные конфиги, реальные пути к файлам, рабочие команды и объяснение каждого параметра. Без воды.

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

Сервер в этой схеме — центральный узел, к которому физически подключена смарт-карта с платной подпиской. Когда ресивер клиента встречает зашифрованный канал, он отправляет на сервер ECM-пакет (Entitlement Control Message). Сервер передаёт этот пакет карте, получает обратно DCW (Decryption Control Word) — и возвращает его клиенту. Клиент расшифровывает картинку.

Весь цикл должен укладываться примерно в 200–250 мс. Если нет — фризы.

Архитектура: сервер, клиент и протокол обмена ключами

Физически это выглядит так: смарт-карта вставлена в CAM-модуль (CI+) или встроенный картридер ресивера на стороне сервера. Сервер слушает входящие соединения на TCP-порту (обычно 12000 для CCcam-протокола или 15000+ для newcamd). Клиентский ресивер подключается, аутентифицируется парой логин/пароль и начинает слать ECM-запросы.

Протоколов несколько: CCcam, newcamd, camd3, radegast. OScam поддерживает их все одновременно. CCcam — только свой фирменный протокол.

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

CCcam — проприетарный, разработка давно заброшена. Последние рабочие сборки датируются 2012–2014 годами. Настраивается через один файл, порог вхождения низкий. Минус — почти нет нормального логирования и статистики.

OScam — открытый код, активно развивается сообществом. Конфигурация разбита на несколько файлов, каждый отвечает за своё. Зато веб-интерфейс, подробная статистика по каждому ридеру, ECM time в реальном времени, поддержка множества протоколов на разных портах. Для сервера я бы выбирал OScam — это просто другой уровень контроля.

Что такое DCW, ECM и control word

ECM — это зашифрованный пакет, который оператор передаёт в потоке вместе с видео. Внутри него — зашифрованный control word. Смарт-карта с действующей подпиской умеет этот пакет расшифровать и вернуть голый DCW — 8 байт, которыми и расшифровывается видео. Control word меняется каждые 10 секунд (crypto period). Если клиент не получил новый DCW вовремя — картинка замерзает.

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

OScam хранит конфиги в директории, которую указываете при запуске ключом -c. Чаще всего это /usr/local/etc/ или /var/etc/. На Enigma2-ресиверах (VU+, Dreambox) путь нередко /etc/tuxbox/config/oscam/. Проверить просто:

ps aux | grep oscam

В выводе будет строка с -c /путь/к/конфигам.

oscam.conf — глобальные параметры и веб-интерфейс

Основной конфиг. Минимальная рабочая секция [global]:

[global]
logfile                = /var/log/oscam.log
maxlogsize             = 500
ecmfmt                 = %c %11e %08X %04X %04X %s
clienttimeout          = 5000
fallbacktimeout        = 2500
bindwait               = 120
sleep                  = 0
unlockparental         = 0
serialreadertimeout    = 1500
waitforcards           = 1
preferlocalcards       = 1

Параметр preferlocalcards = 1 заставляет OScam сначала пробовать локальную карту, потом уже шареные ридеры. Всегда включайте его на сервере.

Веб-интерфейс настраивается в секции [webif]:

[webif]
httpport               = 8888
httpuser               = admin
httppwd                = yourpassword
httprefresh            = 10
httpallowed            = 127.0.0.1,192.168.1.0/24

Порт 8888 по умолчанию. Параметр httpallowed ограничивает доступ к веб-интерфейсу по IP — не забудьте прописать свою подсеть, иначе зайти не получится.

oscam.server — описание ридеров и смарт-карт

Каждый ридер — отдельная секция в файле oscam.server. Пример для физического картридера:

[reader]
label                  = local_card
protocol               = internal
device                 = /dev/sci0
caid                   = 0604
detect                 = cd
mhz                    = 357
cardmhz                = 357
group                  = 1
emmcache               = 1,3,5
lb_weight              = 100

Поле protocol зависит от типа ридера: internal — встроенный картридер, serial — внешний через COM, camd35, cccam, newcamd — для подключения к удалённым серверам. Поле device для внешних ридеров будет адресом удалённого сервера.

Параметр caid — идентификатор системы условного доступа. Ошибиться здесь = ридер будет игнорировать ECM-запросы. Значения: 0604 (Irdeto), 0500 (Viaccess), 0100 (Seca), 1800 (Nagravision), 0963/0960 (Conax), 0B00 (Conax тоже), 0D00 (CryptoWorks).

oscam.user — учётные записи клиентов

Файл oscam.user — это список клиентов вашего сервера. Каждая секция [account] — один клиент:

[account]
user                   = client1
pwd                    = secret123
group                  = 1
caid                   = 0604
au                     = 1
ident                  = 0604:000000
monlevel               = 0
maxconnections         = 1

Параметр group здесь ключевой. Он должен совпадать с group в соответствующем ридере oscam.server. Если клиент в группе 1, а ридер в группе 2 — клиент карту не получит. Через группы разграничиваете доступ к разным картам для разных клиентов.

au = 1 включает передачу EMM (Entitlement Management Message) — нужно для обновления прав на карте. Включайте только если знаете зачем.

maxconnections = 1 — один логин, одно подключение. Защита от слива учётных данных.

Раздача по протоколу CCcam (порт 12000) и newcamd

Чтобы OScam принимал подключения по CCcam-протоколу, добавьте секцию в oscam.conf:

[cccam]
port                   = 12000
reshare                = 0
version                = 2.3.0
build                  = 3650
reshare_mode           = 0

reshare = 0 означает, что клиенты не могут пересылать карту дальше. Это правильно — не давайте клиентам реширить без необходимости.

Для newcamd — отдельная секция [newcamd]:

[newcamd]
port                   = 15000@0604:000000
key                    = 0102030405060708091011121314

Формат порта тут специфический: порт@CAID:ident. Ключ — 14 байт в hex, произвольный, должен совпадать на клиенте и сервере.

Настройка сервера на CCcam: файл CCcam.cfg

Конфиг CCcam лежит в /etc/CCcam.cfg или /var/etc/CCcam.cfg — зависит от сборки. На Enigma2 обычно /var/etc/. Весь конфиг — один файл, синтаксис простой.

Синтаксис строк F: для клиентов

Строка F: описывает учётную запись клиента, которому сервер раздаёт доступ:

F: username password 1 0 0 { } { }
# F: логин пароль hops au sharedowngrade { CAID } { провайдеры }

Разберём каждое поле:

  • username / password — учётные данные клиента
  • Первая цифра (1) — количество hops для реширинга этому клиенту
  • Вторая цифра (0) — au (0 = выключено)
  • Третья цифра (0) — share downgrade
  • { } — список CAID, пусто = все доступные
  • Второй { } — список провайдеров

Чтобы ограничить клиента только одним CAID, например Irdeto:

F: username password 1 0 0 { 0604 } { }

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

Строка C: — подключение вашего сервера к вышестоящему источнику карт:

C: server.example.com 12000 mylogin mypassword yes
# C: хост порт логин пароль reconnect

Последнее поле yes — автоматическое переподключение при обрыве. Почти всегда нужно.

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

В CCcam.cfg глобальные параметры задаются так:

SERVER HOPS : 1
SHARE LIMIT : 10
MINIMIZE DISTANCE : yes
KEEPCONNECTED : 1

SERVER HOPS — максимальное количество пересылок карты, которые сервер будет принимать от внешних источников. Значение 1 означает только локальные карты. Чем больше hops, тем выше ECM time и тем нестабильнее картинка. Hop 1 (локальная карта) даёт ECM в районе 50–150 мс. Hop 3–4 — уже легко 400–600 мс, что ведёт к фризам.

MINIMIZE DISTANCE : yes — CCcam будет выбирать ридер с наименьшим количеством пересылок. Включайте всегда.

Сетевые параметры и порт сервера:

SERVER PORT : 12000
ALLOW TELNET : no
ALLOW HTTP : yes
HTTP PORT : 8080
HTTP REMOTECONFIG : no

Telnet оставляйте выключенным — передаёт данные в открытом виде. HTTP-интерфейс CCcam значительно беднее OScam, но для базового мониторинга сгодится.

Порты, проброс и сетевая часть

Без правильной сетевой настройки кардшаринг сервер будет работать только внутри локальной сети. Чтобы клиенты подключались снаружи — нужен проброс порта и публичный IP.

Открытие порта 12000 на роутере (port forwarding)

В веб-интерфейсе роутера находите раздел NAT / Port Forwarding / Virtual Servers (название зависит от прошивки). Создаёте правило:

  • Протокол: TCP
  • Внешний порт: 12000
  • Внутренний IP: локальный адрес сервера (например, 192.168.1.100)
  • Внутренний порт: 12000

Если используете OScam с newcamd — отдельное правило для порта 15000. Если несколько карт на разных портах — правило для каждого. На маршрутизаторах с OpenWrt/DD-WRT это делается через iptables или раздел Firewall → Port Forwarding в LuCI.

Статический IP или динамический DNS (DDNS)

Домашний интернет почти всегда выдаёт динамический IP — он меняется при каждом переподключении. Клиенты потеряют сервер при смене адреса.

Решения два. Первое — платный статический IP у провайдера (обычно 100–500 рублей в месяц). Второе — DDNS-сервис: регистрируете домен вида myserver.ddns.net, на сервере запускаете клиент DDNS (ddclient, inadyn), который обновляет запись при смене IP. Клиент подключается по имени хоста.

Но есть проблема серьёзнее динамического IP — CGNAT. Многие провайдеры (особенно мобильные) выдают «серый» IP из диапазона 100.64.0.0/10. Ваш роутер за NAT провайдера — проброс порта не поможет совсем. Снаружи ваш сервер просто не виден. В этом случае вариантов два: запросить у провайдера белый IP (иногда дают бесплатно) или арендовать VPS с публичным IP и поднять там туннель (WireGuard, OpenVPN) до домашней машины.

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

После настройки проброса проверьте доступность с другой машины (не из своей локальной сети):

telnet your.external.ip 12000
# или
nc -zv your.external.ip 12000

Если соединение устанавливается — CCcam ответит баннером, OScam — просто откроет соединение. Если Connection refused — порт закрыт или сервис не запущен. Если Connection timed out — порт не пробрасывается или CGNAT.

Ещё один частый случай на VPS — порт 12000 уже занят другим процессом. Проверяйте:

ss -tlnp | grep 12000
# или
lsof -i :12000

Если порт занят — либо меняйте порт в конфиге, либо разбирайтесь, что за процесс его держит.

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

Большинство проблем с кардшаринг сервером делятся на две категории: клиент не подключается вообще или подключается, но картинки нет. Это совершенно разные проблемы с разными причинами.

Клиент подключается, но нет изображения (no DCW / ECM timeout)

Клиент подключился — значит с сетью и аутентификацией всё в порядке. Но DCW не приходит. Первое, что проверяем в OScam webif (http://server-ip:8888): статус ридера. Если ридер показывает CONNECTED, но счётчик ECM стоит на нуле — ридер не получает запросы. Чаще всего причина — несовпадение CAID или ident.

Смотрите что просит клиент (вкладка Clients в webif) и что умеет обслуживать ридер. Если клиент шлёт ECM с CAID 0604, ident 000000, а в ридере прописан caid = 0604, ident 020810 — запрос отклонится. Сверяйте точно.

Вторая причина — клиент не в нужной группе. Проверьте group в oscam.user для этого клиента и group в oscam.server для ридера. Должны совпадать.

Freeze и фризы изображения по таймауту

Картинка есть, но периодически замерзает на 1–3 секунды. Это ECM timeout — клиент не получает новый DCW к концу crypto period (10 секунд).

В OScam webif, вкладка Readers: смотрите колонку ECM time. Нормально — до 250 мс. 300–400 мс — на грани, фризы будут редкими. Больше 500 мс — стабильные фризы.

Причины высокого ECM time: высокий ping до источника карты, большое количество hops, перегруженный ридер. Отдельная история — рассинхрон времени между сервером и клиентом. Некоторые системы проверяют временну́ю метку в ECM. Если расхождение больше нескольких секунд — карта может отказывать. Настройте NTP:

ntpdate pool.ntp.org
# или через systemd:
timedatectl set-ntp true

Особенно актуально для Enigma2-ресиверов, которые после перезагрузки могут иметь неправильное время.

Ошибки прав доступа и неверный CAID/provider ID

В логах OScam ищите строки вида:

CAID: 0604, ident: 020810, rejected by user config

или

no matching reader found for ECM

Первое — клиент есть, но его CAID/ident не совпадает с тем, что разрешено в oscam.user. Уберите ограничение по ident или пропишите правильный. Второе — ни один ридер не может обслужить запрос. Проверяйте группы и CAID ридеров.

Бывает, оператор меняет CAID или структуру ident — карта перестаёт работать без каких-либо ошибок подключения. Обновляйте параметры ридера при таких событиях.

Если у вас несколько ридеров с одним CAID (например, два источника для надёжности), настройте приоритет и fallback:

[reader]
label                  = primary_card
lb_weight              = 100

[reader]
label                  = backup_card
lb_weight              = 50
fallback               = 1

fallback = 1 — ридер используется только если основные недоступны. lb_weight задаёт приоритет при балансировке нагрузки.

Чтение логов OScam через веб-интерфейс

OScam webif — главный инструмент диагностики. Вкладка Log показывает лог в реальном времени. Можно также читать файл напрямую:

tail -f /var/log/oscam.log

Путь к логу задаётся в oscam.conf параметром logfile. Уровень детализации — параметр debuglevel (значение 1 для базовой диагностики, 64 и выше — для детальной трассировки ECM).

На вкладке Status — сводка по всем клиентам и ридерам: кто подключён, сколько ECM обработано, среднее время. Это первое место, куда смотреть при любой проблеме.

Как выбрать надёжный источник доступа: критерии

Если своей карты нет и нужно подключиться к внешнему ридеру через строку C: (CCcam) или удалённый ридер в oscam.server — вопрос выбора источника становится ключевым. Конкретные сервисы называть не буду, но критерии — вот они.

На что смотреть: аптайм, ping, локальные карты vs решары

Первое — hop count. Локальная карта (hop 1) стабильно быстрее и надёжнее реширинга. ECM time у hop 1 обычно 50–150 мс, у hop 3–4 — легко 400+ мс. Спрашивайте у источника напрямую: локальные карты или решары. Если не отвечают или уклоняются — скорее всего решары.

Второе — заявленный аптайм. Хороший показатель — 99%+ за 30 дней. Как проверить? Только на практике, но тестовый доступ на 24–48 часов позволяет составить первичное мнение.

Третье — пинг до сервера источника. Проверяйте до подключения:

ping server.example.com

Больше 150–200 мс — с учётом обработки на сервере ECM time легко уйдёт за 300 мс, и фризы гарантированы при любом дополнительном замедлении.

Стабильность ECM-времени и количество hops

Важна не только средняя, но и максимальная задержка. Источник с средним ECM 150 мс, но пиками до 600 мс — хуже источника со стабильными 200 мс. В OScam webif смотрите на колонку Max ECM — она показывает пиковое значение с момента последнего сброса статистики.

Количество hops в OScam ограничивается параметром cccmaxhops в секции [cccam] или параметром distance в секции [reader] для конкретного ридера:

[reader]
label                  = remote_source
protocol               = cccam
device                 = server.example.com,12000
user                   = mylogin
password               = mypassword
caid                   = 0604
group                  = 1
distance               = 2

distance = 2 — принимать карты глубиной не более 2 hops. Источник пришлёт что есть, но ридер отфильтрует по глубине.

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

Уважающий себя источник даёт тестовый доступ перед оплатой. Это нормально и ожидаемо. За время теста обязательно проверяйте:

  • ECM time в OScam webif — несколько раз в разное время суток
  • Стабильность при смене канала (время на открытие нового ECM)
  • Поведение в прайм-тайм, когда нагрузка на сервер источника максимальная
  • Скорость реакции поддержки на вопросы

Если тест не предлагают — повод насторожиться.

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

Стандартный порт CCcam-протокола — 12000 (TCP). Newcamd обычно работает в диапазоне 15000+, конкретный порт задаётся в конфиге OScam в формате port = 15000@CAID:ident. Веб-интерфейс OScam по умолчанию слушает порт 8888. Все порты можно менять в конфигурационных файлах — ограничений нет.

Чем OScam лучше CCcam для сервера?

OScam — открытый код с активной поддержкой сообщества. Поддерживает одновременно несколько протоколов (CCcam, newcamd, camd3) на разных портах, имеет детальный веб-интерфейс со статистикой по каждому ридеру и ECM time в реальном времени. CCcam проще в начальной настройке, но разработка давно заброшена, логирование примитивное, диагностировать проблемы значительно сложнее.

Почему клиент подключился, но нет изображения?

Чаще всего это несовпадение CAID или ident между клиентом и ридером, неправильная группа в oscam.user, или высокий ECM time из-за большого количества hops. Откройте OScam webif, вкладку Status — посмотрите, какой CAID запрашивает клиент и какой обрабатывает ридер. Сверьте ident в oscam.server и запросе клиента.

Можно ли поднять сервер на домашнем интернете?

Да, но необходим белый (публичный) IP и проброс порта 12000 на роутере. Если провайдер выдаёт серый IP за CGNAT (диапазон 100.64.0.0/10) — сервер снаружи недоступен, проброс порта не поможет. В этом случае нужен либо запрос статического IP у провайдера, либо VPS с туннелем (WireGuard или OpenVPN) до домашней машины.

Что означают hops и distance в конфиге?

Hops — количество пересылок карты между серверами. Hop 1 означает локальную карту, непосредственно подключённую к серверу — это самый стабильный вариант с ECM time 50–150 мс. При hop 3–4 ECM time растёт до 400–600 мс и выше, что даёт фризы. Параметр distance в OScam ограничивает глубину принимаемых ридеров — например, distance = 2 отфильтрует всё глубже hop 2.

Где находятся конфигурационные файлы OScam?

Зависит от сборки. На большинстве Linux-систем — /usr/local/etc/ или /var/etc/. На Enigma2-ресиверах (VU+, Dreambox, GigaBlue) чаще всего /etc/tuxbox/config/oscam/. Точный путь смотрите в строке запуска процесса: ps aux | grep oscam — там будет ключ -c /путь/. Основные файлы: oscam.conf, oscam.server, oscam.user.

О статье

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