OScam group ридеров: настройка групп в 2026

Главная Статьи OScam group ридеров: настройка групп в 2026

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

06.06.2026

OScam group ридеров: настройка групп в 2026

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

Эта статья для тех, кто уже поднял OScam, завёл первые ридеры и аккаунты, но упёрся в то, что карты не отдаются. Разберём механику групп изнутри, покажем рабочие конфиги и расскажем, как читать логи, чтобы быстро найти причину.

Что такое group в OScam и зачем он нужен

Group — это числовая метка от 1 до 64. Её назначают и ридеру в oscam.server, и пользователю в oscam.user. Когда клиент посылает ECM, OScam смотрит: есть ли хотя бы одна группа, которая есть и у аккаунта, и у какого-либо ридера? Если да — ридер кандидат на обработку запроса. Нет совпадения — ридер невидим для этого клиента, вообще, полностью.

Минимальный пример. Ридер: group = 1. Аккаунт: group = 1. Связь есть. Меняем у аккаунта на group = 2 — связи нет, ридер для этого пользователя исчезает из картины.

Логика связывания ридеров и аккаунтов через группы

OScam не строит маршруты заранее. При каждом ECM-запросе демон перебирает список ридеров, у которых есть пересечение групп с текущим аккаунтом. Из них выбирает подходящий по другим критериям — caid, ident, задержка. Но до этой проверки дойдут только те ридеры, у которых группа совпала.

Важный момент: можно иметь ридер с group = 1,2 и аккаунт с group = 3,4 — пересечения нет, связи нет. Но если у аккаунта group = 2,3, а у ридера group = 1,2 — пересечение по группе 2 есть, и связь работает. Это часто удивляет новых пользователей.

Чем group отличается от caid, ident и services

Group — это фильтр доступа к ридеру. Он отвечает на вопрос «может ли вообще этот клиент использовать этот ридер». Caid и ident — уже вторичные фильтры, которые уточняют, какие карты и провайдеры доступны через уже доступный ридер. Services — ещё один уровень, который режет конкретные каналы/сервисы.

Порядок такой: сначала group отбирает кандидатов, потом caid/ident фильтруют из кандидатов подходящих, потом services добавляют дополнительные ограничения. Если не понять этот порядок — будешь добавлять нужный caid в ридер и удивляться, что ничего не меняется, потому что group уже отрезала ридер на первом шаге.

Как OScam выбирает ридер для запроса ECM

После фильтрации по группам OScam применяет lb (load balancing). Демон смотрит на историю ответов каждого ридера-кандидата: какой отвечал быстрее, какой чаще давал успешные ответы на этот конкретный caid. На основе этой статистики и выбирается итоговый ридер.

Это означает, что настройка group — это не маршрутизация в привычном смысле. Нельзя через group сказать «этот ECM иди именно вот в этот ридер». Group только открывает или закрывает дверь. Маршрутизацию конкретного CAID к конкретному ридеру делают через ограничения caid= в секции ридера.

Настройка group в oscam.server и oscam.user

Файлы конфигурации лежат в том каталоге, который передан при запуске через ключ --config-dir. На Enigma2-боксах это чаще всего /etc/tuxbox/config/oscam/ или /etc/oscam/. На OpenPLi и подобных дистрибутивах иногда встречается /var/keys/. Смотрите, как у вас запущен демон — ps aux | grep oscam покажет полную строку с аргументами.

Параметр group в секции [reader] файла oscam.server

Каждый ридер — это отдельная секция [reader] в oscam.server. Выглядит примерно так:

[reader]
label                = local_card
protocol             = internal
device               = /dev/sci0
caid                 = 0500
group                = 1

Этот ридер доступен только аккаунтам с group = 1 (или с группой, включающей 1). Если у ридера вообще не задан параметр group или он пустой — ридер фактически недоступен никому. Это не очевидно из документации, но именно так и работает.

Параметр group в секции [account] файла oscam.user

В oscam.user структура аналогичная:

[account]
user                 = client1
pwd                  = secretpass
group                = 1
au                   = 1

Этот клиент видит все ридеры с group = 1. Если добавить другому клиенту group = 2, он будет работать только с ридерами группы 2. Готово — простейшая изоляция клиентов по источникам.

Назначение нескольких групп через запятую (group = 1,2,3)

Один ридер или аккаунт может принадлежать нескольким группам одновременно. Синтаксис прямой:

group = 1,2,3

Ридер с group = 1,2 доступен и клиентам группы 1, и клиентам группы 2. Это удобно, когда нужен общий ридер для нескольких классов пользователей. Но аккуратно: такой ридер видят все эти клиенты, и если это локальная карта — она окажется доступна всем, кому она не должна быть доступна.

Путь к конфигам: /etc/tuxbox/config/oscam/ и /var/keys/

Два самых распространённых расположения — /etc/tuxbox/config/oscam/ (типично для Enigma2 на Dreambox, Vu+, GigaBlue) и /var/keys/ (встречается на более старых прошивках и некоторых OpenATV-сборках). Проверить просто:

