OScam lines: настройка строк подключения в oscam.server
Получил строки от провайдера — и теперь не знаешь, куда их вставить? Это типичная ситуация. OScam — мощный сервер, но его конфиг неочевиден для новичка. Здесь я разберу всё: что такое oscam lines, как они устроены, куда прописываются и почему ридер может показывать CONNECTED, но каналы при этом молчат.
Что такое OScam lines и в каком формате они приходят
Line — это строка подключения к удалённому кардшаринг-серверу. Провайдер выдаёт её в формате, исторически привязанном к определённому протоколу. Сама по себе строка — это не конфиг и не готовый файл. Это набор параметров одного reader: хост, порт, логин, пароль и, в случае newcamd, ключ шифрования.
OScam понимает несколько протоколов, и формат строки зависит от протокола. Провайдер обычно указывает, какой именно использовать.
Формат CCcam-строки: C: host port username password
Строка CCcam начинается с префикса C:. Выглядит так:
C: yourserver.example.com 12000 myuser mypassword
Четыре поля: хост, порт, имя пользователя, пароль. CCcam — протокол с собственным шифрованием на уровне хендшейка, поддерживает передачу share-листов и хопы. Порт у большинства провайдеров в диапазоне 10000–20000, хотя встречаются и нестандартные.
Формат Newcamd-строки: N: host port user pass + DES-ключ
Строка Newcamd начинается с N: и содержит пятый элемент — DES-ключ:
N: yourserver.example.com 15000 myuser mypassword 0102030405060708090A0B0C0D0E
DES-ключ — это ровно 28 hex-символов, то есть 14 байт. Если ключ короче или длиннее, или содержит не-hex символы — коннект не установится. Многие провайдеры используют дефолтный ключ 0102030405060708091011121314 — это нормально, он не несёт криптографического смысла на уровне доступа к картам.
Формат mgcamd/radegast и где они применяются
Формат R: (radegast) и строки mgcamd встречаются реже. Radegast — старый протокол, практически вышедший из употребления. Mgcamd использует конфиг в формате N:, но сам является клиентом, а не сервером. Если провайдер выдал строку без явного префикса или с форматом типа Host:Port:User:Pass:Key — это, скорее всего, mgcamd-нотация. В OScam она используется как newcamd.
Чем line отличается от reader и от account
Это три разные сущности, и путать их — частая причина ошибок.
- Line — строка от провайдера, которую ты получил. Просто текст с параметрами.
- Reader — блок
[reader]вoscam.server, который ты создаёшь на основе этой строки. Reader — это живое подключение OScam к удалённому серверу. - Account — блок
[account]вoscam.user. Это учётная запись для клиентов, которые подключаются к твоему OScam. Если ты используешь OScam только как клиент — accounts тебе не нужны.
Reader читает ECM с удалённого сервера. Account — это про то, кому ты сам раздаёшь декодированный сигнал.
Куда прописывать lines: структура oscam.server
Весь конфиг OScam — это набор текстовых файлов в одной директории. Reader-ы для внешних линий идут в oscam.server. Каждый блок начинается с заголовка [reader].
Расположение конфигов: /var/etc/, /etc/tuxbox/config/oscam/, /usr/keys/
Путь зависит от платформы:
/var/etc/oscam/— стандарт для большинства Linux-дистрибутивов и роутеров с OpenWrt/etc/tuxbox/config/oscam/— Enigma2-ресиверы (Dreambox, Vu+, Formuler и т.д.)/usr/keys/— некоторые старые прошивки Dreambox/etc/oscam/— если собирал OScam вручную и не менял--sysconfdir
Если не знаешь куда смотреть — ps aux | grep oscam покажет строку запуска с параметром -c, который указывает путь к конфигам.
Синтаксис блока [reader] для CCcam
[reader]
label = cccam_main
protocol = cccam
device = yourserver.example.com,12000
user = myuser
password = mypassword
group = 1
cccversion = 2.3.0
ccchop = 1
audisabled = 1
Параметр label — произвольное имя, уникальное в файле. В WebIF ридер будет отображаться именно под этим именем. Пробелы и кириллица в label лучше не использовать.
Синтаксис блока [reader] для Newcamd
[reader]
label = newcamd_main
protocol = newcamd
device = yourserver.example.com,15000
key = 0102030405060708090A0B0C0D0E
user = myuser
password = mypassword
group = 1
caid = 0500
audisabled = 1
Обрати внимание: в newcamd вместо параметров шифрования на уровне протокола используется key — это и есть DES-ключ из строки N:. Параметр caid здесь желателен — он помогает OScam правильно маршрутизировать ECM.
Обязательные параметры: label, protocol, device, user, password, group
Без этих шести параметров reader либо не запустится, либо не подключится. device — это всегда хост,порт через запятую без пробелов. group — числовой идентификатор, по которому reader привязывается к аккаунтам в oscam.user. Даже если ты не раздаёшь карты никому — group нужна для работы балансировки.
Дополнительные параметры: caid, ident, services, fallback, ccchop
caid — идентификатор системы условного доступа (например, 0500 для Viaccess, 1800 для Nagravision). Указывать не обязательно, но помогает при нескольких reader с разными картами. ident — провайдерский идентификатор, если нужна фильтрация до конкретного пакета. services — ограничение до набора сервисов из oscam.services. fallback — помечает reader как резервный. ccchop — ограничение хопов для CCcam, подробнее в разделе тонкой настройки.
Пошаговая настройка: от получения line до рабочего ECM
Вот полный путь от строки провайдера до работающего канала.
Шаг 1: добавить блок [reader] в oscam.server
Открываешь oscam.server в текстовом редакторе. Если файл не существует — создаёшь его. Добавляешь блок reader в конец файла, используя шаблоны выше. Сохраняешь.
Один reader = одна line. Несколько lines = несколько блоков [reader] в одном файле.
Шаг 2: задать group и привязать к [account] в oscam.user
Если ты только клиент и не раздаёшь дальше — этот шаг можно пропустить. Если раздаёшь (например, второй ресивер подключается к твоему OScam) — в oscam.user в блоке [account] должен быть параметр group = 1 (совпадает с group в reader). Так OScam знает, какие reader использовать для ответа клиенту.
Шаг 3: проверить caid/provid через oscam.services
Файл oscam.services не обязателен, но если он есть — убедись что нужный caid там не заблокирован. Если файл пустой или отсутствует — всё декодируется без ограничений по сервисам.
Шаг 4: перезапуск OScam и проверка статуса reader
На Enigma2-ресивере:
/etc/init.d/softcam restart
На Linux с systemd:
systemctl restart oscam
Или через kill -HUP если не хочешь полного перезапуска — OScam умеет перечитывать конфиг на лету:
kill -HUP $(pidof oscam)
Шаг 5: контроль через WebIF (порт 8888) — раздел Readers
WebIF по умолчанию на порту 8888. Открываешь http://IP-ресивера:8888 — там раздел Readers. Там видно:
- CONNECTED — TCP-соединение установлено, handshake прошёл
- CONNECTING — пытается подключиться, не получается
- ERROR — соединение не установилось, обычно неверные данные или хост недоступен
- OFFLINE — reader отключён (
disabled = 1в конфиге)
В колонках также видны ECM OK (успешно декодированных запросов), ECM NOK (отказов), время ответа в миллисекундах и timestamp последнего ECM. Если ECM OK растёт — всё работает.
Диагностика: почему line не работает
Статус CONNECTED в WebIF означает только что TCP-соединение живо. Это не гарантирует что карты есть и каналы откроются. Вот типичные проблемы и что искать в логах.
Reader в статусе CONNECTING — проблема порта/firewall
Если reader часами висит в CONNECTING — хост недоступен или порт заблокирован. Проверь:
telnet yourserver.example.com 12000
Если telnet не подключается — firewall на твоей стороне или хост мёртв. Попробуй другую сеть (мобильный интернет как тест). Если через мобильный коннект проходит — у тебя NAT или провайдерский firewall режет нестандартные порты.
CONNECTED но 0 ECM OK — несовпадение caid/provid
В логе ищи строки типа:
c (ecm) caid: 0500, provid: 000000, srvid: 0001 - no matching reader found
Или в WebIF → Readers → конкретный reader → Entitlements: если там пусто — провайдер не передал информацию о доступных картах. Либо caid в твоём oscam.server не совпадает с тем что даёт сервер. Убери caid из reader (пусть будет автодетект) и посмотри что появится в Entitlements после первого ECM.
Ошибка login failed — неверные user/pass или ban на сервере
В oscam.log выглядит так:
r (reader) login to server failed: username/password wrong or account disabled
Или для CCcam:
r (cccam) rejected login for user myuser
Причины: опечатка в user/password (чаще всего регистр), аккаунт отключён провайдером, достигнут лимит одновременных коннектов, ban по IP. Перепроверь буквально посимвольно. Если всё правильно — напиши провайдеру, вероятен ban.
Ошибка DES key — некорректный newcamd-ключ
В логе:
r (newcamd) DES key error: invalid key length or format
Ключ должен содержать ровно 28 hex-символов. Без пробелов. Без 0x префиксов. Только цифры и буквы A-F (регистр не важен). Проверь длину: echo -n "твой_ключ" | wc -c должно дать 28.
Канал не открывается при рабочем reader — проблема с PIDами или провайдерским ident
Reader CONNECTED, ECM OK есть, но конкретный канал не открывается. В логе ищи:
c (ecm) caid: 0500, provid: 040000 - rejected
Здесь provid (ident) 040000 не авторизован на этой карте. Line от провайдера покрывает один пакет, а ты смотришь канал из другого. Или нужно добавить ident = 0500:040000 в reader если провайдер явно ограничил доступ по ident.
Чтение oscam.log: уровень debug 4 для ECM, debug 8 для сети
В oscam.conf в секции [global]:
[global]
logfile = /var/log/oscam.log
loghistorysize = 2000
debug = 4
debug = 4 — подробный лог ECM-запросов. debug = 8 — сетевые события (connect/disconnect). debug = 255 — всё сразу, файл растёт быстро. Через WebIF → Log можно менять уровень на лету без перезапуска — удобно для диагностики.
Тонкая настройка: ccchop, audisabled, fallback и приоритеты
Базовый конфиг работает. Теперь о параметрах, которые реально влияют на стабильность.
ccchop 0/1/2/3 — что означает каждое значение для CCcam-reader
ccchop ограничивает количество хопов, через которые пересылается карта в CCcam-сети:
ccchop = 0— без ограничений, принимаются карты любой глубиныccchop = 1— только карты с 0 хопами (прямые, на физическом ридере)ccchop = 2— карты с 0-1 хопомccchop = 3— карты с 0-2 хопами
Для стабильности я рекомендую ccchop = 1. Чем меньше хопов — тем быстрее ECM и меньше вероятность зависания цепочки. Карты с 3-5 хопами дают заметную задержку и нестабильны.
Параметр audisabled и почему его обычно включают
audisabled = 1 отключает автоматическое обновление прав (AU — auto-update). AU нужен если ты работаешь с физической смарт-картой в локальном ридере. Для сетевых подключений (то есть для всех oscam lines от провайдера) AU бесполезен и создаёт лишний трафик. Всегда ставь audisabled = 1 для network reader.
fallback и fallback_percaid: резервные ридеры
fallback = 1 помечает reader как резервный — OScam обращается к нему только если основной reader не ответил за отведённое время. Это полезно когда у тебя две lines на один caid: одна быстрая основная, другая медленная но надёжная как backup.
fallback_percaid = 0500:1 — fallback только для конкретного caid. Так можно сделать одного reader основным для одного пакета и резервным для другого.
lb_weight и load balancing между несколькими lines
Если у тебя несколько lines от одного провайдера или разных провайдеров с одним caid — OScam может балансировать между ними. lb_weight = 100 — дефолт. Reader с весом 200 получит в два раза больше запросов чем reader с весом 100. Для равномерного распределения оставь дефолт на всех.
Балансировка включается автоматически когда несколько reader в одной group обслуживают один caid. Никакого дополнительного конфига не нужно.
inactivitytimeout и reconnecttimeout: борьба с тихими дисконнектами
inactivitytimeout = 30
reconnecttimeout = 30
inactivitytimeout — сколько секунд ждать без трафика прежде чем считать соединение мёртвым. reconnecttimeout — через сколько секунд пробовать переподключиться после обрыва. Дефолтные значения (часто 120+) приводят к тому что reader "тихо мёртв" минутами. 30 секунд — разумный баланс.
Дополнительно: keepalive = 1 включает TCP keepalive. Помогает на роутерах с агрессивным NAT, которые режут idle-соединения через 60-90 секунд.
Безопасность и приватность при работе с lines
Line — это не просто строка текста. Это твой персональный доступ, который провайдер привязал к твоему аккаунту и IP.
Почему не стоит публиковать line на форумах
Провайдеры мониторят одновременные коннекты. Если твоя line появилась в паблике — к ней подключатся десятки людей. Провайдер увидит 30 коннектов с разных IP под одними кредами и забанит аккаунт. Восстановление обычно невозможно.
Кроме того, хост из твоей line может получить DDoS-атаку или сканирование — это проблема для всех, кто на том же сервере.
Ограничение хопов (ccchop) и защита от перепродажи
Если ты используешь OScam как центральный сервер и раздаёшь дальше — ccchop = 1 в reader от провайдера не даёт пересылать карты дальше по цепочке. Провайдер видит только один хоп — твой сервер. Это уменьшает вероятность бана за "перепродажу".
VPN/туннелирование трафика OScam
Если провайдер дал line, а твой ISP или корпоративная сеть блокирует нестандартные порты — туннелируй через WireGuard или OpenVPN. OScam сам по себе не умеет работать через SOCKS/HTTP-прокси, поэтому нужен именно сетевой туннель. После поднятия VPN убедись что OScam биндится на нужный интерфейс — параметр bindip в oscam.conf.
Локальное хранение oscam.server: права 600 и владелец root
В файле oscam.server хранятся пароли в открытом виде. Установи правильные права:
chmod 600 /etc/oscam/oscam.server
chown root:root /etc/oscam/oscam.server
На Enigma2-ресиверах с многопользовательским доступом через FTP или SSH это особенно актуально. Если файл доступен для чтения всем — любой пользователь системы видит твои кредентиалы.
Также: не храни резервные копии lines в /tmp/ или в домашней директории пользователя с широкими правами доступа. Бэкап — только в директорию с правами 700.
Чем отличается line C: от line N: и что выбрать?
C: — CCcam-протокол. TCP-соединение с шифрованием на уровне хендшейка, поддержка хопов, share-листы. N: — Newcamd. Тоже TCP, но с DES-ключом, и считается более быстрым и стабильным на одиночный ECM-запрос. Если провайдер дал обе — приоритет newcamd: меньше задержка, нет оверхеда от share-листов. CCcam оставь как fallback или для совместимости со старыми серверами, которые не понимают newcamd.
Сколько lines можно добавить в один OScam?
Технического лимита нет. На практике 20–50 reader работают без проблем на обычном Linux-боксе. Каждый reader — это отдельный TCP-коннект и отдельный поток. Перегрузка проявляется ростом времени ECM выше 500–800 мс и таймаутами. Если у тебя много lines под один caid — группируй через group и используй lb_weight для балансировки нагрузки между ними.
Reader показывает CONNECTED, но каналы не открываются — что проверить?
Первым делом — WebIF → Readers → имя reader → Entitlements. Там должна быть карта с нужным caid. Если Entitlements пустые — провайдер не передал информацию о доступных картах или line ограничена по caid/ident. Далее: проверить oscam.services и параметр group в [account] (если раздаёшь дальше). Включить debug = 4 и искать в логе строки ecm и dcw — там будет видно почему конкретный запрос отклоняется.
Что делать если line после нескольких часов работы отваливается в CONNECTING?
Уменьшить inactivitytimeout = 30 и reconnecttimeout = 30, добавить keepalive = 1. Если не помогает — проверить роутер: многие провайдерские роутеры режут idle TCP через 60–120 секунд. Проверочный тест: подключить ресивер напрямую через мобильный интернет. Если там line не отваливается — проблема в локальной сети или роутере. Решение: VPN-туннель или смена роутера с настройкой tcp_keepalive_time.
Как добавить line, если провайдер дал только URL вида cccam://user:pass@host:port?
Это просто удобная нотация для передачи данных, OScam её не понимает напрямую. Разбираешь вручную: protocol = cccam, device = host,port, user = user, password = pass. Создаёшь стандартный блок [reader]. Префикс cccam:// в oscam.server не используется — это только формат записи для передачи через мессенджер или почту.
Можно ли использовать одну line на двух ресиверах одновременно?
Обычно нет — провайдеры лимитируют количество одновременных коннектов на одну line (чаще всего 1, иногда 2). Попытка подключиться с двух IP одновременно ведёт к бану. Правильное решение: поднять один OScam как центральный сервер, второй ресивер подключается к нему как newcamd/cccam клиент. Провайдер видит один коннект — от центрального OScam. Это стандартная схема "central server + clients".
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.