CCcam server v1: настройка протокола и конфиг 2026
Если вы вбили в поисковик «cccam server v1» и добрались до этой статьи — скорее всего, вы уже знаете, что такое кардшаринг, и вам не нужно объяснять базу. Вы либо пытаетесь поднять сервер на старом железе, либо разбираетесь, почему клиент не коннектится к серверу, который называет себя v1. Разберём это по-человечески, с реальными примерами конфигов и без воды.
Что означает «CCcam server v1» и версии протокола
Здесь путаются почти все. Когда кто-то говорит «cccam server v1», он может иметь в виду две совершенно разные вещи: версию протокола обмена или версию бинарника программы. Это не одно и то же, и смешивать их — первый шаг к непонятным багам.
Версия протокола CCcam против версии программы
Бинарник CCcam существует в версиях вроде 2.1.3, 2.1.4, 2.2.1, 2.3.0 — это просто номер сборки программы. Протокол обмена — это отдельная история. Он описывает формат рукопожатия (handshake), структуру ECM-запросов и ответов, метод шифрования начального обмена.
То, что принято называть «v1», — это оригинальный протокол CCcam, который использовался в версиях бинарника примерно до 2.2.x. Он работает поверх TCP, по умолчанию порт 12000. Никакого официального документа с названием «CCcam protocol v1» не существует — это разговорное обозначение, которое прижилось в сообществе.
Как сервер и клиент согласуют версию при handshake
При установке соединения клиент передаёт серверу строку с номером версии CCcam и build number — что-то вроде CCcam 2.1.4 build 3076. Сервер смотрит на эту строку и решает, пускать клиента или нет. Старые серверы на 2.1.x нередко отказывают клиентам с более новой версией — они просто не понимают строку и сбрасывают соединение.
Именно поэтому в OScam есть параметр cccversion — им вручную задаётся, что клиент представится серверу. Укажи 2.1.4, и старый сервер тебя примет.
Где v1 ещё встречается и почему не стоит на нём останавливаться
Старые конфиги, форумные гайды 2010–2015 годов, некоторые прошивки для ресиверов на базе старых чипов STi — везде там фигурирует «v1». Многие эмуляторы (NewCS, MPCS) декларируют совместимость именно с этим форматом протокола.
Но оставаться на чистом CCcam-бинарнике старой версии в 2026 году — плохая идея. Разработка остановилась, уязвимости не закрываются. OScam как замена сервера давно обошёл его по стабильности и функциональности. Тем не менее понять, как работает протокол, — нужно, иначе не разберёшься в отладке.
Настройка CCcam.cfg на стороне сервера
Файл конфигурации — это всё. Одна неверная директива, и сервер молча не выдаёт карты клиентам. Начнём с того, где этот файл вообще искать.
Расположение файла: /var/etc/CCcam.cfg и /etc/CCcam.cfg
На Enigma2-ресиверах (VU+, Dreambox и клоны) файл лежит в /var/etc/CCcam.cfg. На некоторых образах — в /etc/CCcam.cfg. Конкретное место зависит от того, куда установлен плагин и какой образ залит.
Частая ловушка: правишь /etc/CCcam.cfg, а сервер читает /var/etc/CCcam.cfg. Изменения не применяются, перезапуск ничего не меняет, и ты час теряешь на отладку. Проверь симлинки командой ls -la /etc/CCcam.cfg — нередко это просто ссылка на /var/etc/CCcam.cfg.
Директива F: строка — логин, пароль, uphops, downhops
Строка F: добавляет клиента (пира), которому разрешено подключаться к серверу. Формат:
F: username password 1 0 0
Третье число — uphops: сколько хопов карты сервер принимает от этого клиента (входящая глубина). Четвёртое — downhops: сколько хопов клиент может раздать дальше (0 значит — только для себя). Пятое число — флаг allow_sidescanning.
Если поставить uphops = 0, клиент вообще не передаёт серверу свои карты. Если downhops = 0, клиент не может стать промежуточным сервером для следующего уровня. Вот почему у многих «карты есть, но не раздаются» — downhops стоит 0, а клиент ниже по цепочке ничего не видит.
Параметры SERVER LISTEN PORT и ALLOW TELNET
Базовый блок сервера выглядит так:
SERVER LISTEN PORT : 12000
ALLOW TELNET : YES
TELNET PORT : 16001
WEBINFO PORT : 16002
Порт 12000 — для клиентских подключений. Порты 16001 и 16002 — для управления и статистики. ALLOW TELNET открывает консольный доступ, что удобно при отладке, но опасно на публичном IP: порт 16001 не требует аутентификации по умолчанию. Если сервер смотрит в интернет — закрой его файрволом или вообще выключи.
Раздача локальных карт через SERVER ECM/EMM
Чтобы сервер раздавал карту из локального смарт-кард ридера, нужно убедиться, что CCcam видит ридер и добавляет его в share-лист автоматически. Директивами IGNORE CAID и ALLOW CAID фильтруется, какие CAID попадают в раздачу:
ALLOW CAID : 0500
IGNORE CAID : 1234
Без явного указания CCcam раздаёт всё, что видит. Это не всегда желательно, особенно если к серверу подключены несколько ридеров с разными картами.
Подключение клиента: строка C: и проверка соединения
На стороне клиента (другого ресивера или OScam) подключение к серверу задаётся строкой C:.
Синтаксис C: hostname port username password
Минимальный формат:
C: my.server.host 12000 myuser mypassword no
Расширенный вариант с фильтром по CAID и провайдеру:
C: my.server.host 12000 myuser mypassword no { 0500:030B00 }
Фигурные скобки задают фильтр: CAID:ProviderID. Если указать неверный CAID или опечататься в provider ID — клиент подключится, карты в share-листе будут видны, но ECM-запросы к ним уходить не будут. Выглядит как рабочее соединение, а декодирования нет. Это одна из самых коварных ошибок.
Дополнительные флаги: wantemus, no/yes
Пятый параметр в строке C: — флаг no/yes, он управляет тем, хочет ли клиент получать EMM от сервера. Большинству клиентов нужно no. yes нужен только если сервер должен обновлять ключи карты клиента — редкий сценарий.
Проверка статуса через webif (порт 16001) и telnet
Веб-интерфейс CCcam доступен по адресу http://[ip-ресивера]:16001 (или 16002, зависит от конфига). Там три важных раздела: Connected clients, Connected servers и Shares.
В Shares смотри столбцы: CAID (тип карты), hop (количество промежуточных серверов до карты), ECM time (время ответа в миллисекундах). Hop = 0 — карта локальная. Hop = 1 — карта на первом сервере в цепочке. Чем больше хопов, тем выше вероятность фриза.
Чтение лог-файла и команды CCcam -s
Лог CCcam на Enigma2 обычно пишется в /tmp/CCcam.log. Смотреть в реальном времени:
tail -f /tmp/CCcam.log
Команда CCcam -s выводит текущее состояние демона в терминал — активные соединения, share-лист, статистику ECM. Работает только если CCcam запущен и telnet включён.
Отладка типичных ошибок протокола v1
Большинство проблем с cccam server v1 укладываются в несколько сценариев. Их несложно диагностировать, если знать куда смотреть.
Connection reset / login failed
«Login failed» в логе — первым делом проверяй username и password в строках F: и C: на обоих концах. Они должны совпадать побуквенно, регистр важен. Но если логин и пароль верные, а соединение всё равно сбрасывается — смотри на node id.
Node id — уникальный идентификатор CCcam-клиента, генерируется из MAC-адреса или задаётся вручную. Если два клиента с одинаковым node id подключаются к одному серверу — сервер рвёт оба соединения без внятной ошибки в логе. Выглядит как флапающий коннект: подключился, через 10–30 секунд отвалился, снова подключился. Лечится изменением node id в CCcam.cfg одного из клиентов директивой NODEID.
Несовпадение версий: client too old / version mismatch
Старый CCcam-сервер (версии 2.1.x) может отвергать клиентов с более новой строкой версии при handshake. В логе будет что-то вроде «client version not supported» или соединение просто молча рвётся после первого обмена.
Если используешь OScam на клиентской стороне — укажи cccversion = 2.1.4 в конфиге ридера. Если CCcam-клиент — найди бинарник той же версии, что и сервер, или чуть старше. Новее — рискованно.
Проблема uphops и отсутствие карт в share-листе
Клиент подключился, соединение в webif отображается, но в Shares пусто. Первое что проверить — параметр uphops в строке F: на сервере. Если стоит 0, сервер не передаёт клиенту список карт вообще. Поставь 1 для стандартной раздачи.
Второй вариант — сервер раздаёт карты, но клиент их фильтрует CAID-фильтром в скобках. Временно убери фильтр из строки C: и проверь, появятся ли карты в share-листе.
FREEZE и долгий ECM time
Фриз картинки при нормальном соединении почти всегда указывает на высокий ECM time — больше 600–800 мс. Причины: много хопов (hop 3+), перегруженный сервер, плохой канал между клиентом и сервером, или слишком много клиентов одновременно запрашивают один CAID.
Проверь ECM time в webif. Если там 1500+ мс — проблема на стороне сервера или сети. Если ECM time нормальный (200–400 мс), а фриз есть — смотри на декодер ресивера и настройки буфера.
Связка CCcam-протокола v1 с OScam
OScam умеет работать как с картами напрямую, так и через CCcam-протокол — в роли и сервера, и клиента. Это делает его универсальным инструментом для любой конфигурации.
Настройка [cccam] reader в oscam.server
Чтобы OScam подключался к cccam server v1 как клиент, добавляешь ридер в /etc/oscam/oscam.server (или /var/etc/oscam/oscam.server на Enigma2):
[reader]
label = cccam_upstream
protocol = cccam
device = my.server.host,12000
user = myuser
password = mypassword
cccversion = 2.1.4
cccmaxhops = 2
group = 1
Параметр protocol = cccam говорит OScam использовать CCcam-протокол для этого ридера. device — хост и порт через запятую без пробела.
Параметры cccversion и cccmaxhops
cccversion — строка версии, которую OScam представит серверу при handshake. Для совместимости со старым cccam server v1 ставь 2.1.4. Если сервер новее — можно попробовать 2.3.0.
cccmaxhops ограничивает, карты с каким максимальным числом хопов принимать от этого сервера. Ставь 1–2 для нормальной работы. Значение 0 — только локальные карты сервера (hop 0). Слишком большое значение — OScam будет тащить карты с hop 5–6 и получать большой ECM time.
Раздача через oscam.user с группами
Маршрутизация в OScam строится через группы. В oscam.server ридер принадлежит к group = 1. В oscam.user пользователю разрешаешь использовать эту группу:
[account]
user = localclient
pwd = clientpass
group = 1
au = 1
Если группы не совпадают — пользователь не видит карты ридера. Классическая ошибка при переносе конфигов.
Когда OScam предпочтительнее старого CCcam-бинарника
Честно: почти всегда. OScam активно разрабатывается, поддерживает множество протоколов, имеет нормальный веб-интерфейс с детальной статистикой и хорошо логирует ошибки. Старый CCcam-бинарник не получал обновлений с середины 2010-х.
Единственная причина оставаться на чистом CCcam — специфическое железо, где OScam по какой-то причине не работает. Таких случаев в 2026 году практически нет. Если можешь мигрировать на OScam — мигрируй.
Какой порт использует CCcam server по умолчанию?
TCP 12000 — для клиентских подключений и обмена ECM. Порты 16001 и 16002 — для веб-интерфейса и telnet-управления. Изменить порт кардшаринга можно директивой SERVER LISTEN PORT : 12000 в CCcam.cfg, но менять его без причины смысла нет — клиенты ожидают стандартный порт.
Чем версия протокола v1 отличается от версии программы CCcam?
Версия программы — это номер бинарника: 2.1.3, 2.1.4, 2.3.0. Версия протокола — формат handshake и структура обмена ECM-данными. При подключении клиент отправляет серверу строку с номером версии программы, и сервер решает на основе этой строки, принять соединение или нет. «v1» — это разговорное название для оригинального формата протокола, не официальный термин.
Где находится файл CCcam.cfg?
На Enigma2-прошивках чаще всего /var/etc/CCcam.cfg. На некоторых образах — /etc/CCcam.cfg, но нередко это симлинк на тот же /var/etc/. Проверь командой ls -la /etc/CCcam.cfg. Правка не того файла — самая частая причина того, что изменения «не применяются».
Почему клиент подключается, но карты (share) не отображаются?
Три основные причины. Первая — uphops в строке F: на сервере стоит 0, и сервер не передаёт список карт этому клиенту. Вторая — фильтр CAID в фигурных скобках строки C: отсекает нужные карты. Третья — сервер не видит карту локально. Открой webif на порту 16001, раздел Shares, и посмотри что там вообще есть.
Можно ли подключить CCcam-клиент к серверу на OScam?
Да, и наоборот тоже. OScam может выступать и сервером для CCcam-клиентов, и клиентом к CCcam-серверу. Для подключения OScam к cccam server v1 используй ридер с protocol = cccam в oscam.server, укажи device = host,port, user, password, cccversion = 2.1.4 и cccmaxhops = 2.
Что вызывает ошибку «login failed» при подключении?
Чаще всего — опечатка в username или password (регистр имеет значение). Но если логин точно верный — проверь конфликт node id: два клиента с одинаковым идентификатором вызывают сброс соединений без явной ошибки. Также сервер может отвергать клиента из-за несовпадения версии протокола в handshake. Смотри лог сервера в реальном времени командой tail -f /tmp/CCcam.log.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.