ls /etc/tuxbox/config/oscam/
ls /var/keys/

Там должны лежать файлы oscam.conf, oscam.server, oscam.user. После изменения конфигов применить настройки можно через веб-интерфейс на порту 8888 (по умолчанию, если не менялось httpport в oscam.conf). Раздел — «Restart» или «Reload».

Типовые схемы группировки ридеров

Схема групп — это архитектурное решение. Плохо спланированные группы дают либо слишком открытый доступ, либо непонятные разрывы связи. Вот три схемы, которые реально работают.

Разделение локальных карт и удалённых линий

Самая базовая и правильная схема: локальная карта в группе 1, входящие CCcam/Newcamd-линии в группе 2. Клиентам назначаем group = 1,2 или только group = 2 — в зависимости от того, хотим ли мы давать им доступ к локальной карте напрямую.

[reader]
label                = my_local_card
protocol             = internal
device               = /dev/sci0
group                = 1

[reader]
label                = incoming_cccam_line
protocol             = cccam
device               = remote.example.net
port                 = 12000
user                 = myuser
password             = mypass
group                = 2

Клиент с group = 2 видит только входящую линию. Клиент с group = 1,2 видит и локальную карту, и линию. Просто и чётко.

Группы для отдачи разным клиентам разного набора каналов

Если нужно дать клиенту A доступ к одному набору ридеров, а клиенту B — к другому, назначаем им разные группы. Ридеры тоже получают группы, соответствующие нужным клиентам. Никакого пересечения между клиентами A и B — никакого пересечения в группах их ридеров.

Скажем, группы 10–19 — для платящих клиентов с доступом к спутниковым картам. Группы 20–29 — для тестовых аккаунтов с доступом только к одному дешёвому ридеру. Такая схема легко масштабируется и читается.

Защита локальной карты от пересдачи (reshare) через группы

Изоляция локальной карты в отдельную группу — первый шаг, но не достаточный. Если клиент получил декриптованный ответ с локальной карты, он технически может передать его дальше — если его аккаунт разрешает reshare. Group сама по себе пересдачу не блокирует.

Для реальной защиты нужна комбинация: группа изолирует карту, а в секции клиентского аккаунта — reshare = 0. Тогда клиент пользуется картой, но не может предложить её своим «гостям».

Комбинация group с параметрами reshare и cccmaxhops

Параметр reshare в секции [account] контролирует, на сколько уровней клиент может пересдавать полученный декрипт. reshare = 0 — запрет. reshare = 1 — один хоп, клиент может пересдать своим клиентам, но те уже нет.

cccmaxhops в oscam.conf — глобальное ограничение глубины для CCcam-протокола. Устанавливать в 1–2 на большинстве серверов — разумно. Комбинация group + reshare = 0 + cccmaxhops = 1 даёт нормальную защиту от утечки локальной карты наружу.

Диагностика проблем с группами

Когда карта не отдаётся, первое место для смотрения — oscam.log. Лог покажет, что именно пошло не так и на каком шаге OScam отказался обрабатывать ECM.

Чтение oscam.log: 'no matching reader' и группы

Строка, которую нужно искать при проблемах с группами:

no matching reader found

Или вариации вроде no reader for this card. Это значит, что OScam прошёл по всем ридерам, прошедшим групповую фильтрацию, и ни один не подошёл — либо по caid, либо по ident, либо ридер offline. Если такой строки нет вообще — ECM возможно даже не дошёл до стадии поиска ридера из-за проблем с подключением клиента.

Если видите no reader with matching group — проблема именно в группах. Значит, у аккаунта и у всех ридеров нет ни одного совпадающего числа в group.

Проверка через веб-интерфейс: вкладка Readers и Users

Зайдите на http://[адрес_бокса]:8888. В разделе «Users» найдите нужного клиента — там видно, какие ридеры у него «разрешены» по группам. Если список пустой или не содержит ожидаемый ридер — значит, group не совпадает.

В разделе «Readers» видны статусы ридеров. Ридер может быть «connected», но это не значит, что он доступен конкретному клиенту. Группа проверяется не на уровне статуса ридера, а на уровне конкретного запроса.

Уровни логирования и debug (параметр -d или loghistorysize)

По умолчанию OScam не пишет подробности о выборе ридера. Чтобы увидеть полную картину, нужно поднять уровень логирования. В oscam.conf в секции [global]:

[global]
logfile              = /var/log/oscam.log
maxlogsize           = 200
loghistorysize       = 4096

Или запустить OScam с флагом -d 64 для максимально подробного вывода — в логе появятся строки с разбором каждого ECM-запроса, включая перебор ридеров и причины отклонения. Предупреждение: логи на этом уровне растут очень быстро, держите включённым только на время диагностики.

Команда проверки соответствия групп клиента и ридера

