Настройка CCcam и OScam: полное руководство 2026
Эта статья — про настройка CCcam и OScam сервера: конфигурация и решение проблем, с которыми сталкиваются все, кто пытается поднять всё самостоятельно. Не теория, не маркетинг — конкретные пути, синтаксис, команды и таблица диагностики. Если у тебя Enigma2 или DreamBox и ты уже потратил несколько часов на "почему нет картинки", читай дальше.
Базовая настройка CCcam: структура конфига и пути к файлам
CCcam читает единственный конфиг — CCcam.cfg. Всё остальное, что ты мог видеть в интернете (отдельные файлы пользователей, xml-конфиги), это либо сторонние GUI, либо артефакты старых версий. Сам демон работает с одним файлом, и его структура важна.
Где лежат конфиги: /var/etc/CCcam.cfg и /etc/CCcam.cfg
Стандартный путь на Enigma2 — /var/etc/CCcam.cfg. На образах OpenATV и OpenPLi он чаще всего там же, но на кастомных сборках встречается /etc/CCcam.cfg. Если не знаешь, где лежит файл на конкретном образе, проверяй так:
find / -name CCcam.cfg 2>/dev/null
Права на файл должны быть 644, владелец — root. Если CCcam запускается из-под другого пользователя (бывает на некоторых сборках), chmod нужно подстраивать под него. После любых изменений конфига — перезапуск:
chmod 644 /var/etc/CCcam.cfg
/etc/init.d/CCcam restart
Синтаксис строки C: line (host port username password)
Строка подключения к серверу выглядит так:
C: hostname.example.com 12000 myuser mypassword
Порядок полей жёсткий: хост, порт, логин, пароль. Без двоеточий, кавычек и лишних символов. Пробел как разделитель. Если хост недоступен по DNS — пиши IP напрямую. Параметр hops (количество прыжков карты) добавляется пятым аргументом: C: host 12000 user pass 2. По умолчанию hops = 1.
Несколько серверов — несколько строк C:. CCcam попробует их по очереди при недоступности первого.
Параметры F: line для отдачи локальной карты
Строка F: описывает пользователя, которому CCcam отдаёт карту как сервер. Формат:
F: username password 1 0 0 0 { 0000:000000 }
Последнее поле { 0000:000000 } — блокировка конкретных CAID/провайдеров. Если хочешь заблокировать отдачу локальной карты для определённого пакета, прописываешь туда его CAID. Если отдаёшь всё — ставишь просто пустые скобки { } или вообще убираешь их.
Глобальные опции: SERVER LISTEN PORT, ALLOW TELNETINFO
Минимальный рабочий конфиг выглядит примерно так:
SERVER LISTEN PORT: 12000
ALLOW TELNETINFO: yes
TELNETINFO PORT: 16000
TELNETINFO PASSWORD: telnpass
KEEPALIVE TIMEOUT: 0
C: server.example.com 12000 user password
F: localuser localpass 1 0 0 0 { }
SERVER LISTEN PORT — порт, на котором CCcam принимает подключения клиентов. Менять можно на любой незанятый, но тогда нужно не забыть открыть его в firewall. ALLOW TELNETINFO включает мониторинг через telnet на порту 16000 — удобно для быстрой диагностики без SSH.
Настройка OScam: oscam.conf, oscam.server и oscam.user
OScam — это три файла минимум. Без понимания того, как они связаны между собой, ничего не заработает. Большинство проблем с OScam — из-за неправильной связки групп между ридером и пользователем. Но об этом ниже.
Структура каталога /etc/tuxbox/config/oscam/ или /var/keys/
На Enigma2 конфиги OScam чаще всего лежат в /etc/tuxbox/config/oscam/. На OpenATV 7.x встречается /var/keys/. На Armbian-сборках для generic Linux — /usr/local/etc/oscam/. Проверить:
find / -name oscam.conf 2>/dev/null
Все три основных файла должны быть в одном каталоге: oscam.conf, oscam.server, oscam.user.
Секция [global] и [cs357x]/[cccam] в oscam.conf
[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 500
logduplicatelines = 0
preferlocalcards = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
[cs357x]
port = 3457
[cccam]
port = 12001
version = 2.3.0
reshare = 1
Секция [webif] — это веб-интерфейс мониторинга на порту 8888. После запуска OScam открываешь http://ip-ресивера:8888 и видишь статусы всех ридеров в реальном времени. Без этого диагностировать проблемы вслепую гораздо сложнее.
Описание ридеров в oscam.server (protocol = cccam)
Каждый ридер — отдельный блок в oscam.server. Для подключения к CCcam-серверу:
[reader]
label = my_cccam_server
protocol = cccam
device = server.example.com,12000
user = myuser
password = mypassword
cccversion = 2.3.0
cccmaxhops = 2
reconnecttimeout = 30
group = 1
caid = 0500,0604
ident = 0500:020200,042800
Параметр cccversion должен совпадать с тем, что ожидает сервер. Если сервер на CCcam 2.2.1, а ты шлёшь 2.3.0 — могут быть проблемы с рукопожатием. caid и ident фильтруют, какие запросы уходят на этот ридер. Если оставить пустыми — ридер будет пробовать расшифровать всё подряд, что иногда приводит к лишней нагрузке.
Раздача линий через oscam.user и группы (group)
И вот здесь ломаются 80% установок. Связка групп работает так: ридер в oscam.server имеет group = 1, а пользователь в oscam.user должен иметь group = 1, чтобы OScam понял: этот пользователь может использовать этот ридер.
[account]
user = clientuser
pwd = clientpass
group = 1
au = 1
caid = 0500,0604
Если группы не совпадают — в веб-интерфейсе линия может быть зелёной, но расшифровки не будет. OScam просто не свяжет запрос клиента с нужным ридером. Это не баг, это архитектура — специально так устроено для гибкого управления доступом.
Протоколы, порты и сетевая часть
Половина проблем с подключением — сетевые. Неоткрытые порты, NAT без проброса, firewall, который тихо дропает пакеты. Разберём по порядку.
Порты CCcam (12000) и cs357x/cs378x в OScam
CCcam по умолчанию слушает порт 12000. OScam использует несколько протоколов с разными портами:
| Протокол | Порт по умолчанию | Секция в oscam.conf |
|---|---|---|
| CCcam | 12000 | [cccam] |
| cs357x (newcamd) | 3457 | [cs357x] |
| cs378x (camd35) | 3468 | [cs378x] |
| WebIF | 8888 | [webif] |
Newcamd (cs357x) — более старый протокол, но иногда единственный вариант для старых ресиверов. CCcam-протокол в OScam — это эмуляция, позволяющая принимать клиентов, которые "думают", что подключаются к настоящему CCcam. На практике работает нормально.
Проброс портов и NAT на роутере
Если ресивер стоит за роутером и ты хочешь подключить к нему внешних клиентов — нужен проброс порта. На роутере создаёшь правило: внешний TCP-порт 12000 → внутренний IP ресивера, порт 12000.
Если ресивер за двойным NAT (роутер провайдера + твой роутер) — проброс портов может быть невозможен без доступа к роутеру провайдера. В такой ситуации ресивер работает только как клиент, но не как сервер для внешних подключений. Это не катастрофа — большинство домашних установок именно так и работают.
На самом сервере открываем порт через iptables:
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
# Сохранить правила:
iptables-save > /etc/iptables/rules.v4
Проверка доступности: telnet, netstat, nc
Прежде чем лезть в конфиги — проверь, слушается ли порт вообще:
# На сервере:
netstat -tlnp | grep -E '12000|8888|3457'
# С клиента:
telnet server.example.com 12000
# или
nc -zv server.example.com 12000
Если telnet сразу обрывается или выдаёт "Connection refused" — порт не слушается или закрыт firewall. Если висит и ждёт — соединение установлено, проблема в аутентификации или протоколе.
Связка OScam как клиент к CCcam-серверу
Схема "один CCcam-сервер — несколько OScam-клиентов" работает так: каждый клиент подключается через ридер с protocol = cccam. OScam при этом не нужен в режиме сервера — он чисто потребляет карту с удалённого хоста и раздаёт её локально через cs357x или DVB-устройство. Это самая распространённая схема на одиночных ресиверах.
Диагностика и решение типичных ошибок
Настройка CCcam и OScam сервера: конфигурация и решение проблем — это во многом про умение читать логи. OScam пишет очень подробно, если правильно выставить уровень отладки.
Чтение логов: oscam.log и debuglevel
В oscam.conf секция [global]:
logfile = /var/log/oscam/oscam.log
debuglevel = 64
Значение debuglevel = 255 включает максимальную детализацию — все ECM-запросы, все ответы, время обработки. Для продакшена слишком много, но при диагностике незаменимо. Можно менять на лету через веб-интерфейс без перезапуска.
Лог крутишь в реальном времени:
tail -f /var/log/oscam/oscam.log | grep -E 'ECM|reader|CAID'
Ошибки 'cardserver connection failed' и timeout
| Симптом | Вероятная причина | Решение |
|---|---|---|
| connection failed | Порт закрыт, неверный host/ip, сервер не запущен | telnet host port, проверить netstat на сервере |
| login incorrect | Неверный логин или пароль | Перепроверить F:-строку на сервере и C:-строку у клиента |
| timeout после коннекта | Версия протокола не совпадает, firewall режет сессию | Сверить cccversion, проверить statefull firewall |
| reconnecting loop | Сервер отклоняет по IP или лимиту подключений | Уточнить у провайдера лимит сессий |
ECM не проходит: проверка ecm time и SID
ECM time — время ответа на запрос расшифровки. Нормальное значение — до 500ms. При 700-900ms уже будут периодические фризы. Выше 1000ms — постоянные проблемы. Смотришь в веб-интерфейсе OScam: Readers → конкретный ридер → колонка "ecm time".
Если линия зелёная, но каналы не идут — первый подозреваемый несовпадение CAID/провайдера. Смотришь, какой CAID у нужного канала (через встроенный сервис-менеджер ресивера или CAM-меню), и сверяешь с тем, что реально приходит от ридера. В oscam.log будет строка вроде:
2026/03/15 21:14:03 c (clientuser) ECM CAID: 0604, provid: 000000 -- rejected (not found)
Это значит — ридер не нашёл нужный CAID в своём пуле. Либо сервер этот пакет не отдаёт, либо в oscam.server не прописаны нужные CAID/ident для этого ридера.
Freeze/чёрный экран при правильном подключении
Три сценария, которые встречаются чаще всего:
- Freeze только в прайм-тайм — признак oversell на стороне сервера. Линия продана большему количеству клиентов, чем карта может обслужить. В логах увидишь ecm time, который растёт с 18:00 до 23:00 и падает ночью. Решение — менять провайдера линии.
- Черный экран на одном спутнике из двух — ридер настроен на CAID одного пакета, а на второй спутник нужен другой. Пример: Hotbird и Astra могут иметь разные провайдер-ID даже при одинаковом CAID. Прописывай ident для каждого провайдера отдельно.
- Периодический freeze каждые ~30 секунд — скорее всего, istimeout или reconnect loop. OScam переподключается и в момент реконнекта теряет расшифровку.
Как выбрать линию/провайдера: критерии без рекламы
Без конкретных названий, потому что рынок меняется, а советовать сервис, который закроется через месяц — бессмысленно. Вот что реально важно при выборе.
Стабильность и uptime сервера
Нормальный uptime — 99%+ за месяц. Проверить это до покупки сложно, но можно попросить тестовый период (большинство адекватных провайдеров дают 24-48 часов). Во время теста гони мониторинг через oscam.log и смотри, сколько было реконнектов. Больше 2-3 в сутки — уже плохой знак.
Адекватный ecm time и приоритет caid
Проси провайдера указать среднее ecm time для нужного тебе пакета. Меньше 300ms — хорошо. 300-500ms — приемлемо. Выше 500ms — либо сервер далеко географически, либо перегружен. Географическая удалённость актуальна: сервер в Германии для пользователя в Казахстане даст лишние 80-120ms только на пинг.
Защита от oversell и количество подключений
Oversell — главная беда бюджетных линий. Одну карту продают 30 клиентам вместо 5-10. Спрашивай провайдера напрямую: сколько клиентов на одну физическую карту. Честный ответ — хороший знак. Если уходят от ответа — красный флаг.
Поддержка нужных пакетов и протоколов
Заранее уточни CAID и провайдер-ID для своего пакета и спутника. Проверь, поддерживает ли линия протокол, который ты используешь: CCcam, newcamd или cs378x. Некоторые серверы работают только по одному протоколу. Также уточни версию CCcam, которую эмулирует сервер — чтобы прописать правильный cccversion в oscam.server.
Где находится конфигурационный файл CCcam.cfg?
На большинстве Enigma2-устройств — /var/etc/CCcam.cfg. На части образов (особенно старых) — /etc/CCcam.cfg. Если не уверен, выполни find / -name CCcam.cfg 2>/dev/null — найдёт в любом случае. На кастомных сборках OpenATV и OpenPLi путь обычно стандартный, но бывают исключения при нестандартной компоновке образа.
Какой порт по умолчанию использует CCcam?
Порт 12000 — задаётся параметром SERVER LISTEN PORT в CCcam.cfg. OScam использует отдельные порты для каждого протокола: cs357x (newcamd) — 3457, cs378x — 3468, CCcam-эмуляция — задаётся в секции [cccam] oscam.conf. Все порты можно менять, но тогда нужно обновить настройки и firewall соответственно.
Почему линия зелёная, но каналы не открываются?
Зелёный статус означает только то, что соединение с сервером установлено. Расшифровка — отдельный вопрос. Чаще всего причина: несовпадение CAID или провайдер-ID (сервер не поддерживает нужный пакет), отсутствие правильной группы в связке oscam.server → oscam.user, или высокий ecm time из-за перегрузки. Смотришь oscam.log с debuglevel = 128 — там будет точная причина отказа в расшифровке.
Чем OScam лучше CCcam для сервера?
OScam выигрывает по гибкости: поддержка множества протоколов одновременно, тонкая настройка прав через группы, веб-интерфейс мониторинга в реальном времени, детальные логи с debuglevel. CCcam проще в первоначальной настройке — один файл, минимум параметров. Но для серьёзного сервера с несколькими клиентами и разными протоколами OScam удобнее, хотя порог входа выше.
Как настроить OScam клиентом к серверу CCcam?
В oscam.server создаёшь ридер с protocol = cccam, прописываешь device = host,port, логин, пароль и cccversion. Указываешь group = 1 (или любой номер). Затем в oscam.user у клиентского аккаунта прописываешь тот же номер группы. Без совпадения группы OScam не свяжет запрос клиента с ридером — это самая частая ошибка при настройке CCcam и OScam сервера: конфигурация и решение проблем зачастую начинаются именно с этого.
Что значит ошибка 'connection failed' в логах?
Сервер физически недоступен. Последовательность проверки: 1) пингуй хост — если нет ответа, DNS или сеть; 2) telnet host port — если "Connection refused", порт не слушается или закрыт firewall; 3) на сервере netstat -tlnp | grep 12000 — убедись, что демон запущен. Проблема настройка CCcam и OScam сервера: конфигурация и решение проблем типа "connection failed" в 90% случаев решается либо запуском демона, либо открытием порта в iptables.