Multics или OScam: сравнение эмуляторов в 2026
Если вы уже разбираетесь в cardsharing и умеете работать в терминале, вопрос выбора между Multics против OScam рано или поздно встанет перед вами. Оба решения делают одно и то же — принимают ECM-запросы, отдают CW клиентам — но делают это по-разному и с разными компромиссами. Ниже разберём всё без маркетинга: архитектуру, конфиги, производительность и поведение в реальных условиях.
Краткий ответ: чем Multics отличается от OScam
Главные различия в двух словах
OScam — это open-source эмулятор с публично доступными исходниками на Streamboard. Вы сами компилируете его под нужную платформу, включаете только те модули, которые реально нужны, и получаете полный контроль над тем, что крутится у вас на сервере. Проект живёт за счёт сообщества, коммиты идут регулярно.
Multics — закрытый бинарник. Исходников нет, аудит кода невозможен. Зато поставляется в виде готового исполняемого файла под x86, ARM и MIPS, с встроенным веб-сервером и панелью управления. Для тех, кто не хочет возиться с компиляцией — удобно. Для тех, кто хочет знать, что именно запускает на своём железе — стоит подумать дважды.
Кому подойдёт Multics, а кому OScam
Multics имеет смысл, если вам нужен быстрый старт и нет желания разбираться с Makefile и флагами компиляции. Скачал, настроил через браузер, запустил. Для небольшого домашнего сервера с минимальным числом клиентов это работает.
OScam — выбор тех, кто хочет гибкости. Нужен минимальный билд под роутер с 16 МБ flash на OpenWrt? Пожалуйста. Нужна кросс-компиляция под MIPS24kc с тулчейном из OpenWrt SDK? Это реально. Хотите точно знать, что поддерживается, а что нет — читаете исходники.
Сводная таблица сравнения
| Параметр | OScam | Multics |
|---|---|---|
| Лицензия / исходники | Open source, публичные исходники | Закрытый бинарник, исходников нет |
| CCcam | Да (MODULE_CCCAM) | Да |
| newcamd | Да (MODULE_NEWCAMD) | Да |
| cs378x / camd35 | Да (MODULE_CAMD35) | Да |
| mgcamd | Частично (через newcamd-совместимость) | Зависит от версии |
| Веб-интерфейс | Да (WEBIF, порт 8888 по умолчанию) | Да, встроенный |
| Кросс-компиляция | Да, через make / simplebuild | Нет, только готовые бинарники |
| Частота обновлений | Регулярно (community-driven) | По усмотрению разработчика |
| Потребление RAM (базово) | От ~4 МБ при минимальном билде | Фиксировано бинарником |
| Аудит кода | Возможен | Невозможен |
Архитектура и поддержка протоколов
OScam: модульность и поддерживаемые протоколы
OScam собирается через make или ./simplebuild.sh. Ключевые флаги при сборке определяют, что вообще будет в бинарнике. Минимальный набор для сервера с CCcam-клиентами выглядит примерно так:
make CONF_DIR=/usr/local/etc \
USE_LIBSSL=1 \
MODULE_CCCAM=1 \
MODULE_NEWCAMD=1 \
MODULE_CAMD35=1 \
WEBIF=1 \
READER_NAGRA=1 \
READER_VIACCESS=1 \
READER_IRDETO=1
Если добавляете только нужные READER_* — бинарник легче, меньше потребление памяти. На роутере с OpenWrt и 64 МБ RAM это ощутимо. Для кросс-компиляции под MIPS или ARM берёте тулчейн из OpenWrt SDK и указываете переменные CROSS и TARGET_CFLAGS в Makefile.
Стандартные порты: CCcam работает на 12000, cs378x и camd35 — на 34000, newcamd обычно в диапазоне 15000–15010 (зависит от вашего oscam.conf), веб-интерфейс по умолчанию на 8888. Если 8888 занят другим процессом — меняете в секции [webif] параметр httpport = 8080 или любой другой свободный.
Multics: встроенные сервисы и веб-панель
Multics приходит как единый исполняемый файл. На сайте разработчика обычно есть сборки под x86_64, armv7, aarch64 и mipsel. Никакой компиляции — скачал, дал права на выполнение, запустил. Встроенная веб-панель открывается сразу после старта, настройка идёт через браузер.
Из-за того, что бинарник монолитный, вы не можете отключить неиспользуемые протоколы или компоненты. Это минус на слабом железе — сервис занимает столько памяти, сколько решил разработчик, и не меньше. Зато не нужно разбираться с зависимостями libssl и прочим.
Совместимость по протоколам CCcam/newcamd/cs378x
Связать сервер Multics с OScam через CCcam — нормальная практика. Один работает как апстрим (отдаёт CW), другой как ридер (получает). Главное условие: совпадение протокола, порта и учётных данных. Если Multics поднят как CCcam-сервер на порту 12000, в OScam это описывается в oscam.server как ридер с protocol = cccam и device = ip,12000.
cs378x хорош тем, что поддерживает шифрование на уровне протокола и обходит часть проблем с plain-текстовой передачей данных в старых реализациях camd35. newcamd популярен среди старых клиентов — ресиверов на E2, IPTV-боксов с устаревшим стеком.
Настройка и конфигурационные файлы
Структура конфигов OScam (oscam.conf, oscam.server, oscam.user)
По умолчанию OScam ищет конфиги в /usr/local/etc/. Путь переопределяется ключом запуска -c /path/to/config. Основные файлы:
/usr/local/etc/oscam.conf— глобальные настройки, параметры веб-интерфейса, логирование/usr/local/etc/oscam.server— описание ридеров (физические карты, сетевые апстримы)/usr/local/etc/oscam.user— учётные записи клиентов/usr/local/etc/oscam.dvbapi— настройка DVB API для локального декодирования/usr/local/etc/oscam.services— фильтрация сервисов по CAID/SID
Права на файлы должны быть 600, владелец — пользователь, под которым запускается процесс. Иначе OScam может отказаться стартовать или запустится, но не сможет сохранить изменения через веб-интерфейс.
chmod 600 /usr/local/etc/oscam.*
chown oscam:oscam /usr/local/etc/oscam.*
Конфигурация и панель управления Multics
В Multics конфиги лежат в каталоге установки — обычно что-то вроде /opt/multics/ или там, куда вы его распаковали. Конкретный путь зависит от версии и платформы. Большая часть настроек делается через веб-панель и сохраняется в бинарный или проприетарный формат, который без знания структуры руками не отредактируешь. Это одновременно и удобство, и ограничение: автоматизировать деплой через Ansible или скрипты будет сложнее, чем с OScam.
При миграции с Multics на OScam основная работа — перенести учётные записи клиентов и параметры ридеров вручную. Экспорта в совместимый формат нет. Берёте список пользователей из веб-панели Multics и воссоздаёте их в oscam.user руками или скриптом.
Пример минимального рабочего конфига
Минимальный oscam.conf для сервера с CCcam-клиентами:
[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 500
loglevel = 4
usrfile = /var/log/oscam/oscamuser.log
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 15
[cccam]
port = 12000
Секция [account] в oscam.user — один клиент:
[account]
user = client01
pwd = secretpass
group = 1
au = 1
uniq = 0
monlevel = 0
Секция [reader] в oscam.server — сетевой апстрим через CCcam:
[reader]
label = upstream_cccam
protocol = cccam
device = 192.168.1.100,12000
user = myuser
password = mypassword
group = 1
cccversion = 2.3.0
cccmaxhops = 2
systemd-юнит для автозапуска кладётся в /etc/systemd/system/oscam.service. После systemctl daemon-reload и systemctl enable oscam сервис будет стартовать при загрузке.
Производительность, стабильность и логи
Потребление CPU и RAM на слабом железе
На одноплатнике типа Raspberry Pi Zero или роутере с процессором MIPS 580 МГц — разница между «тяжёлым» и «лёгким» билдом OScam ощутима. Если собрать только MODULE_CCCAM + WEBIF + нужные READER_*, процесс в спокойном состоянии потребляет около 4–8 МБ RAM. Полный билд со всеми протоколами — 12–20 МБ.
Multics здесь менее предсказуем: вы получаете всё, что решил включить разработчик, и экономить на модулях не можете. На x86_64 это некритично, на роутере с 64 МБ flash и 64 МБ RAM — уже вопрос. Для OpenWrt есть смысл брать OScam и собирать через opkg или кросс-компилировать самостоятельно с опкг-пакетом из feeds.
Диагностика по логам и веб-мониторингу
В OScam уровень логирования управляется параметром loglevel в секции [global]. Значения от 0 (тихо) до 64 (очень подробно). Для повседневного мониторинга достаточно 4 — видно авторизации, ECM-запросы, ошибки ридеров.
Веб-интерфейс на порту 8888 показывает в реальном времени: активных клиентов, статус ридеров, время ответа на ECM (в миллисекундах), очередь запросов. Вкладка «Status» — первое место для диагностики. Если ECM-время растёт выше 800–1000 мс — либо апстрим тормозит, либо что-то с ридером.
Ротация логов настраивается параметром maxlogsize (в КБ) — когда файл достигает лимита, OScam начинает новый. Либо интегрируете с logrotate системы, добавив конфиг в /etc/logrotate.d/oscam.
Поведение при большом числе подключений
Freeze обычно случается не из-за выбора между Multics и OScam, а из-за кривой конфигурации. Типичные причины: перегрузка ECM-очереди (много клиентов, мало апстримов), утечки на нестабильных ридерах, неверные параметры ecmwhitelist или lb_mode.
В OScam параметр lb_mode в секции [global] управляет load balancing между несколькими ридерами. lb_mode = 1 — балансировка по времени ответа. Если один ридер начинает отвечать медленно, нагрузка перераспределяется. Без этого при падении основного апстрима все клиенты сразу почувствуют проблему.
Смотреть нагрузку на сам процесс — htop, отфильтровать по имени процесса. Если CPU oscam держится выше 50% на слабом железе при небольшом числе клиентов — ищите reader с постоянными retry и ошибками в логе.
Как выбрать решение под свою задачу
Критерии выбора эмулятора
Первое — открытость кода. Если вы запускаете сервер, к которому подключаются реальные люди и через который проходит трафик, закрытый бинарник — это риск. Вы не знаете, что там внутри. OScam в этом плане прозрачен: исходники читаемы, баги репортятся, фиксы видны в коммитах.
Второе — поддерживаемые протоколы и архитектура. Проверьте заранее: поддерживает ли выбранное решение нужный вам протокол и есть ли сборка под вашу платформу. Для нестандартного железа OScam выигрывает за счёт кросс-компиляции.
Третье — сообщество и документация. У OScam есть форум, вики, активные треды с разбором конфигов. У Multics картина скромнее — поддержка зависит от активности разработчика.
Четвёртое — частота обновлений. При смене алгоритма шифрования на стороне вещателя (такое бывает при смене ключей Nagra, Viaccess, Irdeto) нужно обновление с поддержкой нового EMM/ECM. OScam обновляется быстрее, потому что патч может написать любой участник сообщества.
На что смотреть при подключении внешних линий
Когда берёте внешнюю линию (апстрим), критерии простые и технические. Линия должна отвечать стабильно — ECM-время ниже 500 мс в штатном режиме. Лимиты на ECM-запросы должны быть разумными и явно прописанными в условиях. Протокол должен соответствовать тому, что вы настроили у себя.
Обязательно уточните: есть ли у провайдера тестовый период? Как ведёт себя линия при пиковой нагрузке — есть ли ограничение по числу одновременных ECM? На каком протоколе работает апстрим — CCcam, cs378x или newcamd? Всё это должно быть явным, а не угадываться в процессе.
Работа за NAT — отдельный момент. Если ваш сервер за двойным NAT, клиенты снаружи не достучатся без проброса портов. В роутере настраиваете port forwarding для 12000 (CCcam), 8888 (если нужен внешний доступ к WEBIF — лучше не надо), и нужных newcamd-портов. В oscam.conf указываете serverip — внешний IP, а не локальный.
Чек-лист перед запуском в продакшн
- Бэкап конфигов:
tar czf oscam-backup-$(date +%Y%m%d).tar.gz /usr/local/etc/oscam.* - Файрвол: открыты только нужные порты (12000, 34000, выбранные newcamd-порты), WEBIF — только с доверенных IP
- Ограничение по IP для клиентов через параметр
hostnameв секции[account]— если клиенты с фиксированными адресами - Тестовый период с апстримом перед оплатой на длительный срок
- Мониторинг logfile — настроена ротация, место на диске не кончится
- systemd-юнит с
Restart=on-failureиRestartSec=10— процесс поднимется сам при краше - Проверка прав:
chmod 600 /usr/local/etc/oscam.*перед первым стартом
Что стабильнее работает на слабом железе — Multics или OScam?
Оба запускаются на ARM и MIPS без принципиальных проблем. OScam можно собрать с минимальным набором модулей — только нужные протоколы и ридеры — и тогда он потребляет 4–8 МБ RAM. Multics поставляется с фиксированным набором сервисов, урезать нельзя. На практике стабильность определяет не выбор между Multics против OScam, а правильно написанный конфиг и качество апстрима.
Можно ли связать сервер Multics с сервером OScam?
Да, через общие протоколы — CCcam (порт 12000), newcamd или cs378x (34000). Multics выступает, например, апстримом, OScam подключается к нему как reader с protocol = cccam в oscam.server. Главное — совпадение протокола, порта и учётных данных. Разные реализации CCcam в целом совместимы между собой на уровне протокола.
Где лежат конфигурационные файлы OScam?
По умолчанию в /usr/local/etc/: oscam.conf, oscam.server, oscam.user, oscam.dvbapi, oscam.services. Путь можно изменить ключом запуска -c /другой/путь. Права на файлы — 600, иначе при записи через веб-интерфейс будут ошибки.
Открыты ли исходники Multics, как у OScam?
Нет. OScam распространяется с открытыми исходниками — можно читать код, собирать самостоятельно, форкать. Multics — закрытый бинарник без публичных исходников. Это означает: нет возможности аудита, нет кастомизации под специфические нужды, зависимость от того, выпустит ли разработчик обновление при смене алгоритма вещателя.
Какие порты нужно открыть в файрволе для cardsharing-сервера?
Зависит от протоколов: CCcam — 12000, cs378x/camd35 — 34000, newcamd — по вашей настройке, часто в диапазоне 15000–15010, веб-интерфейс OScam — 8888 (или что указали в httpport). Открывайте только то, что реально используете, и по возможности ограничивайте источники по IP через iptables или firewalld.
Почему сервер периодически freeze'ит при большом числе клиентов?
Чаще всего причина — перегрузка ECM-очереди при недостаточном числе апстримов, неверные лимиты в reader (параметры maxqlen, cccmaxhops), или нестабильный апстрим с постоянными retry. Диагностика: смотрите ECM-время в веб-мониторинге OScam, включайте loglevel = 8 временно и ищите строки с ошибками ридера. На слабом CPU проблему усугубляет слишком низкий приоритет процесса — попробуйте nice -n -5 при запуске.