OScam: настройка сервера кардшаринга с нуля (2026)

Если вы уже поставили OScam на ресивер или Linux-бокс и теперь смотрите на пустые конфиги — эта статья для вас. Oscam настройка с нуля пугает объёмом параметров, но на практике рабочая конфигурация умещается в четыре файла. Здесь я разберу каждый из них с реальными примерами, покажу связку ридер→пользователь и объясню, почему именно она ломается чаще всего.

Что такое OScam и из каких файлов состоит конфигурация

OScam — это softcam с открытым кодом, который умеет работать и как сервер кардшаринга, и как клиент, и как прокси между несколькими источниками. Он читает ECM-запросы от тюнера, отправляет их на карту или удалённый сервер, получает CW и отдаёт обратно декодеру. Всё это через набор текстовых конфигов.

Назначение основных конфиг-файлов

Минимальный набор для работы — пять файлов:

  • oscam.conf — глобальные настройки: логи, веб-интерфейс, dvbapi
  • oscam.server — ридеры (физические карты и сетевые подключения)
  • oscam.user — аккаунты клиентов, которые подключаются к вашему серверу
  • oscam.services — фильтрация по CAID и SID (опционально)
  • oscam.dvbapi — правила расшифровки для локального декодера

Все файлы — plain text в формате INI. Секции обозначаются квадратными скобками: [reader], [account], [global]. Лишних пробелов вокруг знака равенства быть не должно — парсер OScam к этому чувствителен.

Где лежат конфиги: /etc/tuxbox/config и /var/keys

Стандартные пути зависят от дистрибутива. На Enigma2-ресиверах это обычно /etc/tuxbox/config/oscam/. На Debian/Ubuntu — чаще /etc/oscam/ или /usr/local/etc/oscam/. На некоторых сборках встречается /var/keys/.

Путь к папке с конфигами задаётся ключом -c при запуске демона:

oscam -c /etc/tuxbox/config/oscam -b

Если запускаете через systemd или init-скрипт — проверьте там, какой путь прописан. Частая ошибка: oscam настройка делается в одной папке, а демон смотрит в другую.

Права доступа и кодировка файлов

Файлы конфигов должны быть доступны на чтение пользователю, под которым запущен OScam. Обычно хватает chmod 640 и владелец root:oscam. Если OScam крутится от root — вообще без разницы.

Кодировка — UTF-8 без BOM. Файлы, сохранённые в Windows Notepad в режиме «UTF-8 с BOM», не парсятся — OScam видит мусорные символы в начале первой строки и падает при старте. Аналогично с CRLF-переносами строк: если редактировали конфиг в Windows, прогоните через dos2unix oscam.conf перед запуском.

Базовая настройка oscam.conf и веб-интерфейса

Начнём с главного файла. Oscam настройка всегда начинается с oscam.conf — без него демон вообще не стартует. Ниже рабочий минимум.

Секция [global] и логирование

[global]
logfile                = /var/log/oscam.log
maxlogsize             = 500
nice                   = -1
saveinithistory        = 1
preferlocalcards       = 1

maxlogsize в килобайтах — 500 достаточно для диагностики, лог не разрастётся до гигабайта. nice = -1 даёт процессу чуть больший приоритет. preferlocalcards = 1 говорит OScam сначала пробовать локальные карты, и только потом идти в сеть — имеет смысл, если у вас есть физическая карта в ридере.

Секция [webif]: порт 8888 и доступ к статусу

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

Веб-интерфейс доступен по адресу http://192.168.1.X:8888 — это основной инструмент диагностики. Вкладка Status показывает активные соединения, Readers — состояние карт и сетевых ридеров, Users — кто подключён и что декодирует. Без этого работать вслепую.

httpallowed — обязательно ограничьте по IP. Оставлять веб-интерфейс открытым на весь интернет без ограничений — плохая идея.

Секция [dvbapi] для локального декодирования

Если OScam крутится прямо на ресивере с Enigma2 и должен расшифровывать каналы локально через dvbapi-демон:

[dvbapi]
enabled                = 1
au                     = 1
pmt_mode               = 0
request_mode           = 0
user                   = dvbapiuser
boxtype                = dreambox

