Newcamd reshare: настройка на OScam и CCcam (2026)

Если вы уже подняли OScam или CCcam и хотите раздать карту пирам — значит, рано или поздно столкнётесь с тем, что newcamd reshare: настройка оказывается не такой очевидной, как кажется по первым туториалам. Большинство гайдов просто вставляют блок конфига и двигаются дальше. Здесь разберём механику: что происходит внутри, почему group mismatch убивает раздачу, и как правильно связать reader с клиентами без фризов.

Что такое newcamd reshare и когда он нужен

Newcamd — протокол точка-точка. Один порт обслуживает один профиль карты с конкретным CAID, и каждое соединение защищено 14-байтным DES-ключом. Это не CCcam с его глобальным каналом — здесь нет концепции "общего пула карт". Каждый клиент видит только то, что ему явно разрешено на конкретном порту.

Reshare в контексте newcamd означает одно: сервер получил ECM-ответ (CW, Control Word) от локального ридера или входящей линии и передаёт его дальше своим клиентам. Сам протокол newcamd этого не автоматизирует — вся логика лежит на стороне OScam или CCcam, которые используют newcamd как транспорт.

Отличие newcamd от CCcam-протокола при решаре

CCcam передаёт вместе с CW параметры hop и distance — клиент знает, через сколько узлов прошёл ответ. Newcamd не передаёт ничего подобного. Клиент получает CW и не имеет представления, откуда он пришёл — с локальной карты или через цепочку из трёх серверов.

Это значит, что ограничение глубины раздачи в newcamd нельзя сделать автоматически. Всё делается вручную: через параметры reshare и group в OScam, либо через F: { } в CCcam.

Сценарии: раздача локальной карты и реэкспорт входящих линий

Два принципиально разных сценария, которые часто путают. Первый: у вас есть физическая карта в ридере (USB, встроенный CI), и вы хотите раздать её декодированные CW по newcamd клиентам. Второй: вы получаете линию от кого-то (по CCcam или newcamd) и хотите перераздать её своим пирам.

Конфиги для этих сценариев похожи снаружи, но логика группировки разная. В первом случае reader — это физическое устройство. Во втором — протокольное соединение, входящее в OScam как protocol = newcamd или protocol = cccam.

Когда reshare запрещён условиями провайдера линий

Большинство поставщиков линий явно запрещают реэкспорт. Это прописывается в условиях использования, а технически контролируется через мониторинг нагрузки и количества уникальных ECM-запросов. Если ваша входящая линия внезапно начинает обслуживать 20 клиентов вместо одного — это видно по времени ответа и паттернам запросов.

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

Настройка newcamd-сервера в OScam (oscam.conf, oscam.server, oscam.user)

Файлы конфигурации OScam по умолчанию лежат в /etc/tuxbox/config/ или /usr/local/etc/oscam/ — зависит от дистрибутива. На OpenPLi и Enigma2-боксах чаще всего /etc/oscam/. Прежде чем трогать конфиги, убедитесь через ps aux | grep oscam, что демон запущен, и запомните путь из аргумента -c.

Секция [newcamd] в oscam.conf: порт, key, allowed

В основном файле oscam.conf описывается, какие протоколы слушает сервер. Для newcamd нужна секция:

[newcamd]
key = 0102030405060708091011121314
port = 16001@0B00:000000
allowed = 192.168.1.0/24,10.0.0.0/8

Ключ key — это 14 байт в hex, он должен совпадать у сервера и клиента. Если генерируете свой — используйте нормальный генератор случайных байт, а не повторяющиеся последовательности вроде 0102030405060708091011121314 из примеров. Это дефолтный ключ, который знают все, — менять обязательно.

Привязка порта к caid в формате port = 16000@0500:000000

Формат port = номер@CAID:ident. Нули в ident означают "любой провайдер этого CAID". Для Viaccess CAID 0500 это выглядит как 16000@0500:000000. Для Nagravision 0B00 — 16001@0B00:000000.

Если у вас несколько карт разных систем, каждой нужен отдельный порт:

port = 16000@0500:000000|16001@0B00:000000|16002@1800:000000

Один порт — одна CAID-группа. Клиент, подключающийся на порт 16000, получает только ответы по CAID 0500. Это не ограничение, а архитектурная особенность протокола.

oscam.user: аккаунт клиента, group, au, caid/ident

Файл oscam.user описывает каждого клиента. Минимальный рабочий блок:

[account]
user = client1
pwd = secretpass
group = 1
au = 0
caid = 0B00
ident = 0B00:000000

Параметр group здесь — это не группа пользователей в привычном смысле. Это идентификатор связки: клиент в group 1 будет обслуживаться ридерами, у которых тоже указан group = 1 в oscam.server. Если group не совпадают — клиент подключится, но ни один ECM не пройдёт. Это самая частая ошибка при первичной настройке.

au = 1 включает автообновление ключей (EMM). Ставьте это только для доверенных клиентов и только если карта это поддерживает. Если несколько клиентов имеют au = 1 на одну карту — возможен конфликт записи EMM.