Быстрая ручная проверка без перезапуска: откройте одновременно oscam.server и oscam.user и сравните числа в строках group= для нужного ридера и нужного аккаунта. Пересечение есть — должна быть связь. Нет — не будет.

grep -A 20 "label.*my_reader" /etc/tuxbox/config/oscam/oscam.server | grep group
grep -A 20 "user.*client1" /etc/tuxbox/config/oscam/oscam.user | grep group

Это грубо, но быстро. Если числа не пересекаются — вот и ответ.

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

Когда речь идёт о внешних CCcam/Newcamd-линиях, которые добавляются в oscam.server как дополнительные ридеры, качество источника напрямую влияет на то, насколько вообще имеет смысл его подключать. Плохая линия — это постоянные таймауты, рассыпающийся шаринг и бесконечная отладка.

Критерии оценки стабильности линии

Первое — аптайм. Линия, которая падает раз в несколько часов, бесполезна даже при хорошем пинге. Второе — пинг. Для нормального декрипта нужно укладываться в 500–600 мс на весь путь ECM→ответ. Линии с пингом выше 800 мс дают заметные задержки при переключении каналов.

Третье — число хопов. Каждый хоп добавляет задержку и риск обрыва. Линия с 1 хопом (прямой сервер с картой) надёжнее линии с 3 хопами через несколько промежуточных серверов.

На что смотреть: пинг, аптайм, количество hops

В OScam количество хопов видно в статусе CCcam-ридера после подключения — параметр hops в веб-интерфейсе или в логе при установке соединения. Идеальное значение — 1. Всё, что выше 3 — уже сомнительно с точки зрения задержек.

Пинг проверяется через ECM-статистику: в веб-интерфейсе в деталях ридера видна средняя задержка ответа. Если постоянно выше 600 мс — стоит поискать альтернативу или подключиться к более близкому серверу географически.

Аптайм отслеживается либо внутренней статистикой OScam, либо внешним мониторингом — например, простым скриптом, который раз в минуту проверяет состояние ридера и пишет в лог. За неделю наблюдений картина становится понятной.

Юридические аспекты и личное использование

Здесь нужно быть прямым. Материал в этой статье носит технический образовательный характер и описывает работу с собственным легально приобретённым оборудованием и картами. Использование чужих подписок, пересдача чужих карт и организация шаринга без согласия правообладателей — это нарушение условий вещателей и в большинстве стран ЕС и России прямо попадает под законодательство о защите авторских прав.

Настройка OScam group ридеров имеет легитимный смысл: объединить несколько собственных ресиверов в локальной сети, чтобы одна карта работала на несколько телевизоров в одном доме. Это законная практика, и именно для этого сценария написана данная статья.

Сколько групп можно назначить одному ридеру в OScam?

OScam поддерживает номера групп от 1 до 64. Одному ридеру или аккаунту можно назначить любое количество групп из этого диапазона через запятую: group = 1,5,12,64. Один и тот же номер группы может использоваться у любого числа ридеров и аккаунтов одновременно — это нормально и задумано именно так.

Почему клиент не видит карту, хотя ридер работает?

Чаще всего причина — несовпадение group у секции [account] и секции [reader]. Проверьте: хотя бы одно число в group должно присутствовать и там, и там. Если group совпадает, но карта всё равно не отдаётся — смотрите на caid и ident: возможно, ридер фильтрует конкретные провайдеры, а нужный caid не входит в разрешённые.

В чём разница между group и services в OScam?

Это два разных уровня фильтрации. Group — это контроль доступа к ридеру: видит клиент ридер или нет. Services — это фильтр на уровне конкретных каналов и сервисов: даже если ридер доступен, через services можно ограничить, какие именно SID/CAID клиент может запрашивать. Они не взаимозаменяемы и работают последовательно.

Нужно ли перезапускать OScam после изменения group?

Изменения в oscam.user часто подхватываются мягким reload через веб-интерфейс на порту 8888 — без полного перезапуска. Изменения в oscam.server обычно требуют полного рестарта демона, потому что ридеры инициализируются при запуске. Безопаснее всего после правок в обоих файлах делать полный restart через веб-морду или командой killall -HUP oscam.

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

Group сама по себе пересдачу не блокирует — она только управляет доступом к ридеру. Для запрета пересдачи: изолируйте локальный ридер в отдельную группу (например, group = 1), и в секции каждого клиентского [account] добавьте reshare = 0. Дополнительно в oscam.conf ограничьте cccmaxhops = 1. Только комбинация этих трёх параметров даёт реальную защиту.

Можно ли оставить group пустым?

Технически можно, но смысла нет. Ридер или аккаунт без параметра group (или с пустым значением) не сматчится ни с кем — ридер будет недоступен любому клиенту, аккаунт не получит доступ ни к одному ридеру. Всегда задавайте хотя бы group = 1. Это азбука настройки, но именно этот пропуск — одна из самых частых причин, почему новые конфиги не работают с первого раза.

О статье

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