Настройка CCcam и OScam: полное руководство 2026
Настройка CCcam и OScam на сервере — задача, которая выглядит простой только в теории. На практике сталкиваешься с конфиг-файлами без нормальной документации, загадочными сообщениями в логах и пирами, которые подключаются, но картинка всё равно фризит. Я разберу всё по порядку: реальные пути к файлам, рабочие примеры конфигураций и диагностику конкретных ошибок.
Эта статья рассчитана на тех, кто уже понимает, что такое DVB, имеет рабочий ресивер или Linux-сервер и хочет разобраться в деталях — не читать общие слова, а получить конкретные команды и настройки.
CCcam и OScam: в чём разница и что выбрать
Коротко: CCcam проще настроить за 10 минут, OScam сложнее, но даёт в разы больше контроля. Это не вопрос вкуса — это вопрос того, что именно вам нужно от сервера.
Архитектура CCcam: проприетарный демон
CCcam — это проприетарный бинарник. Исходников нет, активная разработка остановилась много лет назад, последние актуальные версии крутятся где-то около 2.3.x. Конфиг читается из одного файла, синтаксис простой, всё работает из коробки — если ваш случай стандартный.
Проблема в том, что когда что-то идёт не так — а оно идёт — вы смотрите в закрытый чёрный ящик. Логи минимальные, диагностика почти нулевая. Понять, почему конкретная карта не отвечает, по логам CCcam крайне сложно.
OScam: открытый исходный код и гибкость
OScam (Open Source Conditional Access Module) активно поддерживается сообществом. Репозиторий на GitHub регулярно обновляется, есть сборки под Enigma2, OpenPLi, обычный Debian/Ubuntu. Архитектура модульная: отдельно reader (работа с картой), отдельно account (клиентские подключения), отдельно глобальные настройки.
Веб-интерфейс на порту 8888 — это отдельный разговор. Можно в реальном времени видеть ECM time по каждому каналу, статус каждого reader, количество клиентов. Это реально работает и спасает при диагностике.
Сравнение по стабильности, логам и поддержке протоколов
| Параметр | CCcam | OScam |
|---|---|---|
| Активная разработка | Нет | Да |
| Детализация логов | Минимальная | Высокая (уровни 0–255) |
| Поддерживаемые протоколы | CCcam, newcamd (частично) | CCcam, newcamd, camd35, cs378x, gbox |
| Веб-интерфейс | Нет | Есть (порт 8888) |
| Порог вхождения | Низкий | Средний |
| Гибкость reader | Низкая | Очень высокая |
Когда имеет смысл связка CCcam + OScam на одном сервере
Часто встречается такая схема: OScam работает как основной кардридер — читает карту, управляет клиентами, ведёт подробные логи. CCcam при этом запущен параллельно исключительно для совместимости с пирами, которые умеют только CCcam-протокол.
Главное условие — они не должны занимать одни и те же порты. OScam слушает, например, cs378x на 15001, CCcam — свой порт 12000. Конфликта нет, оба работают. Но об этом подробнее в разделе про порты.
Структура и пути конфиг-файлов
Здесь большинство инструкций в интернете бесполезны — дают один путь, а у вас другой образ и всё в другом месте. Разберём реальную картину.
CCcam.cfg: расположение и базовые директивы
Стандартный путь на Enigma2-ресиверах — /var/etc/CCcam.cfg. На некоторых сборках встречается /etc/CCcam.cfg. Файл читается при старте демона, после изменений нужен рестарт.
Минимальный рабочий конфиг выглядит так:
SERVER LISTEN PORT : 12000
USERNAME : myuser
PASSWORD : mypassword
RESHARE : 1
KEEPCONNECTED : 1
# подключение к пиру (C-line)
C: peer.example.com 12000 peeruser peerpass
# локальный файл с картой
F: /var/keys/SoftCam.Key
Директива RESHARE определяет глубину перераздачи: 0 — только ваши карты, 1 — ваши + карты пиров. KEEPCONNECTED удерживает соединение активным.
Файлы OScam: oscam.conf, oscam.server, oscam.user
OScam разделяет конфигурацию на несколько файлов. Это удобно — редактируете только нужный раздел, не трогая остальные.
oscam.conf — глобальные параметры и настройки протоколов:
[global]
logfile = /tmp/.oscam/oscam.log
maxlogsize = 1000
preferlocalcards = 1
saveinithistory = 1
[cs357x]
port = 15000
[newcamd]
port = 15001@0102:000000
[webif]
httpport = 8888
httpuser = admin
httppwd = admin123
httprefresh = 10
oscam.server — настройка reader (физическая карта или удалённый сервер):
[reader]
label = local_card
protocol = internal
device = /dev/sci0
caid = 0500
detect = cd
mhz = 357
group = 1
emmcache = 1,3,2
oscam.user — учётные записи клиентов:
[account]
user = client1
pwd = secretpass
group = 1
au = 1
Права доступа и кодировка файлов
Это мелочь, которая ломает всё. Файлы с паролями (oscam.user, CCcam.cfg) должны иметь права 600 — только владелец читает и пишет. Остальные конфиги — 644.
chmod 600 /etc/oscam/oscam.user
chmod 644 /etc/oscam/oscam.conf
chown root:root /etc/oscam/*
Кодировка — UTF-8 без BOM. BOM (Byte Order Mark) в начале файла ломает парсинг конфига — OScam тихо падает или игнорирует секцию. Проверить и убрать BOM можно командой file oscam.conf или через nano/vim с явным указанием кодировки. Часовой пояс сервера тоже имеет значение: если он расходится с локальным временем пира на несколько часов — некоторые реализации отклоняют EMM по временной метке.
Где искать конфиги на Enigma2 и на обычном Linux
На Enigma2-боксах пути зависят от образа:
- OpenPLi, OpenATV:
/etc/tuxbox/config/ - DreamElite, Team Blue:
/usr/keys/ - Стандартный OScam-пакет:
/etc/oscam/
На обычном Debian/Ubuntu после установки через apt или сборки из исходников — /etc/oscam/. Если собирали с нестандартным --config-dir, смотрите свой cmake-лог.
Отдельная боль — образы с read-only /etc. После перезагрузки конфиги слетают. Решение: хранить конфиги на /data или другом разделе с записью и делать симлинки, либо добавить монтирование overlay в fstab.
Порты, протоколы и сетевые настройки
Путаница с портами — одна из главных причин, почему настройка CCcam и OScam на сервере превращается в часы отладки. Разберём каждый протокол отдельно.
Протокол CCcam (cccam) и порт 12000
CCcam по умолчанию слушает порт 12000 (TCP). Директива в конфиге — SERVER LISTEN PORT : 12000. Формат C-line для подключения к пиру:
C: hostname_или_IP порт логин пароль
C: 192.168.1.100 12000 user1 pass1
Порт можно менять — никакого технического ограничения нет. Меняют обычно, чтобы избежать автоматического сканирования стандартных портов или разрешить конфликт при совместном запуске нескольких демонов.
Протокол newcamd и порт 15000
Newcamd работает по TCP, стандартный диапазон — 15000–15050. В OScam секция [newcamd] позволяет задать порт с привязкой к конкретному CAID:
[newcamd]
port = 15000@0500:000000;15001@0604:000000
key = 0102030405060708091011121314
Ключ key — 14-байтный DES-ключ для шифрования соединения. Должен совпадать у сервера и клиента.
cs378x (camd35 over TCP) и UDP-вариант camd35
Camd35 в UDP-варианте работает на порту 34000. Протокол cs378x — это camd35 поверх TCP, порт произвольный, обычно в диапазоне 15000–17000. В OScam:
[cs357x]
port = 15000
[cs378x]
port = 16000
cs378x предпочтительнее для нестабильных соединений — TCP гарантирует доставку пакетов, UDP нет. На хорошем канале разница незаметна.
Проброс портов на роутере и firewall
Если сервер за NAT — нужен проброс портов на роутере. Типовые правила iptables для открытия порта CCcam:
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
iptables -A INPUT -p udp --dport 34000 -j ACCEPT
Для ufw:
ufw allow 12000/tcp
ufw allow 8888/tcp
Проверить, что порт реально слушается:
netstat -tulpn | grep 12000
ss -tulpn | grep oscam
Проверить снаружи: telnet your_external_ip 12000. Если соединение устанавливается — порт открыт. Если Connection refused — либо демон не запущен, либо firewall блокирует.
Отдельный случай — двойной NAT: провайдер даёт серый IP, и проброс портов на вашем роутере ничего не даст, потому что трафик режется ещё на уровне провайдера. Решения: запросить белый IP у провайдера, использовать VPN-туннель (WireGuard, OpenVPN) или rent VPS для ретрансляции. IPv6-only провайдеры добавляют ещё одну проблему — большинство конфигов CCcam/OScam написаны под IPv4, и вам придётся явно прописывать IPv6-адреса и проверять, что демон слушает на ::, а не только на 0.0.0.0.
Пошаговая настройка сервера OScam
Настройка CCcam и OScam на сервере начинается с OScam — он сложнее, но именно он будет делать основную работу в большинстве схем.
Установка и первый запуск демона
На Debian/Ubuntu:
apt update && apt install oscam
Или сборка из исходников (актуальный HEAD с GitHub):
git clone https://github.com/oscam-emu/oscam-emu.git
cd oscam-emu
cmake -DHAVE_DVBAPI=1 -DWITH_LIBUSB=1 .
make -j$(nproc)
cp oscam /usr/local/bin/
Первый запуск с отладкой:
oscam -b -r 2 -c /etc/oscam/
Флаг -b — фоновый режим, -r 2 — уровень логирования. Логи пишутся в /tmp/.oscam/oscam.log (если не переопределено в конфиге). Сразу открывайте лог в отдельном окне: tail -f /tmp/.oscam/oscam.log.
Настройка reader для локальной карты
Физическая смарт-карта в слоте ресивера — это reader типа internal. Для внешнего USB-ридера — тип pcsc или smartreader.
[reader]
label = canal_card
protocol = internal
device = /dev/sci0
caid = 0500
detect = cd
mhz = 357
cardmhz = 357
group = 1
emmcache = 1,3,2
logLevel = 255
/dev/sci0 — стандартный путь на Enigma2. На Linux с USB-ридером будет /dev/ttyUSB0 или /dev/ttyS0. Если карта не определяется — сначала проверьте ls /dev/sci* и dmesg | tail -20.
Создание учётных записей в oscam.user
[account]
user = peer1
pwd = strongpass123
group = 1,2
caid = 0500,0604
au = 1
uniq = 1
maxau = 1
[account]
user = localbox
pwd = localpass
group = 1
au = 1
Параметр uniq = 1 запрещает одновременные подключения с одним логином. caid ограничивает доступ конкретными системами условного доступа.
Подключение пиров и проверка через веб-интерфейс
Для подключения к удалённому серверу через CCcam-протокол добавьте в oscam.server:
[reader]
label = remote_peer
protocol = cccam
device = peer.host.com:12000
user = myuser
password = mypass
caid = 0500
group = 2
reconnecttimeout = 30
После рестарта OScam откройте веб-интерфейс: http://server_ip:8888. Раздел "Readers" покажет статус каждого reader. Зелёный — карта отвечает. Раздел "ECM" — время ответа в миллисекундах. Нормальный ECM time для локальной карты — 200–400 мс. Для удалённого пира — зависит от пинга, обычно 400–1500 мс.
Диагностика типичных ошибок
Самое ценное, чего нет в большинстве инструкций — это диагностика по конкретным сообщениям из логов. Вот реальные случаи.
Ошибка connection refused и закрытый порт
Если пир видит connection refused — значит либо демон не запущен, либо порт не слушается, либо firewall режет соединение. Алгоритм проверки:
- Убедитесь, что процесс запущен:
ps aux | grep oscam - Проверьте, что порт слушается:
ss -tulpn | grep 12000 - Проверьте правила firewall:
iptables -L -n | grep 12000 - Попробуйте подключиться с самого сервера:
telnet 127.0.0.1 12000
Если локально работает, но снаружи нет — проблема в NAT или firewall провайдера. Если не работает даже локально — смотрите конфиг и логи запуска.
CARD NOT INSERTED и проблемы с reader
Сообщение CARD NOT INSERTED или card unresponsive в логах OScam означает проблему с физическим reader. Частые причины:
- Неправильный путь к устройству (
/dev/sci0vs/dev/sci1) - Неверная частота карты (
mhz) — попробуйте 357, 368, 600 - Карта не поддерживает ATR на данном ридере
- Права доступа к
/dev/sci0— пользователь oscam должен иметь доступ
Включите максимальный уровень логирования для reader: добавьте logLevel = 255 в секцию [reader] и перезапустите. Лог покажет детали ATR-обмена.
Высокий ECM time и фризы изображения
Фризы — это почти всегда следствие высокого ECM time. Порог, при котором начинаются проблемы — примерно 3000–5000 мс. Причины:
Сетевая задержка до пира. Проверьте пинг: ping peer.host.com. Если RTT больше 100–150 мс — это уже влияет на ECM time. Пинг 300+ мс — гарантированные фризы на плотном потоке.
Перегрузка карты. Одна карта физически не может обработать бесконечное количество ECM-запросов параллельно. Если к вашему серверу подключено много клиентов — смотрите очередь ECM в веб-интерфейсе OScam.
Несовпадение provider ID. Карта отвечает локально, но ECM от конкретного канала отклоняется с ecm rejected. Причина — канал использует provider ID, который не прописан в конфиге reader или в привилегиях аккаунта. Проверьте в логе строки вида CAID: 0500 / PROVIDER: 000011 и добавьте нужный provider в providers в секции reader.
Чтение логов CCcam и OScam
CCcam пишет в /tmp/CCcam.log. Полезная команда для поиска проблемного канала:
grep -i "rejected\|refused\|error" /tmp/CCcam.log | tail -50
Для OScam — поиск по CAID и provider:
grep "0500:000011" /tmp/.oscam/oscam.log | grep -i "reject\|ecm" | tail -30
Включить расширенное логирование в OScam: запустить с -r 255 или изменить logLevel в oscam.conf. Уровень 128 — подробная информация об ECM. Уровень 255 — всё, включая низкоуровневый обмен с картой. На продакшне держите уровень 64–128, иначе лог растёт по несколько мегабайт в час.
Как выбрать надёжного провайдера (без названий)
Настройка CCcam и OScam на сервере — это только техническая часть. Качество сервиса определяется тем, у кого вы берёте линию. Здесь я не буду называть конкретные сервисы — их много, рынок меняется, и любая реклама устаревает раньше, чем статья.
Критерии стабильности: аптайм и ECM time
Хороший провайдер даст вам статистику аптайма за последние 30 дней — минимум 99%. Всё ниже 98% — это уже нестабильно для основного просмотра. ECM time должен быть указан честно: ожидаемые значения для Европы — 300–800 мс, для трансконтинентальных серверов — 800–2000 мс.
Если провайдер не может или не хочет назвать средний ECM time — это плохой знак. Скорее всего, сервер перегружен или карта не их.
Поддерживаемые протоколы и форматы линий
Нормальный провайдер поддерживает минимум два протокола из: CCcam, newcamd, cs378x. Если только один — возникнут проблемы с совместимостью. Уточните, в каком формате выдаётся линия: C-line для CCcam, N-line для newcamd. Нужна полная строка с хостом, портом, логином и паролем — не просто "отправим на email через 3 часа".
Спросите, какие CAID поддерживаются. Для разных спутниковых операторов нужны разные CAID (Viaccess — 0500, Nagravision — 1800, Irdeto — 0604, Cryptoworks — 0D00). Если нужны конкретные пакеты — уточняйте это до оплаты.
Тестовый период и техническая поддержка
48-часовой тест — стандарт нормального сервиса. За это время можно реально проверить стабильность и ECM time в ваших условиях. Если тест не дают вообще или дают только 1–2 часа — скорее всего, сервис знает, что за более долгий тест клиент увидит проблемы.
Техническая поддержка должна отвечать на конкретные технические вопросы: "почему CAID 0500 с provider 000011 даёт ecm rejected?" Если в ответ приходит "перезагрузите ресивер" — это не поддержка.
Признаки ненадёжного сервиса
Красные флаги, которые я видел лично:
- ECM time стабильно выше 3000 мс в "нормальном" режиме
- Сервер недоступен в прайм-тайм (20:00–23:00) — классика перегруженного шаринга
- Порт меняется без предупреждения — карту двигают между серверами
- Отсутствие мониторинга: вы узнаёте об аутаже только когда картинка пропадает
- Поддержка реагирует только на жалобы, но не предупреждает о плановых работах
И главный признак перепродажи без гарантий: провайдер не может объяснить, почему конкретный канал не работает. Если у них реальная карта и мониторинг — они это знают.
Часто задаваемые вопросы
Какой порт по умолчанию использует CCcam?
Стандартный порт CCcam — 12000 (директива SERVER LISTEN PORT в CCcam.cfg). Его можно изменить на любой незанятый TCP-порт. Для newcamd стандартный порт — 15000, для cs378x — произвольный TCP, обычно в диапазоне 15000–17000. UDP-вариант camd35 по умолчанию использует порт 34000.
Чем OScam лучше CCcam для сервера?
Несколько причин. Открытый исходный код — OScam активно развивается, CCcam давно заброшен. Гибкое логирование с уровнями от 0 до 255 позволяет диагностировать любую проблему. Веб-интерфейс на порту 8888 даёт реальный мониторинг ECM time и статуса reader. Поддержка большого числа протоколов: CCcam, newcamd, camd35, cs378x, gbox. CCcam проще в базовой настройке, но для серьёзной эксплуатации OScam на голову выше.
Почему пир подключается, но изображение фризит?
Почти всегда — высокий ECM time. Проверьте три вещи: пинг до сервера пира (если больше 150 мс — это уже фактор), ECM time в веб-интерфейсе OScam (нормально — до 1500 мс, фризы начинаются от 3000+), и логи на rejected ECM — возможно, конкретный канал использует provider ID, который не авторизован на этой карте.
Где находится файл конфигурации OScam?
Зависит от образа и сборки. На большинстве Enigma2-боксов — /etc/tuxbox/config/oscam/ или /usr/keys/. На стандартном Linux после установки пакета — /etc/oscam/. Основные файлы: oscam.conf, oscam.server, oscam.user. Если не можете найти — запустите find / -name "oscam.conf" 2>/dev/null.
Как проверить, что порт сервера открыт?
Изнутри: ss -tulpn | grep 12000 или netstat -tulpn | grep 12000 — покажет, слушается ли порт. Снаружи: telnet your_ip 12000 — если соединение установилось, порт доступен. Не забудьте проверить правила iptables и проброс портов на роутере, если сервер за NAT.
Можно ли запускать CCcam и OScam одновременно?
Да, это рабочая схема. Главное условие — разные порты. Типичная конфигурация: OScam работает как основной кардридер и слушает cs378x на порту 15001, CCcam запущен параллельно на порту 12000 для совместимости с пирами, которые поддерживают только CCcam-протокол. Убедитесь, что в конфигах указаны разные порты и нет конфликта по /dev/sci0 — оба демона не могут одновременно работать с одним физическим ридером.