Настройка OScam сервера в 2026 году: примеры конфигурации и пошаговая инструкция

OScam — это бесплатный условно-доступный сервер с открытым исходным кодом, который используется для декодирования зашифрованных спутниковых и кабельных каналов. Он поддерживает протоколы Newcamd, Camd35, CCcam, Gbox и многие другие. В этом руководстве разберём установку, настройку и оптимизацию OScam на Linux-сервере с конкретными примерами конфигурационных файлов.

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

OScam (Open Source Conditional Access Module) — форк проекта OSCAM, написанный на языке C. Он работает как прокси-сервер между смарт-картами и клиентскими устройствами (ресиверами, компьютерами с DVB-картами). Основная задача — принимать запросы на расшифровку каналов от клиентов, обращаться к смарт-карте или к другому серверу, и возвращать ключ (CW — Control Word).

Типичные сценарии использования OScam:

  • Один ресивер со смарт-картой обслуживает несколько телевизоров в доме
  • Сервер-кардшаринг в рамках локальной сети
  • Каскадирование — OScam подключается к другому OScam или CCcam серверу и перераспределяет подписки
  • Использование в связке с TVHeadend или VDR через DVB API

Установка OScam на Debian/Ubuntu

Сборка из исходного кода

Готовые бинарные пакеты часто устаревают, поэтому рекомендуется собирать OScam самостоятельно. Для этого понадобятся инструменты сборки и библиотеки:

apt updateapt install -y build-essential libpcsclite-dev libssl-dev cmake gitgit clone https://github.com/oscam-emu/oscam-emu.git /opt/oscam-srccd /opt/oscam-srccmake -DWITH_SSL=1 -DWITH_PCSC=1 .make -j$(nproc)cp oscam /usr/local/bin/oscam

Флаг -DWITH_SSL=1 добавляет поддержку TLS-шифрования для защищённых соединений. Флаг -DWITH_PCSC=1 обеспечивает работу с физическими смарт-картами через PC/SC-считыватель.

Создание системного пользователя и директорий

useradd -r -s /bin/false oscammkdir -p /etc/oscam /var/log/oscamchown -R oscam:oscam /etc/oscam /var/log/oscam

Структура конфигурационных файлов OScam

OScam использует несколько отдельных файлов конфигурации, каждый из которых отвечает за свой аспект работы сервера:

  • oscam.conf — глобальные настройки сервера, порты, логирование
  • oscam.server — описание ридеров (смарт-карт и удалённых серверов)
  • oscam.user — учётные записи клиентов
  • oscam.dvbapi — настройки интеграции с DVB API для Linux
  • oscam.srvid — база данных каналов и провайдеров

Файл oscam.conf: основные настройки

Секция [global]

[global]logfile                = /var/log/oscam/oscam.logmaxlogsize             = 500pidfile                = /var/run/oscam/oscam.pidusrfile                = /var/log/oscam/oscam.usercwlogdir               = /var/log/oscam/cwlogduplicatelines      = 0saveinithistory        = 1preferlocalcards       = 1bindwait               = 120netprio                = 0resolvegethostbyname   = 0clienttimeout          = 5000fallbacktimeout        = 2500clientmaxidle          = 120sleep                  = 0unlockparental         = 0nice                   = -1serialreadertimeout    = 1500maxslogclient          = 200

Параметр preferlocalcards = 1 означает, что OScam сначала пытается ответить на запрос клиента через локально подключённую смарт-карту и только при неудаче обращается к удалённым серверам. Это снижает нагрузку на внешние соединения и ускоряет отклик.

clienttimeout = 5000 — максимальное время ожидания ответа от ридера в миллисекундах. При медленном интернет-соединении это значение стоит увеличить до 8000–10000.

Секция [monitor] — веб-интерфейс

[webif]httpport               = 8888httpdyndns             = httpuser               = adminhttppwd                = your_secure_password_herehttprefresh            = 10httpallowed            = 127.0.0.1,192.168.1.0/24httphideidleclients    = 0httpreadonly           = 0

После запуска OScam веб-интерфейс будет доступен по адресу http://192.168.1.100:8888/. В нём отображаются подключённые клиенты, статус ридеров, история запросов CW. Параметр httpallowed ограничивает доступ к веб-интерфейсу только с локальных адресов — обязательная мера безопасности.

Файл oscam.server: настройка ридеров

Локальная смарт-карта через PC/SC

Если к серверу подключён USB-кардридер с физической смарт-картой (например, карта Viaccess или Conax), конфигурация ридера выглядит так:

[reader]label                  = local_viaccessprotocol               = pcscdevice                 = 0caid                   = 0500detect                 = cdmhz                    = 357cardmhz                = 357auprovid               = 000000group                  = 1emmcache               = 1,3,15,1blockemm-unknown       = 1

Параметр device = 0 означает первый по счёту PC/SC-считыватель в системе. При наличии нескольких считывателей используйте device = 1, device = 2 и т.д. CAID 0500 — это идентификатор системы кодирования Viaccess.

Подключение к удалённому Newcamd-серверу

[reader]label                  = remote_newcamdprotocol               = newcamddevice                 = cardsharing.example.com,15050key                    = 0102030405060708091011121314user                   = myloginpassword               = mypasswordcaid                   = 1830group                  = 2emmcache               = 2,3,30,1reconnecttimeout       = 30disableserverfilter    = 1