Раздача локального ридера через group-связку

В oscam.server ридер физической карты выглядит так:

[reader]
label = local_nagra
protocol = mouse
device = /dev/sci0
caid = 0B00
group = 1
ident = 0B00:000000

Group = 1 здесь и group = 1 в oscam.user — это и есть связка. OScam маршрутизирует ECM от клиента к ридеру через эту групповую логику. Добавьте второй ридер с group = 2, и клиенты из group 1 его не увидят — это удобно для разделения источников.

Reshare входящих линий: OScam как прокси newcamd

Здесь механика немного другая. Входящая линия описывается как reader с protocol = newcamd, и OScam превращается в прокси: получает CW от внешнего источника и отдаёт своим клиентам. Это и есть newcamd reshare: настройка в режиме реэкспорта.

Входящий reader типа newcamd в oscam.server

[reader]
label = incoming_line
protocol = newcamd
device = provider-host.example,16000
key = 0102030405060708091011121314
user = myuser
password = mypass
caid = 0B00
group = 2
ident = 0B00:000000
inactivitytimeout = 30

Параметр inactivitytimeout = 30 задаёт, через сколько секунд бездействия соединение пересоздаётся. Без него некоторые линии молча умирают и не переподключаются — клиенты получают замёрзший экран без единой ошибки в логах.

Параметры cccreshare и reshare для проксирования

В oscam.user для аккаунтов, которым разрешена дальнейшая раздача, добавляется:

reshare = 1

Значение 0 — клиент получает CW, но не может раздавать дальше. Значение 1 — может раздавать один уровень. Значение N — N уровней вглубь. Для большинства сценариев reshare = 0 или reshare = 1 достаточно.

Параметр cccreshare касается CCcam-клиентов, подключённых к тому же OScam-серверу. Это разные параметры — путаница между ними частая проблема.

Ограничение раздачи через ident и chid

Если не хотите отдавать клиентам все пакеты со входящей линии — используйте фильтрацию. В oscam.user:

ident = 0B00:000000,000010
chid = 0B00:1234

Это ограничивает клиента конкретными провайдерами и channel ID. Полезно, когда входящая линия даёт больше, чем вы хотите раздавать, и вы не хотите "светить" источник избыточными ответами.

Цепочка group для разделения источников

Рабочая схема при нескольких источниках: локальная карта в group 1, входящая линия в group 2. Клиентам уровня A назначаете group = 1 (только локальная карта), клиентам уровня B — group = 1,2 (оба источника). OScam использует loadbalancer для выбора оптимального ридера при наличии нескольких в одной group.

Reshare через CCcam с источником newcamd (CCcam.cfg)

CCcam использует другой синтаксис и другую логику. Конфиг — единственный файл /etc/CCcam.cfg. Для подключения newcamd-источника используется строка типа N:.

Строка N: для подключения newcamd-источника

N: provider-host.example 16000 myuser mypass 01 02 03 04 05 06 07 08 09 10 11 12 13 14

DES-ключ здесь пишется через пробел побайтово — 14 значений в hex. Это отличается от OScam-формата, где ключ пишется слитно. Если скопируете ключ из OScam-конфига без разбивки — CCcam его не примет и не выдаст внятную ошибку в логах.

Параметр F: { } и контроль hop/distance

В CCcam.cfg строка F: описывает, каких клиентов принимать и как ограничивать раздачу:

F: clientuser clientpass 1 0 0

Третий параметр — максимальное количество hop для раздачи. При reshare newcamd-источника CCcam добавляет к нему hop = 1 сразу. Значит, клиенты CCcam увидят эту карту с distance 1, а их клиенты — с distance 2. Если установить ограничение в 1 hop, второй уровень раздачи уже отрезан.

Связка с C: линиями и опасность двойной раздачи

Если одновременно используете N: источник и раздаёте по C: клиентам — CCcam сам решает, какой ответ использовать. Проблема в том, что CCcam при newcamd reshare: настройка через N: не всегда корректно обрабатывает CAID-маппинг. Я видел ситуации, когда CCcam отвечал на ECM с неверного источника и получал reject, хотя OScam с той же линией работал без проблем.

Смешивание newcamd-источника и CCcam-раздачи часто даёт нестабильность при частой смене ключей. Для серьёзной инфраструктуры рекомендую OScam — он предсказуемее в этих сценариях.

Диагностика: почему reshare не отдаёт каналы

Большинство проблем после первоначальной настройки решаются за 10 минут через лог. Включите debug-режим в oscam.conf:

[logging]
logfile = /var/log/oscam.log
debuglevel = 64

Для полной картины используйте debuglevel = 255, но это тонны данных — только для краткосрочной диагностики. Смотрите лог: tail -f /var/log/oscam.log | grep -i "ecm\|group\|reader\|rejected".

Проверка логов: ecm rejected, group mismatch, no matching reader

