OScam и CCcam: настройка сервера кардшаринга в 2026
Если вы работаете с кардшарингом больше нескольких месяцев, вы неизбежно сталкиваетесь с парой oscam cccam — двумя эмуляторами, которые либо работают вместе как часы, либо превращают вечер в отладочный марафон. Разница между ними не просто в названии — это принципиально разные инструменты с разными философиями.
OScam против CCcam: в чём реальная разница
CCcam — закрытый проприетарный эмулятор с бинарником без исходников. Его протокол работает на порту 12000 по умолчанию, и долгое время он был де-факто стандартом шаринга на Dreambox. OScam — открытый, написан на C, компилируется под что угодно от MIPS до ARM, и поддерживает не один протокол, а несколько.
Архитектура и принцип работы
CCcam работает монолитно: один процесс, один конфиг /etc/CCcam.cfg, один протокол. Просто, но ограниченно. OScam модульный — отдельные файлы для глобальных настроек, ридеров, пользователей, сервисов. Это усложняет первоначальную настройку, но даёт полный контроль над каждым параметром.
Ключевое отличие: OScam умеет одновременно выступать клиентом CCcam (получать C-line от удалённого сервера) и сервером CCcam (раздавать ключи своим клиентам). CCcam так не умеет в полной мере. Вот почему связка oscam cccam на одном сервере — это не костыль, а вполне рабочая архитектура.
Когда OScam стабильнее, а когда проще CCcam
CCcam лучше подходит, если у вас старый Dreambox 800 и вы просто хотите бросить пару C-line без возни с компиляцией. Конфиг из 10 строк — и всё работает. OScam незаменим, когда нужно локально читать карту, одновременно обслуживать десятки клиентов и тонко контролировать нагрузку через группы и фильтры по CAID.
На слабом железе с 64 МБ RAM CCcam иногда ведёт себя предсказуемее. На нормальном сервере или VPS с 512 МБ+ OScam выигрывает по всем параметрам — особенно в части диагностики и логирования.
Совместимость протоколов и связка эмуляторов
OScam поддерживает newcamd (порт по умолчанию 28910), camd35 (UDP, порт 35), mgcamd и, конечно, cccam. Это значит, что клиент на mgcamd и клиент на чистом CCcam могут одновременно получать ключи с одного OScam-сервера — просто через разные протоколы. CCcam такой гибкости не даёт.
Установка и структура конфигурационных файлов OScam
Первое, что нужно понять: у OScam нет единого "правильного" расположения конфигов. Зависит от дистрибутива и железа. На Dreambox это обычно /etc/tuxbox/config/, на Enigma2-боксах встречается /usr/keys/, на чистом Debian — /etc/oscam/.
Каталог /etc/tuxbox/config или /var/tuxbox/config
Исторически конфиги жили в /etc/tuxbox/config/. На современных Enigma2 сборках типа OpenPLi или OpenATV путь может отличаться — проверяйте через find / -name oscam.conf 2>/dev/null. Бинарник обычно в /usr/bin/oscam или /usr/local/bin/oscam.
Назначение oscam.conf, oscam.server, oscam.user, oscam.services
Минимальный рабочий oscam.conf выглядит так:
[global]
nice = -1
WaitForCards = 1
logfile = /var/log/oscam/oscam.log
maxlogsize = 1000
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httphelpdir = /usr/share/oscam/help
[cccam]
port = 12000
reshare = 1
stealth = 1
oscam.server — описание ридеров (локальные карты или удалённые серверы). oscam.user — клиенты, которым вы раздаёте ключи. oscam.services — фильтрация по CAID и провайдерам, если нужно ограничить доступ к конкретным каналам.
Права на файлы конфигурации: chmod 600 /etc/oscam/*, владелец — тот пользователь, от которого запускается oscam. Если запускаете от root, это не проблема, но на серверах лучше создать отдельного пользователя.
Сборка OScam через SVN и toolchain
Последний актуальный SVN-ревизион на момент написания — около r11826+. Сборка стандартная:
svn co http://streamboard.gmc.to/svn/oscam/trunk oscam-src
cd oscam-src
make CONF_DIR=/etc/oscam USE_LIBUSB=1 USE_PCSC=1
Флаг USE_LIBUSB=1 нужен для SmartReader и других USB-ридеров. Без него устройство просто не определится. После сборки запуск: oscam -b -r 2, где -b — фоновый режим, -r 2 — уровень логирования (2 = нормальный, 4 = debug).
Настройка локального ридера карты в oscam.server
Вот где большинство новичков теряют час-другой. Карта физически в ридере, OScam видит устройство, но в логе — тишина или ошибки инициализации. Чаще всего проблема не в конфиге вообще, а в параметрах тактирования.
Секция [reader] для смарт-карты (protocol, device)
Базовый пример для USB-ридера:
[reader]
label = local_card
protocol = smartreader
device = /dev/ttyUSB0
caid = 0500
group = 1
audisabled = 0
Для встроенного ридера на Dreambox или Vu+:
[reader]
label = internal
protocol = internal
device = /dev/sci0
caid = 0B00
group = 1
Права на устройство: ls -la /dev/ttyUSB0 — пользователь oscam должен быть в группе dialout или иметь прямой доступ. На встроенных ридерах /dev/sci0 владелец обычно root, проблем меньше.
Параметры detect, mhz, cardmhz для проблемных карт
Это тот самый параметр, о котором большинство гайдов молчат. Если карта не читается или инициализируется через раз — попробуйте явно задать частоту:
mhz = 357
cardmhz = 357
Значение 357 соответствует 3.57 МГц — стандарт для большинства карт. Некоторые карты Nagravision или Irdeto работают лучше на 600/357 (интерфейс на 6 МГц, карта на 3.57). Если карта стабильно не инициализируется, пробуйте комбинации: 369/357, 357/357, 600/600.
Параметр detect = cd включает обнаружение карты через CD-пин. Без него OScam может пытаться читать карту до её полной инициализации. На некоторых ридерах помогает detect = 0.
Ещё одна частая проблема — двойная инициализация при использовании internal и phoenix протоколов на одном /dev/sci0. OScam попытается открыть устройство дважды, второй раз получит отказ, и в логе будет что-то вроде Device /dev/sci0 already in use. Решение очевидное — один ридер на одно устройство.
Проверка чтения карты через webif и oscam.log
Webif на порту 8888 — первый инструмент диагностики. Вкладка "Readers" покажет статус ридера: зелёный = карта читается, красный = нет. Там же виден ECM time в реальном времени.
В логе при успешной инициализации ищите строки вида:
2026/01/15 14:32:01 [reader] local_card: card detected
2026/01/15 14:32:02 [reader] local_card: CAID: 0500, Prov: 000000
Если видите card not found при физически вставленной карте — почти всегда дело в mhz/cardmhz или неправильном protocol.
Подключение клиентов и шаринг по протоколу CCcam
Когда карта читается локально и в webif виден ECM time в районе 150-300 мс — можно подключать клиентов. Формат C-line, который клиент прописывает в своём конфиге, стандартный:
C: hostname 12000 username password
Hostname — IP или DNS вашего сервера. Если клиент за NAT и вы тоже за NAT — без проброса порта ничего не заработает.
Секция [account] в oscam.user
[account]
user = client01
pwd = secretpass
group = 1
caid = 0500
au = local_card
services = sky_de
cccmaxhops = 1
cccreshare = 0
Параметр caid в [account] — один из самых часто пропускаемых. Если карта читается и локально всё работает, но клиент получает not found — в 80% случаев проблема именно здесь. CAID в аккаунте не совпадает с CAID карты, и OScam отфильтровывает запрос ещё до обращения к ридеру.
Настройка C-line и N-line на стороне клиента
N-line — это протокол newcamd, формат другой:
N: hostname 28910 username password 01 02 03 04 05 06 07 08 09 10 11 12 13 14
14 цифр в конце — DES-ключ, он задаётся в [newcamd] секции oscam.conf параметром key. N-line стабильнее для одного CAID и одного провайдера — меньше overhead, нет hop-счётчика. C-line удобнее, когда нужно транслировать несколько CAID через одно подключение.
Параметры cccmaxhops, cccreshare, порт 12000
cccmaxhops = 1 означает, что ваш клиент получит карты только нулевого и первого хопа — то есть локальные карты и карты первого уровня шаринга. Карты с hop=2 и выше отсекаются. Это правильная настройка для контроля качества: чем больше хопов, тем выше ECM time.
cccreshare = 0 запрещает клиенту ресharить вашу карту дальше. cccreshare = 1 — разрешает один уровень решары. Без этого параметра клиент технически может построить свой сервер на ваших линиях — что вам, скорее всего, не нужно.
Порт 12000 — дефолт протокола CCcam. Задаётся в oscam.conf в секции [cccam] параметром port = 12000. Если на одном хосте запущены и CCcam, и OScam — один из них должен переехать на другой порт (например, 12001), иначе получите конфликт при старте.
Диагностика проблем: фризы, нет ключей, ECM timeout
Фризы на экране — самая распространённая жалоба. И самая неоднозначная, потому что причин может быть штук шесть разных. Начинать диагностику нужно с лога, а не с перезапуска всего подряд.
Чтение oscam.log и расшифровка статусов (found, not found, timeout)
В oscam.log каждый ECM-запрос заканчивается кодом возврата:
- rc=1 (found) — ключ найден и отправлен клиенту. Всё хорошо.
- rc=4 (not found) — ни один ридер не вернул ключ. Либо неверный CAID/ident, либо карта не подписана на этот канал, либо проблема с удалённым сервером.
- rc=5 (timeout) — запрос ушёл, но ответ не пришёл в течение таймаута (по умолчанию — значение
clienttimeoutв oscam.conf, обычно 1500-2000 мс). - rc=7 (cache) — ключ взят из кэша, не из ридера. Быстро и хорошо.
Если видите непрерывные rc=4 по конкретному каналу — проверьте CAID и ident. Иногда провайдер меняет ident, и нужно обновить oscam.services или убрать ограничение по ident вообще.
Фризы только на части каналов при работающем остальном — частый признак проблемы с EMM, а не ECM. Канал сменил ключи, карта не получила обновление EMM вовремя. Проверьте, включён ли au (автоапдейт) для ридера и соответствующего аккаунта.
Проблемы NAT, проброс портов, фаервол
Клиент пишет что подключился, но ключи не приходят — классика NAT. Проверка простая:
telnet your-server-ip 12000
Если соединение не устанавливается — порт закрыт. На роутере нужен проброс: внешний порт 12000 → внутренний IP сервера, порт 12000, протокол TCP. На Linux-сервере проверьте iptables:
iptables -L INPUT -n | grep 12000
Если правила блокируют — добавьте: iptables -A INPUT -p tcp --dport 12000 -j ACCEPT. То же самое для порта webif 8888, если нужен удалённый доступ к интерфейсу.
Высокий ECM time и нестабильный пиринг
ECM time выше 1000 мс гарантированно даёт фризы на большинстве ресиверов. Буфер декодера заканчивается раньше, чем приходит новое контрольное слово. Норма для локальной карты — 100-400 мс. Для одного хопа шаринга — 300-700 мс. Два хопа и больше — лотерея.
Нестабильный пиринг обычно виден в логе как чередование rc=1 и rc=5 на одном канале. Причина — высокий или скачущий пинг до удалённого сервера, или сам сервер перегружен и не успевает отвечать. В таких случаях помогает добавить второй сервер как fallback в oscam.server с тем же group — OScam выберет более быстрый автоматически.
Как выбрать поставщика линий: технические критерии
Технически грамотный выбор линии — это не про цену и не про красивый сайт. Это про измеримые параметры, которые можно проверить самостоятельно ещё на тестовом периоде.
На что смотреть: uptime, ECM time, локальные карты
Первое — ECM time. Просите тест и смотрите в oscam cccam webif на реальные цифры. Если ECM time стабильно держится в районе 200-500 мс — хороший знак. Если скачет от 100 до 1500 мс в течение часа — сервер перегружен или карта не локальная.
Второе — локальность карт. Hop=0 означает, что карта физически на этом сервере. Hop=1 — уже решара. Hop=2 и выше — это цепочка перепродажи, где каждый узел добавляет задержку. В webif в разделе "Services" видно hop-значение для каждого CAID.
Третье — uptime. Нормальный сервер держит 99%+ за месяц. Проверить реально только на тестовом доступе за несколько дней, желательно включая вечернее прайм-тайм.
Признаки нестабильного или перепроданного сервера
Перепроданный сервер легко опознать по паттерну в логе: вечером ECM time растёт с 300 до 800-1200 мс, ночью падает обратно. Это нагрузочная картина — слишком много клиентов на одну карту.
Ещё один признак — периодические rc=5 без видимой причины именно в прайм-тайм. Сам сервер не падает, пинг нормальный, но карта просто не успевает отвечать всем клиентам одновременно. В этом случае никакие настройки на вашей стороне не помогут — проблема у поставщика.
Высокий downhop (hop=3 и выше) — тоже тревожный сигнал. Цепочка из трёх перепродавцов нестабильна по определению: достаточно одному выпасть, и у вас нет ключей.
Тестовый период и мониторинг качества
На тестовом периоде включите debug-лог в oscam: параметр logfile в oscam.conf плюс уровень -r 4 при запуске. Пусть пишет несколько часов в прайм-тайм. Потом grep "rc=" /var/log/oscam/oscam.log | sort | uniq -c — сразу виден процент успешных запросов.
Хорошая линия: 95%+ rc=1 или rc=7, единичные rc=5 только при переключении каналов. Плохая линия: 30-40% rc=5 в вечернее время — это не "немного нестабильно", это непригодно для нормального просмотра.
Часто задаваемые вопросы
Можно ли использовать OScam и CCcam одновременно на одном ресивере?
Да, это рабочая схема. OScam запускается как основной эмулятор, принимает клиентов по протоколу CCcam на порту 12000, сам же подключается к удалённым серверам тоже по CCcam или newcamd. CCcam при этом запускать не нужно вообще — OScam полностью реализует протокол. Если всё же нужны оба бинарника — они должны слушать разные порты: например, OScam на 12000, CCcam на 12001. Иначе второй просто не запустится с ошибкой bind.
Какой порт по умолчанию использует протокол CCcam?
Порт 12000 TCP. Задаётся в секции [cccam] файла oscam.conf параметром port = 12000. Этот порт нужно пробрасывать на роутере, если сервер за NAT. Можно изменить на любой другой — клиент в C-line просто укажет новый порт. Никакого технического смысла держать именно 12000 нет, это просто исторически сложившийся дефолт.
Почему карта не читается в oscam.server?
Чаще всего три причины: неверный device (проверьте ls /dev/tty* и ls /dev/sci*), неверный protocol (попробуйте internal, smartreader, phoenix по очереди) или неверные mhz/cardmhz. Начните с mhz = 357 и cardmhz = 357. Также проверьте права: ls -la /dev/ttyUSB0 — пользователь oscam должен иметь доступ. Добавьте в лог уровень 4 и смотрите на этапе инициализации ридера — там будет точная причина.
Что означает ECM time и какое значение считается нормальным?
ECM time — время от момента, когда ресивер запросил контрольное слово (CW) для дешифровки, до момента его получения. Для локальной карты нормой считается 100-400 мс. Для одного хопа шаринга — до 700 мс. Выше 1000 мс начинаются фризы, потому что буфер декодера заканчивается раньше прихода нового CW. Посмотреть актуальный ECM time можно в webif на вкладке "Services" или в oscam.log по строкам с rc=1.
В чём разница между C-line и N-line?
C-line — это протокол CCcam: C: host port user pass. Передаёт несколько CAID через одно соединение, есть понятие хопа. N-line — протокол newcamd: N: host port user pass 01 02 ... 14. Работает с одним CAID и одним провайдером за сессию, зато стабильнее на слабых каналах из-за меньшего overhead. N-line предпочтительнее, если вам нужна одна конкретная карта с минимальной задержкой. C-line удобнее для агрегации нескольких CAID от одного поставщика.
Как ограничить решару своих линий клиентам?
Через параметры в oscam.user в секции [account]: cccreshare = 0 полностью запрещает клиенту ресharить вашу карту дальше по цепочке. cccreshare = 1 — позволяет один уровень. cccmaxhops = 1 в том же аккаунте дополнительно ограничивает, какие карты клиент вообще получит от вас. Глобальные дефолты задаются в секции [cccam] в oscam.conf параметрами reshare и cccmaxhops — они действуют на всех клиентов, у кого нет индивидуальных настроек в oscam.user.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.