Ключ key в Newcamd — это 14-байтовый DES-ключ, согласованный с оператором сервера. Стандартный тестовый ключ 01 02 03 04 05 06 07 08 09 10 11 12 13 14 используется только на тестовых серверах. На реальных соединениях ключ должен быть уникальным.

Подключение к CCcam-серверу

[reader]label                  = cccam_remoteprotocol               = cccamdevice                 = cccam-server.example.com,12000user                   = cccam_userpassword               = cccam_passgroup                  = 3inactivitytimeout      = 30reconnecttimeout       = 30cccmaxhops             = 1ccckeepalive           = 1

cccmaxhops = 1 ограничивает глубину поиска карт на CCcam-сервере. Значение 1 означает, что OScam будет использовать только карты, непосредственно подключённые к удалённому серверу, без прохождения через цепочки шаринга. Это снижает задержки и уменьшает нагрузку на сеть.

Файл oscam.user: управление клиентами

Базовый клиент с Newcamd

[account]user                   = receiver01pwd                    = secret123group                  = 1,2caid                   = 0500,1830au                     = 1uniq                   = 3monlevel               = 0maxconnections         = 1

Параметр uniq = 3 запрещает одновременное использование одной учётной записи с разных IP-адресов. При попытке второго подключения новое соединение будет принято, а старое — разорвано. Это стандартная защита от передачи данных доступа третьим лицам.

au = 1 разрешает клиенту получать EMM-обновления (Entitlement Management Messages) — это необходимо для автоматического обновления прав просмотра на смарт-картах. Если клиент — просто ресивер без физической карты, этот параметр не нужен.

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

[account]user                   = tv_guestpwd                    = guestpassgroup                  = 1caid                   = 0500services               = basic_packagemonlevel               = 0maxconnections         = 1

Параметр services ссылается на группу каналов, описанную в файле oscam.services. Это позволяет ограничить гостевой аккаунт только определёнными каналами из подписки, не предоставляя доступ ко всему пакету.

Файл oscam.dvbapi: интеграция с Linux DVB API

Этот файл необходим, если OScam работает непосредственно на компьютере с DVB-картой и используется совместно с программами TVHeadend, VDR, MythTV или Kodi.

[dvbapi]enabled                = 1au                     = 1pmt_mode               = 0request_mode           = 0boxtype                = pcuser                   = dvbapi_user

Параметр boxtype = pc указывает, что OScam работает на обычном компьютере с Linux DVB-стеком. Для ресиверов на базе Enigma2 (Dreambox, VU+, Gigablue) используется значение enigma2.

Настройка systemd для автозапуска

Создайте файл юнита /etc/systemd/system/oscam.service:

[Unit]Description=OScam CardserverAfter=network.target[Service]User=oscamGroup=oscamType=forkingExecStart=/usr/local/bin/oscam -B /var/run/oscam/oscam.pid -c /etc/oscamPIDFile=/var/run/oscam/oscam.pidRestart=on-failureRestartSec=10[Install]WantedBy=multi-user.target
mkdir -p /var/run/oscamchown oscam:oscam /var/run/oscamsystemctl daemon-reloadsystemctl enable --now oscam

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

Карта не читается (статус CARDOK не появляется)

Проверьте, что PC/SC-демон запущен: systemctl status pcscd. Убедитесь, что пользователь oscam входит в группу pcsclite: usermod -aG pcsclite oscam. Просмотрите лог OScam на строки вида card detected или card error.

Высокие задержки (zapping time более 3 секунд)

Увеличьте значение fallbacktimeout в oscam.conf до 4000–6000 мс. Проверьте, не превышает ли задержка до удалённого ридера 100 мс командой ping. В секции ридера добавьте reconnecttimeout = 15 для более быстрого переподключения при обрыве.

Клиент получает ошибку авторизации

Убедитесь, что в oscam.user параметр group совпадает с группой хотя бы одного активного ридера в oscam.server. OScam не пропустит запрос клиента к ридеру, если их группы не пересекаются. Проверьте в веб-интерфейсе раздел «Readers» — у активного ридера должен быть статус CARDOK, а не OFFLINE.

Безопасность OScam сервера

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

  • Используйте нестандартные порты вместо 12000 (Newcamd) и 12001 (CCcam)
  • Ограничьте доступ к портам OScam через iptables или ufw только для IP-адресов клиентов
  • Включите TLS для Newcamd, добавив newcamd_key и сертификат
  • Регулярно меняйте пароли клиентов и проверяйте файл oscam.user.log
  • Закройте веб-интерфейс от внешней сети — httpallowed = 127.0.0.1

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

После запуска откройте http://<ip-сервера>:8888/ в браузере. В разделе Readers должен отображаться ридер со статусом CARDOK и списком доступных CAID. В разделе Users видны подключённые клиенты, количество обработанных запросов и процент успешных расшифровок (должен быть близок к 100%). Раздел Entitlements показывает, какие пакеты каналов доступны на карте — это удобно для диагностики отсутствующих каналов.

Правильно настроенный OScam сервер обрабатывает запросы за 200–800 мс при использовании локальной карты и за 500–2000 мс при работе через удалённый ридер. Если время отклика стабильно ниже 1 секунды — сервер настроен корректно и готов к эксплуатации.

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

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