Настройка CCcam/OScam сервера: конфиг и порты
Если ты уже установил образ на ресивер или собрал OScam на роутере, но ресивер молчит — скорее всего, проблема в конфигах. Настройка CCcam и OScam сервера: конфигурация, порты, протоколы — это не ракетная наука, но требует понимания каждого параметра. Ниже — конкретные пути, синтаксис, команды и причины, почему картинка замерзает.
Архитектура CCcam и OScam: чем отличаются протоколы
CCcam — закрытый протокол, разработанный под Enigma-ресиверы. По умолчанию слушает на порту 12000/TCP. Протокол бинарный, документация скудная, но реализация давно обратно-инженерена. OScam — open source, поддерживает множество протоколов одновременно и по гибкости выигрывает у CCcam в одностороннем порядке.
Протокол CCcam (порт 12000) и принцип newcamd
CCcam использует собственный бинарный протокол поверх TCP. Клиент подключается на порт 12000 (или любой другой, если менялся), проходит handshake с SHA1-хешем, и дальше идёт обмен ECM/DCW-пакетами. Newcamd — другой протокол, стандартный порт 15000/TCP, использует DES-шифрование сессии. Исторически newcamd применялся в mgcamd и CardClient, сейчас актуален в OScam как один из протоколов прослушивания.
OScam как универсальный softcam: cccam, newcamd, camd35
OScam умеет одновременно слушать несколько портов с разными протоколами. В секции [cccam] указываешь порт для CCcam-клиентов, в [newcamd] — для newcamd, camd35 работает по UDP на порту 34000. DVB API общается через Unix-сокет /tmp/camd.socket или /var/run/camd.socket.
| Протокол | Порт по умолчанию | Транспорт | Шифрование |
|---|---|---|---|
| CCcam | 12000 | TCP | собственное (SHA1) |
| newcamd | 15000 | TCP | DES |
| camd35 | 34000 | UDP/TCP | AES/MD5 |
| dvbapi | — | Unix socket | нет |
| gbox | 15000 | UDP | нет |
Когда выбирать CCcam, а когда OScam
CCcam проще в начальной настройке — один файл, минимум параметров. Но его возможности диагностики нулевые: нет нормального веб-интерфейса, нет детальных логов ECM. OScam выигрывает везде, где нужна гибкость: несколько источников карт, балансировка, приоритеты CAID, детальная статистика. На современных Enigma2-образах (OpenATV, OpenPLi) OScam стоит по умолчанию и активно поддерживается.
Если ресивер старый и образ не обновлялся с 2019 — CCcam работает стабильно и трогать его смысла нет. Для всего нового — OScam.
Понятия share, hop, reshare и uphops
Hop — количество промежуточных серверов между картой и тобой. Карта на сервере напрямую — hop 0 или 1. Если сервер получил её от другого — hop 2, и так далее. Чем больше hop, тем выше задержка ECM. Reshare в CCcam — параметр, разрешающий пересылать карту дальше. Uphops в строке F: ограничивает, как далеко карта уйдёт от тебя. Значение uphops = 0 означает, что ты не отдаёшь карты клиентам вообще.
Структура конфиг-файлов и пути в файловой системе
Это место, где большинство застревает. Путь к конфигу зависит от прошивки, и ни один сайт не даёт полную картину. Разберём честно.
CCcam.cfg: расположение /var/etc/CCcam.cfg
На Enigma2-образах (OpenATV, OpenPLi, OpenVix) файл обычно лежит в /var/etc/CCcam.cfg. На старых образах типа Gemini или некоторых Nabilosat встречается путь /usr/keys/CCcam.cfg. Найти точный путь можно командой:
find / -name CCcam.cfg 2>/dev/null
После ручной правки через FTP права на файл могут слететь — CCcam не стартует молча. Проверить:
chmod 644 /var/etc/CCcam.cfg
chown root:root /var/etc/CCcam.cfg
Файлы OScam: oscam.conf, oscam.server, oscam.user, oscam.dvbapi
OScam разносит конфигурацию по нескольким файлам — это не баг, это архитектура. Каждый файл отвечает за свою часть:
- oscam.conf — глобальные настройки: секции
[global],[cccam],[newcamd],[dvbapi],[webif] - oscam.server — описание источников карт (reader-секции)
- oscam.user — учётные записи клиентов, которым раздаётся доступ
- oscam.dvbapi — приоритеты CAID и провайдеров для локального декодирования
Каталог конфигов OScam (/etc/tuxbox/config или /var/keys)
OScam запускается с ключом -c, который указывает папку с конфигами:
oscam -c /etc/tuxbox/config -t /tmp/oscam.tmp
На OpenATV путь — /etc/tuxbox/config/. На некоторых образах используется /var/keys/ или /var/etc/oscam/. Проверь init-скрипт или systemd unit, чтобы не гадать:
cat /etc/init.d/oscam | grep "\-c"
Права доступа и перезапуск демона
После любой правки конфигов нужен рестарт. Жёсткий вариант:
killall -9 oscam
sleep 2
oscam -c /etc/tuxbox/config -b
Мягкий вариант — через веб-интерфейс, раздел "Restart". Права на файлы конфигов должны быть 600 или 644, владелец — тот пользователь, от которого запущен OScam. Если запущен от root — проблем нет, если от отдельного пользователя — проверь chown.
Пошаговая настройка линий: сервер и клиент
Вот где теория превращается в рабочий конфиг. Здесь важен каждый символ — синтаксис строгий, лишний пробел или неправильный регистр поломает подключение.
Клиентская строка C: line в CCcam.cfg
Синтаксис строки подключения к серверу в CCcam.cfg:
C: hostname 12000 username password
Пример реальной строки:
C: myserver.dyndns.org 12000 client01 secretpass
Регистр логина и пароля имеет значение. Пробелы — только одиночные. Никаких кавычек. Если сервер слушает на нестандартном порту — просто меняешь 12000 на нужный.
Серверная строка F: line и выдача доступа
Строка F: описывает учётку клиента, которому ты раздаёшь доступ:
F: username password uphops downhops reshare
Пример:
F: client01 secretpass 0 1 no
Здесь uphops = 0 (клиент не будет пересылать дальше), downhops = 1 (принимает карты с глубиной 1). Параметр reshare no запрещает пересылку. Если хочешь, чтобы клиент мог пересылать — ставь reshare yes, но это открывает карты для третьих лиц.
Настройка reader-секции в oscam.server
Каждый источник карт в OScam — отдельная секция [reader]:
[reader]
label = myserver
protocol = cccam
device = myserver.dyndns.org,12000
user = client01
password = secretpass
group = 1
cccversion = 2.3.0
cccmaxhops = 2
reconnecttimeout = 30
Параметр group — критический. Если в oscam.user у клиентов указан другой group, они не получат карту из этого reader. Это самая частая причина нерабочей раздачи, о которой большинство туториалов молчат.
Создание учётной записи в oscam.user
Файл oscam.user описывает клиентов, которым OScam отдаёт расшифровку:
[account]
user = localclient
password = mypassword
group = 1
au = 1
uniq = 0
Параметр au = 1 включает авторизацию обновлений. uniq = 0 означает неограниченное количество одновременных подключений с этой учётки — для одного ресивера достаточно uniq = 1. Группа должна совпадать с group в reader-секции.
Веб-интерфейс OScam (httpport) для контроля
В файле oscam.conf в секции [webif]:
[webif]
httpport = 8888
httpuser = admin
httppwd = adminpass
httprefresh = 10
httphideidleclients = 1
После запуска открываешь http://192.168.1.100:8888 и видишь статус всех reader-секций, ECM время, активные клиенты. Без веб-интерфейса диагностировать что-либо в OScam — мучение. Включай сразу.
Диагностика и устранение типовых ошибок
Настройка CCcam и OScam сервера: конфигурация, порты, протоколы — это половина дела. Вторая половина — понять, почему что-то не работает. Ошибки обычно попадают в три категории: нет соединения, соединение есть но freeze, и неправильный CAID.
Нет соединения: проверка порта и firewall
Первый шаг — проверить, доступен ли порт снаружи:
telnet myserver.dyndns.org 12000
# или
nc -vz myserver.dyndns.org 12000
Если соединение зависает — порт закрыт файрволом или не прописан проброс на роутере. Для iptables:
iptables -I INPUT -p tcp --dport 12000 -j ACCEPT
Ресивер за двойным NAT — отдельная боль. Если провайдер даёт серый IP (CGNAT), проброс портов физически невозможен. Решение — VPN-туннель (WireGuard или OpenVPN) между ресивером и сервером, либо reverse SSH-туннель.
ECM есть, но FreeZe — анализ времени декодирования
Если в веб-интерфейсе OScam видишь reader ONLINE, ECM requests есть, но канал замерзает — смотри на ECM time. Нормальный показатель: до 200–300 мс. При значениях выше 500 мс декодирование не успевает за потоком, и ресивер показывает freeze даже при рабочей линии.
Причины высокого ECM time: длинная reshare-цепочка (hop > 2), перегрузка сервера-источника, нестабильный канал до сервера. Параметр cccmaxhops = 2 в reader-секции отсекает карты с большим hop — ставь его явно.
CAID/Provider не совпадает в oscam.dvbapi
Файл oscam.dvbapi управляет тем, какой CAID используется для какого канала. Если файл некорректный или CAID не совпадает — OScam не знает, чем расшифровывать поток. Пример корректной записи:
P: 0500:042300
P: 0604:000000
P: 1810:000000
Формат: CAID:ProviderID в hex. ProviderID 000000 — маска "любой провайдер". Если канал не декодируется, а ECM time нулевое — скорее всего, OScam просто не отправляет запрос из-за несовпадения CAID в dvbapi.
Логи: oscam log и уровень debug
В секции [global] файла oscam.conf:
[global]
logfile = /tmp/oscam.log
maxlogsize = 500
debug = 64
Уровень debug = 64 — это логирование ECM-запросов и ответов. Значение 255 — полный дебаг, генерирует огромные файлы. Для диагностики freeze хватает 64. Смотреть лог в реальном времени:
tail -f /tmp/oscam.log | grep -E "ECM|reader|ERROR"
Высокий ECM time и обрывы канала
Если ECM time скачет от 100 мс до 2000 мс — проблема в нестабильном uplink или перегруженном источнике. Параметр reconnecttimeout = 30 в reader-секции заставит OScam переподключиться через 30 секунд при отсутствии ответа. Также обрати внимание на несовпадение часового пояса: некоторые CAID используют timestamp при валидации ECM, и если время на ресивере расходится с сервером более чем на 30–60 секунд — декодирование ломается. Проверь:
date
ntpdate -u pool.ntp.org
Как выбрать источник карт: критерии, а не имена
Для полноты картины о настройке CCcam и OScam сервера: конфигурация, порты, протоколы — нужно понять, как оценивать качество источника. Конкретные провайдеры здесь не называются — это вопрос твоей проверки, а не рекламы.
Дисклеймер: Использование кардшаринга для просмотра платного контента без легальной подписки нарушает условия вещателей и законодательство большинства стран. Описанное применимо к тестированию собственных легально приобретённых карт, домашнему обмену между своими ресиверами и изучению протоколов в образовательных целях. Уточняй актуальное законодательство своей страны.
Стабильность аптайма и время отклика ECM
Реальный показатель качества источника — стабильный ECM time в диапазоне 80–250 мс при нагрузке. Если в пиковые часы (вечер, спортивные трансляции) время прыгает выше 500 мс — источник перегружен. Нормальный аптайм — 99%+ за месяц. Меньше — нестабильный сервер.
Локальные карты против длинных reshare-цепочек
Локальная карта — это когда сервер физически читает смарткарту через картридер. Reshare — когда сервер сам получает ключи от другого сервера и пересылает тебе. Каждый дополнительный hop добавляет задержку. Hop 1 — хорошо, hop 2 — терпимо, hop 3 и выше — freeze практически гарантирован при любой нагрузке. Проверить hop можно в веб-интерфейсе OScam в колонке "hops" для конкретного CAID.
Прозрачность по CAID и провайдерам
Хороший источник явно указывает, какие CAID и провайдеры доступны — с конкретными hex-идентификаторами. Это позволяет правильно настроить oscam.dvbapi и не получать пустые ECM-запросы. Если список CAID неизвестен заранее — в веб-интерфейсе OScam после подключения он появится автоматически в разделе reader info.
Юридические риски и легальные сценарии
Легальных сценариев немного, но они есть: домашняя сеть с несколькими ресиверами и одной официальной картой (если условия оператора это разрешают), тестирование собственного оборудования, изучение протоколов в лабораторных условиях. Для любого другого использования — покупай официальную подписку. Риски реальны: в ряде европейских стран за кардшаринг платного ТВ предусмотрена уголовная ответственность.
Какой порт по умолчанию использует CCcam и можно ли его сменить?
По умолчанию CCcam слушает на 12000/TCP. В файле CCcam.cfg параметр SERVER LISTEN PORT 12000 — меняй число на любое свободное. В OScam порт CCcam-протокола задаётся в секции [cccam] параметром port = 12000. Клиент должен знать новый порт — в строке C: меняй соответственно.
Где физически лежит файл CCcam.cfg на ресивере?
Чаще всего /var/etc/CCcam.cfg на современных Enigma2-образах (OpenATV, OpenPLi). На старых образах встречается /usr/keys/CCcam.cfg. Найти точное расположение: find / -name CCcam.cfg 2>/dev/null. После ручной правки через FTP проверяй права: chmod 644 /var/etc/CCcam.cfg.
Почему канал показывает FreeZe, хотя линия ONLINE?
Линия подключена, но ECM-ответы приходят медленно. Основные причины: ECM time выше 500 мс, глубина hop больше 2, несовпадение CAID:ProviderID в oscam.dvbapi, перегруженный сервер-источник. Смотри колонку ECM time в веб-интерфейсе OScam — если значения нестабильные, проблема в источнике или reshare-цепочке.
Чем отличается oscam.server от oscam.user?
oscam.server описывает источники карт — откуда OScam получает ключи расшифровки (reader-секции с протоколом, host:port, логином). oscam.user описывает клиентов — кому OScam отдаёт доступ. Связь между ними через параметр group: reader с group = 1 обслуживает только тех клиентов из oscam.user, у которых тоже указан group = 1.
Как проверить, что порт сервера открыт снаружи?
Команда nc -vz hostname 12000 или telnet hostname 12000 покажет, доступен ли порт. Если зависает — либо файрвол блокирует, либо нет проброса на роутере. При NAT нужен port forwarding на внутренний IP ресивера. При двойном NAT (CGNAT провайдера) проброс не работает — нужен VPN или reverse SSH-туннель.
Можно ли запустить OScam и CCcam одновременно на одном ресивере?
Технически да, но нужно следить за конфликтами. Порты не должны пересекаться: если CCcam слушает 12000, OScam не должен занимать тот же. Главная проблема — dvbapi-сокет: только одна программа может декодировать поток через /tmp/camd.socket. Если оба демона пытаются занять сокет — один не запустится или начнётся конфликт декодирования. Лучше использовать OScam основным с поддержкой cccam-протокола.