Самые говорящие сообщения:

  • no matching reader — клиент в group, к которой не привязан ни один ридер. Проверьте group в oscam.server и oscam.user.
  • group mismatch — то же самое, но явно. Group клиента не пересекается с group ридера.
  • ecm rejected — ридер получил ECM, но вернул ошибку. Причины: неверный CAID, ident не совпадает, карта не поддерживает этот канал.
  • connection refused при коннекте ридера — проблема сети или неверный порт/адрес.

Проверить, что порт реально слушается: ss -tlnp | grep 16001. Если порта нет в выводе — OScam не стартовал секцию newcamd, ищите ошибку при запуске.

Несовпадение DES key и ошибка подключения

Если ключ не совпадает у сервера и клиента — соединение устанавливается (TCP handshake проходит), но newcamd-аутентификация завершается ошибкой. В логах это выглядит как обрыв соединения сразу после коннекта без явного сообщения о причине.

Проверяйте ключ побайтово. Частая ошибка — скопировали ключ с пробелами в OScam-формат (без пробелов) или наоборот. OScam принимает 0102030405060708091011121314, CCcam ожидает 01 02 03 04 05 06 07 08 09 10 11 12 13 14.

Файрвол и проброс порта (iptables/NAT)

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

Проброс через iptables на самом сервере (если он же роутер):

iptables -t nat -A PREROUTING -p tcp --dport 16001 -j DNAT --to-destination 192.168.1.100:16001
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 16001 -j ACCEPT

Дополнительно: в секции [newcamd] в oscam.conf параметр allowed фильтрует по IP. Если клиент приходит с IP, не входящего в список — в лог не пишется ничего, соединение просто дропается. Добавьте IP клиента или уберите ограничение временно для диагностики.

Фризы из-за ECM interval и таймаутов

Фризы при работающем reshare — отдельная история. Если каналы открываются, но зависают каждые 10-30 секунд, смотрите на ecmwhitelist и таймауты ридера:

[reader]
ecmwhitelist = 0B00@000000:80,81,82
ecmnotfound_tocache = 1

Включите loadbalancer: в oscam.conf секция [global], параметр lb_mode = 1. Он выбирает ридер с наименьшим временем ответа и автоматически переключается при деградации.

Также проверьте пинг до входящей линии. ECM-ответ должен приходить за 200-400 мс до истечения window ключа. Если пинг 300 мс до источника и ещё добавляется overhead самого OScam — на канале с коротким интервалом смены ключей начнутся фризы. Решение: ближе источник или ecm_timeout в настройках ридера уменьшить до реального значения.

Чем reshare в newcamd отличается от CCcam?

Newcamd не передаёт параметры hop и distance. Клиент получает CW без информации о том, сколько узлов он прошёл. Контроль глубины раздачи делается вручную — через параметр reshare на уровне аккаунта в OScam или через фильтр ident. CCcam автоматически считает hop и может ограничивать раздачу на уровне протокола. Ещё отличие: newcamd — один порт на один CAID-профиль, CCcam использует единое соединение для всех карт сразу.

Какой порт указывать для newcamd reshare?

Любой свободный TCP-порт от 1024 до 65535. Традиционно используют диапазон 16000+: 16000 для первой карты, 16001 для второй и так далее. Главное — один порт под один CAID. Формат в oscam.conf: port = 16001@0B00:000000. Убедитесь, что порт не занят другим процессом (ss -tlnp | grep 16001) и открыт в файрволе.

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

Чаще всего — несовпадение group между reader в oscam.server и account в oscam.user. Клиент успешно авторизуется по логину/паролю, но OScam не находит ридер в его группе — и ECM-запросы уходят в никуда. Второй вариант: неверный CAID или ident в oscam.user. Третий: au = 0 при работе с линией, которая требует EMM для обновления ключей. Смотрите лог с debuglevel = 64 — там будет конкретная причина.

Можно ли реэкспортировать входящую линию через newcamd?

Технически — да. Добавляете ридер с protocol = newcamd в oscam.server, связываете через group с клиентами, и OScam автоматически проксирует CW. Но почти все провайдеры линий это запрещают условиями использования. Детектируется по аномальному числу ECM-запросов с одного аккаунта — бан обычно приходит без предупреждения. Если хотите раздавать — используйте собственные карты.

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

В OScam — параметр reshare = 0 в oscam.user полностью запрещает клиенту дальнейшую раздачу. reshare = 1 разрешает один уровень. Дополнительно ограничивайте через ident и caid, чтобы клиент не мог запрашивать пакеты за пределами разрешённого. В CCcam — параметр hop в строке F:, третий аргумент.

Что делать с постоянными фризами после настройки reshare?

По порядку: проверьте пинг до источника (должен быть стабильным, в идеале до 100 мс). Включите loadbalancer в OScam (lb_mode = 1 в секции [global]). Увеличьте inactivitytimeout в ридере до 60 секунд. Проверьте, нет ли петли решары — двух серверов, которые обмениваются ECM между собой (видно в Status в oscam webif). Если линия нестабильна сама по себе — никакая настройка не поможет, проблема на стороне источника.

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

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