pmt_mode — частый источник проблем. На некоторых Enigma2-сборках нужно pmt_mode = 4 вместо 0, иначе dvbapi не подхватывает PMT и каналы не расшифровываются, хотя ридер вроде бы работает. Попробуйте оба значения. user должен совпадать с аккаунтом в oscam.user.

Настройка ридеров в oscam.server: карта и сетевые протоколы

Файл oscam.server описывает источники ключей. Один блок [reader] — один источник. Может быть физическая карта, newcamd-сервер или cccam-сервер.

Локальный ридер смарт-карты (protocol=internal/mp35)

[reader]
label                  = local_card
protocol               = internal
device                 = /dev/sci0
mhz                    = 357
cardmhz                = 357
group                  = 1
caid                   = 0500
detect                 = cd
eca                    = 1

device — путь к ридеру смарт-карты. На Dreambox это /dev/sci0 или /dev/sci1, на некоторых других ресиверах /dev/ttyUSB0 (для внешних USB-ридеров). mhz и cardmhz — тактовая частота в десятых долях МГц. Значение 357 = 3.57 МГц, стандарт для большинства карт. Если карта не инициализируется — попробуйте 600 (6 МГц). Несовпадение этих параметров с реальной картой даёт ошибку ATR при инициализации.

Сетевой ридер newcamd (порт и DES-ключ)

[reader]
label                  = newcamd_server
protocol               = newcamd
device                 = 192.168.1.100,15050
key                    = 0102030405060708091011121314
user                   = myuser
password               = mypassword
group                  = 2
caid                   = 1810
reconnecttimeout       = 30

DES-ключ — ровно 28 hex-символов (14 байт). Это одна из самых частых ошибок: люди вставляют 32 символа (16 байт) или 24 (12 байт), OScam либо не стартует, либо соединение устанавливается, но CW не расшифровывается. Сервер и клиент должны использовать идентичный ключ.

В device — IP и порт через запятую без пробелов.

Подключение к серверу по протоколу cccam

[reader]
label                  = cccam_server
protocol               = cccam
device                 = server.example.com,12000
user                   = ccuser
password               = ccpassword
group                  = 3
cccversion             = 2.3.0
cccmaxhops             = 1
cccreconnect            = 30
reconnecttimeout       = 30

cccversion — версия протокола CCcam. Несовпадение версии с сервером вызывает разрыв соединения сразу после хендшейка. Если сервер работает на CCcam 2.2.1, а вы указали 2.3.0 — соединение может не установиться. Узнайте версию у провайдера или попробуйте 2.2.1, 2.3.0 и 2.0.11 по очереди. cccmaxhops = 1 ограничивает глубину карт — чем меньше, тем быстрее ECM.

Параметры group, caid, ident и services

Параметр group — это связующее звено между ридером и пользователем. Если ридер в группе 2, а пользователь в oscam.user указан с group = 1 — он никогда не получит CW с этого ридера. Никаких ошибок в логе при этом не будет, просто "not found". Это самая распространённая причина «всё настроено, но не работает».

caid фильтрует запросы по системе условного доступа. ident уточняет до провайдера (формат CAID:ProviderID). Например, caid = 1810:000000. Если указать неверный ident — ридер будет игнорировать запросы на этот пакет.

Раздача клиентам через oscam.user и проверка работы

После того как ридеры настроены и OScam видит карту — можно добавлять клиентов. Всё это в oscam.user.

Создание пользователя и пароля

[account]
user                   = client1
pwd                    = secretpass
group                  = 1,2
uniq                   = 1
au                     = 1
monlevel               = 2
expdate                = 2026-12-31

group здесь — список групп ридеров, к которым пользователь имеет доступ. Указываете через запятую. uniq = 1 означает, что с одним логином может быть подключён только один клиент одновременно — следующий выбьет предыдущего. Значение uniq = 4 отключает блокировку. au = 1 включает авто-обновление EMM-ключей для этого пользователя.

Ограничение по group, caid и числу подключений

Можно дополнительно ограничить пользователя по CAID:

