NewCamd NodeID: настройка и генерация в OScam
Если соединение NewCamd не поднимается и ты уже перепроверил логин с паролем трижды — скорее всего, проблема в NodeID. Тема newcamd nodeid: настройка на первый взгляд кажется мелочью, но именно здесь ломается большинство конфигов у людей, которые переходят с CCcam на OScam или впервые настраивают newcamd-линию. Разберём всё по порядку: что это такое, где взять, куда вписать, и что делать когда ничего не работает.
Что такое NodeID в протоколе NewCamd и зачем он нужен
NewCamd — это протокол кардшаринга с шифрованием рукопожатия на основе DES. При установке соединения клиент и сервер обмениваются идентификаторами. NodeID — это и есть идентификатор узла, который передаётся в процессе этого обмена. Сервер видит, кто подключается, и может разрешить или запретить соединение на основе этого значения.
NodeID как идентификатор узла в NewCamd
Технически NodeID встроен в пакет логина NewCamd. Клиент отправляет его серверу при каждом подключении. Сервер может хранить список допустимых NodeID для конкретного пользователя — тогда с другого устройства с другим NodeID войти не получится, даже с правильным паролем.
На практике это используется для привязки линии к одному устройству. Купил линию — провайдер зафиксировал твой NodeID. Попробовал подключиться с ресивера и одновременно с ПК — второй будет отбит.
Формат: 14 hex-символов (7 байт)
NodeID — это ровно 14 шестнадцатеричных символов. Только цифры 0–9 и буквы A–F (регистр обычно не важен, но лучше использовать заглавные). Это 7 байт в шестнадцатеричном представлении. Пример валидного NodeID: 0A1B2C3D4E5F6A.
Невалидные варианты, которые не работают: меньше или больше 14 символов, символы вне диапазона hex (например, G или Z), строка из одних нулей 00000000000000 — OScam некоторых версий принимает, но сервер на той стороне может отклонить.
Чем NodeID отличается от DES-ключа и порта
Это три разные вещи, которые постоянно путают. DES-ключ (key) — 28 hex-символов, используется для шифрования самого рукопожатия. NodeID — 14 символов, идентификатор узла. Порт — число, по умолчанию 14000, задаётся в конфиге сервера.
Если коротко: порт — куда стучаться, DES-ключ — как шифруем разговор, NodeID — кто ты такой. Все три должны совпасть с тем, что выдал провайдер, иначе соединение не пройдёт.
Где взять NodeID и как его сгенерировать
Хорошая новость: в большинстве случаев тебе не нужно ничего придумывать самому. OScam сам генерирует NodeID. Плохая новость: если провайдер привязал линию к конкретному значению, нужно либо узнать его у провайдера, либо сообщить провайдеру свой — и попросить перепривязать.
Автогенерация NodeID в OScam
При первом запуске OScam, если NodeID нигде не задан, он генерируется автоматически на основе MAC-адреса или случайных данных (зависит от версии сборки). Значение сохраняется и остаётся постоянным между перезапусками — в нормальных сборках. Но есть нюанс.
Некоторые кастомные сборки OScam для embedded-устройств генерируют NodeID заново при каждом старте. Это ломает привязку у провайдера — он видит новый NodeID и отбивает соединение. Если столкнулся с этим, единственное решение — задать NodeID вручную в конфиге.
Ручная генерация валидного 14-символьного значения
Придумать NodeID элементарно. Возьми любые 14 символов из набора 0–9 и A–F. Можно использовать последние 14 символов MAC-адреса своего роутера без двоеточий, например. Или просто набить что-то вроде AABBCC112233AA.
Если нужен быстрый вариант через командную строку:
cat /dev/urandom | tr -dc 'A-F0-9' | head -c 14
Это выдаст случайную валидную строку. Скопировал — вписал в конфиг — готово.
Как посмотреть текущий NodeID клиента в логе
Запусти OScam с дебагом: oscam -d 65535. При подключении newcamd-клиента в логе появится строка вида:
newcamd: client connected from 192.168.1.100, NodeID: 0A1B2C3D4E5F6A
Также NodeID видно в веб-интерфейсе OScam (по умолчанию порт 8888) в разделе Status → Readers. Там отображается текущий статус каждого ридера, включая идентификатор подключившегося клиента.
Настройка NewCamd NodeID на стороне клиента (oscam.server)
Файл oscam.server находится в зависимости от платформы: на Enigma2 это обычно /etc/tuxbox/config/oscam/oscam.server или /usr/keys/oscam.server. На Linux-сервере — /etc/oscam/oscam.server. Именно здесь описываются ридеры — источники карт, к которым OScam подключается как клиент.
Секция reader с protocol = newcamd
Минимальный рабочий пример секции ридера:
[reader]
label = my_newcamd_line
protocol = newcamd525
device = server.example.com,14000
user = mylogin
password = mypassword
key = 0102030405060708091011121314
caid = 0500
ident = 0500:042F00
group = 1
Параметр key здесь — это DES-ключ, 28 hex-символов. Именно 28, не 14. Если провайдер выдал тебе 14 символов и назвал это ключом — уточни, это NodeID или DES-ключ, потому что это принципиально разные вещи.
Параметры key, device, и где указывается NodeID
В стандартной секции [reader] OScam отдельного параметра nodeid нет. Клиентский NodeID OScam формирует автоматически и отправляет серверу при логине. Не нужно его нигде вписывать вручную — если только провайдер явно не требует конкретное значение.
Если провайдер привязал линию к NodeID и нужно его задать принудительно — некоторые сборки OScam поддерживают параметр ncd_key в секции reader (не путать с key). Но это сборко-зависимая история, и в большинстве случаев проще сообщить провайдеру автоматически сгенерированный NodeID из лога и попросить привязать именно его.
Пример рабочего конфига reader
Вот более полный пример с учётом типичных настроек:
[reader]
label = line1
enable = 1
protocol = newcamd525
device = 185.10.20.30,14000
user = client01
password = secretpass
key = 0102030405060708091011121314
group = 1
caid = 0500,1810
ident = 0500:042F00,1810:000000
reconnecttimeout = 30
lb_weight = 100
Параметр reconnecttimeout в 30 секунд — нормальное значение. Если ставить меньше 10, при нестабильной сети получишь шквал реконнектов, что может расцениваться сервером как спам и привести к бану.
Настройка NodeID на стороне сервера (oscam.conf, [newcamd])
Если ты поднимаешь собственный сервер OScam и раздаёшь линии клиентам по NewCamd — конфигурация немного другая. Основной файл сервера — /etc/oscam/oscam.conf, пользователи — в /etc/oscam/oscam.user.
Секция [newcamd]: key, port, allowed
В oscam.conf блок NewCamd выглядит так:
[newcamd]
key = 0102030405060708091011121314
port = 14000@0500:042F00
allowed = 0.0.0.0/0
Параметр key здесь тоже 28 символов — это глобальный DES-ключ для рукопожатия. Все клиенты, подключающиеся к этому серверу по NewCamd, должны иметь в своём конфиге точно такой же key. Один символ отличается — рукопожатие провалится, и никакой диагностики «что именно не так» в простом логе не будет.
Формат port: номер порта, затем @, затем CAID, двоеточие, ident. Можно задать несколько портов через запятую или отдельными строками для разных карт.
Привязка пользователя к NodeID в oscam.user
В oscam.user для каждого клиента можно указать допустимый NodeID:
[account]
user = client01
pwd = secretpass
group = 1
au = 1
nodeid = 0A1B2C3D4E5F6A
Если параметр nodeid задан, OScam будет пускать этого пользователя только с указанного NodeID. Полезно когда один логин начинают шарить несколько людей — второй просто не пройдёт. Но это же создаёт проблему при смене устройства: нужно обновлять oscam.user и перезагружать конфиг.
Раздача нескольких карт на разных портах
Если у тебя несколько карт с разными CAID — под каждую порт:
[newcamd]
key = 0102030405060708091011121314
port = 14000@0500:042F00,14001@1810:000000,14002@0604:000000
NodeID клиента при этом общий — один клиент с одним NodeID может подключаться на все три порта одновременно. Это нормальное поведение протокола.
Типичные ошибки и диагностика подключения NewCamd
Большинство проблем с NewCamd укладываются в четыре сценария. Разберём каждый с конкретными симптомами и решениями.
Connection refused и неверный порт
Если OScam пишет connection refused или соединение просто висит без ответа — сначала проверь, открыт ли порт:
telnet server.example.com 14000
# или
nc -zv server.example.com 14000
Если порт недоступен — либо сервер упал, либо файрвол блокирует. На сервере: iptables -L -n | grep 14000 покажет, есть ли правило. На Ubuntu/Debian с ufw: ufw allow 14000/tcp. За NAT — нужен проброс порта на роутере, OScam сам за NAT не пробрасывается.
Login failed: несовпадение DES-ключа
Это самая частая причина после «connection refused». В логе видно что-то вроде login request for user client01 FAILED. Логин и пароль верные, а всё равно отказ.
Проверь DES-ключ посимвольно. 28 символов на сервере и 28 символов у клиента должны быть идентичны. Пробелы, переносы строки, регистр — всё имеет значение. Копируй ключ, не перепечатывай руками. Одна неверная цифра — рукопожатие провалится, и сервер покажет это именно как ошибку логина, что сбивает с толку.
Дубликат NodeID и разрывы соединения
Симптом: соединение устанавливается, но через несколько секунд рвётся и переподключается в цикле. Или один из двух клиентов всё время теряет сигнал. Причина — два клиента с одинаковым NodeID подключились к одному серверу.
Сервер воспринимает их как одно соединение, начинается конфликт. Решение: задать каждому клиенту уникальный NodeID. Если используешь один OScam на ресивере и параллельно эмулятор типа Wicardd или CCcam-клиент — у них могут быть одинаковые автосгенерированные значения. Проверяй в логе.
Чтение лога OScam в debug-режиме
Запуск с максимальным дебагом: oscam -d 65535 -b (ключ -b — в фоне, без него пишет в терминал). Через веб-интерфейс: Config → Logging, выставить logdebugmask = 65535.
При рукопожатии NewCamd в логе ищи строки с тегом newcamd. Успешное рукопожатие выглядит так:
[newcamd] client connected, user=client01, NodeID=0A1B2C3D4E5F6A
[newcamd] login ok for user=client01
Ошибка DES-ключа выдаст:
[newcamd] decoding failed for user=client01
Это именно «ключ не совпал», а не «неверный пароль» — хотя OScam в более простых логах может смешивать эти случаи.
Как выбрать источник карты, не наступив на грабли
Когда newcamd nodeid: настройка уже разобрана и конфиг готов — вопрос в качестве самой линии. Плохой источник карты убьёт стабильность независимо от того, насколько правильно настроен OScam.
Критерии стабильной линии без привязки к бренду
Первое на что смотреть — аптайм. Нормальный показатель от серьёзного источника: 99%+ за последние 30 дней. Не верь словам — проси статистику или смотри в собственном логе OScam (параметр ecm в статусе ридера показывает процент успешных ответов).
Второе — ping до сервера. Для нормальной работы декодирования нужно укладываться примерно в 100–150 мс. ECM-запросы критичны по времени: телевизор ждёт ключ, и если он приходит дольше 3–4 секунд — экран чёрный. Проверяй пинг до хоста перед покупкой.
Аптайм, ping и количество перевыпусков NodeID
Частая смена DES-ключей и портов — плохой знак. Если поставщик меняет ключ каждые несколько дней — значит что-то нестабильно на его стороне, или он работает через цепочку посредников. Каждая смена ключа требует твоего ручного вмешательства: обновить oscam.server, перезагрузить конфиг.
Привязка по NodeID у провайдера тоже бывает источником боли. Если провайдер жёстко привязывает линию к NodeID, а OScam при каждом перезапуске генерирует новый — нужно либо зафиксировать NodeID вручную, либо выбрать провайдера без такой привязки.
Тестовый период и проверка реального CAID
Нормальный источник даёт тестовый доступ на 24–48 часов. За это время можно проверить не только стабильность, но и реальный CAID, который отдаётся. В OScam веб-интерфейсе в разделе Status → Readers видны все CAID и ident, которые отдаёт ридер. Сравни с тем, что обещано.
Если в описании написано «0500 Viaccess», а по факту приходит какой-то другой CAID — либо ошибка, либо обман. Проверяй до того как заплатил за месяц.
Сколько символов должно быть в NodeID?
Ровно 14 шестнадцатеричных символов (0–9, A–F), что соответствует 7 байтам. Не путай с DES-ключом NewCamd — он содержит 28 символов и служит совсем для другого: шифрования рукопожатия. Если считаешь символы и получается 28 — у тебя в руках ключ, не NodeID.
Что будет, если у двух клиентов одинаковый NodeID?
Сервер воспринимает их как одно и то же соединение. Начнутся постоянные разрывы и реконнекты — каждый новый логин с тем же NodeID вытесняет предыдущего. В итоге оба клиента нестабильны. Каждому устройству нужен свой уникальный NodeID.
Нужно ли вручную прописывать NodeID в OScam?
В большинстве случаев нет. OScam генерирует NodeID автоматически при старте и отправляет его серверу сам. Вручную задают только когда провайдер привязал доступ к конкретному NodeID — или когда сборка OScam генерирует новое значение при каждом перезапуске, что ломает эту привязку.
Где в логе OScam посмотреть NodeID клиента?
Запусти OScam с повышенным уровнем дебага: oscam -d 65535. При подключении newcamd-клиента в логе появится строка с NodeID. Также значение видно в веб-интерфейсе (порт 8888 по умолчанию) в разделе Status → Readers.
Какой порт по умолчанию использует NewCamd?
Порт 14000 — де-факто стандарт. Задаётся в секции [newcamd] через параметр port в формате 14000@caid:ident. Порт должен быть открыт в файрволе и проброшен через NAT, если сервер за роутером. Проверить доступность можно командой nc -zv host 14000.
Почему соединение NewCamd выдаёт login failed, хотя логин и пароль верные?
Почти всегда — несовпадение DES-ключа (параметр key). Он должен быть абсолютно идентичным на сервере и у клиента: все 28 символов, без лишних пробелов или переносов. OScam при ошибке ключа показывает отказ входа, а не отдельную ошибку ключа — это сбивает с толку. Перепроверь key посимвольно с обеих сторон.