[account]
user                   = restricted_client
pwd                    = pass123
group                  = 2
caid                   = 0500,1810
uniq                   = 2
maxconnections         = 1

maxconnections = 1 жёстко лимитирует одновременные сессии. caid здесь — фильтр на уровне пользователя, он может смотреть только указанные системы, даже если ридер открыт шире.

Проверка через веб-интерфейс и oscam.log

В веб-интерфейсе (порт 8888) строка активного пользователя показывает ECM time в миллисекундах. Норма — до 500–600 мс. Если видите 1500+ мс — ридер медленный или сетевая задержка до сервера высокая.

В логе нужные строки выглядят так:

2026/06/03 12:35:22 c client1 (192.168.1.5) ECM 0500/000000/1234 1 ms - FOUND (ecm time: 87ms)
2026/06/03 12:35:25 c client1 (192.168.1.5) ECM 0500/000000/1234 1 ms - NOT FOUND

FOUND — всё хорошо. NOT FOUND — нет карты или группы не совпадают. TIMEOUT — ридер не ответил за отведённое время.

Устранение типичных ошибок подключения и расшифровки

Разберём, что реально ломается и как это чинить.

Сервер не стартует: ошибки парсинга конфига

Первый шаг — запустить OScam в foreground с подробным логом:

oscam -c /etc/tuxbox/config/oscam -b -d 255 2>&1 | tee /tmp/oscam_debug.log

Флаг -b запускает в фоне, -d 255 — максимальный уровень отладки. Уберите -b, чтобы видеть вывод прямо в терминале. Ошибки парсинга выглядят как ERROR: error in oscam.server line 12 — по номеру строки сразу находите проблему.

Если конфиг редактировался в Windows — сначала обязательно dos2unix. BOM в начале файла даёт загадочную ошибку «unknown section» на первой секции.

Ещё одна причина: конфликт портов. Если два экземпляра OScam запущены одновременно — второй не сможет занять httpport 8888 и упадёт. Проверяйте через ss -tlnp | grep 8888.

Клиент online, но картинки нет (CW not found)

Алгоритм диагностики простой:

  1. В веб-интерфейсе: Readers → посмотреть статус ридера. Если «not connected» — проблема на уровне ридера, не пользователя.
  2. Проверить group ридера и group пользователя — они должны пересекаться.
  3. Проверить caid в обоих местах — если у ридера указан caid = 1810, а клиент шлёт ECM на CAID 0500 — ридер проигнорирует запрос.
  4. Посмотреть в логе строки с «rejected» — они скажут причину.

Высокий ECM time и таймауты

ECM time выше 800–1000 мс — плохо, картинка будет фризить. Причины:

  • Высокий ping до сервера (проверьте через ping server.example.com)
  • Перегруженный сервер — слишком много клиентов на одну карту
  • Слишком большой cccmaxhops — карта проходит через несколько промежуточных серверов
  • Медленная физическая карта — некоторые карты отвечают за 300–400 мс сами по себе

Таймауты при нормальном ping чаще всего означают перегрузку на стороне сервера или плохое интернет-соединение с потерей пакетов. Команда nc -zv server.example.com 15050 проверит, доступен ли порт вообще.

Проблемы с правами на /dev и смарт-картой

Если карта не инициализируется — смотрите ATR в логе:

2026/06/03 10:12:01 r local_card ATR: 3B 9F 21 0E ...
2026/06/03 10:12:01 r local_card card detected

Если строки ATR нет вообще — OScam не может открыть устройство. Проверьте права: ls -la /dev/sci0. Если пользователь oscam не входит в группу video или dialout — добавьте через usermod -aG video oscam.

Неверный cardmhz даёт ATR в логе, но потом ошибку инициализации. Попробуйте значения 357, 368, 600 — зависит от конкретной карты и ридера.

Как выбрать качественный источник без привязки к конкретному провайдеру

Здесь без рекламы. Просто технические критерии, которые реально отличают нормальный источник от мусора.

Объективные критерии стабильности

Главный параметр — ECM time. Стабильный источник даёт 50–300 мс на нормальном канале связи. Если в статусе OScam вы видите скачки от 100 до 2000 мс — сервер перегружен или у него проблемы с каналом до карты.

Процент freeze напрямую связан с ECM time. Если ECM time стабильно ниже 500 мс и hops = 1 — фризов почти не будет. Каждый лишний hop добавляет 100–300 мс задержки.

Аптайм. Серьёзный источник имеет аптайм 99%+ и резервные линии на случай падения основного сервера. Спрашивайте про backup-линии до подписки.

Технические признаки надёжного подключения

В веб-интерфейсе OScam (вкладка Readers) у хорошего ридера метрики выглядят примерно так:

  • Status: connected
  • ECM: стабильные значения, разброс не более 2–3x от минимального
  • Not found %: менее 1–2%
  • Timeout %: ноль или единицы

Если «not found» выше 5% — либо не все нужные CAID покрываются, либо сервер не всегда успевает ответить. Если timeout выше 1–2% — серьёзная проблема со стабильностью канала.

Красные флаги при выборе

Несколько признаков, после которых я бы не стал продолжать:

  • Нет тестового доступа. Любой нормальный источник даёт 24–48 часов теста. Без теста — кот в мешке.
  • Обещают ECM time 10–20 мс. Физически невозможно для удалённого сервера через интернет. 50–100 мс — реальный минимум.
  • Нестабильные пинги до сервера. Проверяйте через ping -c 100 server.example.com — потери выше 1% уже плохой знак.
  • Один сервер без резерва. Если основная линия упала — всё, смотреть нечего.

И последнее: использование кардшаринга для просмотра платных каналов без подписки нелегально в большинстве стран. Ответственность за это лежит на пользователе. Данная статья описывает техническую сторону oscam настройки в образовательных целях.

Частые вопросы

Какой порт по умолчанию использует веб-интерфейс OScam?

Стандартный порт — 8888, задаётся параметром httpport = 8888 в секции [webif] файла oscam.conf. Порт можно сменить на любой свободный. Доступ по IP ограничивается через httpallowed = 192.168.1.0/24 — обязательно настройте, если сервер смотрит в интернет.

В чём разница между протоколами newcamd и cccam в oscam.server?

Newcamd — классический протокол с фиксированным DES-ключом и одним CAID на соединение. Для каждого порта на сервере обычно одна карта. CCcam поддерживает несколько карт через одно соединение, передаёт информацию о доступных CAID автоматически и работает с hops — цепочками серверов. В oscam.server они описываются разными полями: newcamd требует key (28 hex), cccam — cccversion и cccmaxhops.

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

Самая частая причина — несовпадение параметра group между ридером в oscam.server и пользователем в oscam.user. Второе по частоте — неверный caid или ident. Смотрите в логе строки «NOT FOUND» — если они есть, ридер работает, но не находит нужную карту или игнорирует запрос из-за фильтра. Проверьте также статус ридера в веб-интерфейсе: вкладка Readers покажет, подключён ли он вообще.

Сколько символов должно быть в DES-ключе для newcamd?

Ровно 28 шестнадцатеричных символов — это 14 байт. Любое другое количество символов приведёт к тому, что OScam либо не стартует с ошибкой парсинга, либо соединение будет устанавливаться, но CW не будут расшифровываться. Ключ на сервере и клиенте должен быть идентичным.

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

Зависит от платформы. На Enigma2-ресиверах чаще всего /etc/tuxbox/config/oscam/, на Debian/Ubuntu — /etc/oscam/ или /usr/local/etc/oscam/. Путь задаётся параметром -c при запуске: oscam -c /etc/tuxbox/config/oscam. Чтобы точно узнать, какой путь использует текущий демон, посмотрите в init-скрипт или systemd unit-файл.

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

Запустите с флагами -d 255 (максимальный debug) без флага -b, чтобы видеть вывод в терминале: oscam -c /etc/tuxbox/config/oscam -d 255. OScam выведет номера строк конфига, где обнаружена ошибка. Также смотрите tail -f /var/log/oscam.log — там строки вида «error in oscam.server line X» или «unknown section» сразу указывают на проблему.

Практические советы для стабильного просмотра

Даже самая стабильная линия 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 или внешние мониторы.