CCcam lines: настройка, конфиг и устранение ошибок

Если ты уже держишь в руках данные от своей линии, но соединение не поднимается — ты попал по адресу. CCcam lines на первый взгляд выглядят просто: строчка текста с хостом, портом и паролем. На практике там хватает нюансов, из-за которых всё молчит или падает через несколько секунд. Разберём всё по порядку — от формата строки до конвертации в OScam.

Что такое CCcam line и из чего она состоит

CCcam line — это строка конфигурации, которая описывает подключение твоего клиента к серверу карт-шаринга по протоколу CCcam. Именно эта строка говорит демону, куда коннектиться, с какими учётными данными и с какими параметрами обмена.

Структура C-line: host port username password

Базовый формат C-line выглядит так:

C: hostname port username password

Поля по порядку: hostname — DNS-имя или прямой IP сервера; port — TCP-порт, на котором сервер слушает подключения; username и password — учётные данные твоего аккаунта. Хост может быть как доменным именем вида server.example.net, так и числовым IP-адресом — демон CCcam разрезолвит оба варианта. Порт жёстко не стандартизирован: чаще всего встречается диапазон 12000–19000, но сервер задаёт его сам — смотри именно то, что написано в твоей линии.

Различия между C-line, N-line и F-line

C-line — это нативный протокол CCcam. Большинство серверов работают именно с ним.

N-line — протокол newcamd. Используется с OScam, MGcamd и аналогами. Формат принципиально другой — там есть DES-ключ в конце строки, и просто скопировать C-line на место N-line не получится. Это разные протоколы.

F-line — для локального пользователя на том же сервере CCcam. Применяется, когда надо дать доступ другому клиенту внутри одного инстанса. В повседневной клиентской настройке F-line почти не нужна.

Где именно прописывается линия в CCcam.cfg

На ресиверах с прошивкой Enigma2 (Dreambox, Vu+, GigaBlue и т.д.) файл конфига живёт по пути /var/etc/CCcam.cfg. На Linux-сервере — чаще всего /usr/local/etc/CCcam.cfg или рабочая директория запуска бинарника. Редактируется через SSH/Telnet (nano, vi) или по FTP. Любые изменения вступают в силу только после перезапуска демона — сам по себе конфиг не подхватывается.

Настройка C-line в CCcam.cfg шаг за шагом

Открываешь файл /var/etc/CCcam.cfg и добавляешь строку. Минимальный рабочий пример:

C: server.example.net 12000 myuser mypass

Расширенный вариант с явными параметрами:

C: server.example.net 12000 myuser mypass no { 0:0:2 }

Добавление строки клиента и параметры в конце линии

После пароля идут необязательные, но важные параметры. Ключевое слово no или yes после пароля — это флаг обратного шаринга (reshare). Если написать yes, твой клиент будет шарить карты, которые у него есть локально, обратно на сервер. В большинстве случаев ставь no — если только сервер явно не требует обратного шаринга по договорённости.

Опции C-line: { 0, 1, 1 } и их значение

Блок в фигурных скобках — это то, что большинство гайдов игнорирует. Формат: { hop:reshare:uphops } или в некоторых версиях три числа через запятую. Первое число — максимальная глубина прыжков (hops), с которой ты принимаешь карты от сервера. Второе — глубина, на которую ты пересылаешь эти карты дальше своим клиентам. Третье — uphops, ограничение на подъём карт. Для обычного клиентского подключения { 0:0:2 } означает: принимаешь карты с любой глубиной, не пересылаешь дальше, uphops до 2.

Если блока нет вообще — CCcam использует значения по умолчанию из основной секции конфига. Для чистого клиентского использования это обычно нормально.

Перезапуск демона и применение конфига

После любого изменения конфига — перезапуск обязателен. На Enigma2:

killall -9 CCcam

или для конкретного бинарника:

killall CCcam.x86

CCcam обычно поднимается автоматически через init-скрипт, но если нет — запускай вручную. Через GUI Enigma2 можно перезапустить через меню Синяя кнопка → Software Management → CCcam, либо просто через Telnet. На Linux-сервере:

/etc/init.d/cccam restart

или через systemd, если так настроено. Хорошая привычка — после перезапуска подождать 10–15 секунд и проверить статус в веб-интерфейсе.

Проверка статуса линий через cccaminfo и веб-интерфейс

Настроил — теперь надо проверить, что реально работает. CCcam поднимает встроенный HTTP-сервер, и это первое место для диагностики.

Доступ к веб-интерфейсу на порту 16001

В конфиге должна быть директива:

WEBINFO LISTEN PORT : 16001

Открываешь браузер и переходишь по адресу http://<IP-ресивера>:16001. Без авторизации по умолчанию. Там три ключевые вкладки: Servers — список твоих исходящих C-line и их статусы; Clients — кто подключается к тебе; Shares — список карт/CAID, которые сервер тебе отдаёт. Вкладка Shares критична для диагностики: если там пусто или нет нужного CAID — канал не откроется, сколько бы ни переподключался.

Утилита cccaminfo в консоли

Если веб-интерфейс недоступен или ты работаешь через Telnet, есть утилита cccaminfo. Запускается прямо в консоли ресивера:

cccaminfo

Показывает текстовую версию того же самого: статусы серверов, число карт, клиентов. На некоторых прошивках её нет по умолчанию — устанавливается отдельным пакетом через ipkg/opkg.

Чтение статусов: Connected, OFF, CONNECTING

Connected — рукопожатие прошло, сервер принял твои credentials, обмен идёт. Хорошо, но не гарантирует открытие каналов — зависит от наличия нужных CAID.

OFF — сервер недоступен, либо реджектнул подключение. Причин много: хост не резолвится, порт закрыт фаерволом, неверные username/password, сервер упал.

CONNECTING — демон пытается установить соединение, рукопожатие ещё не завершено. Если висит дольше 30–60 секунд — что-то мешает на сетевом уровне.

Обязательно смотри колонку cards напротив каждой линии. Connected с нулём карт — либо сервер пустой, либо все карты уже распределены по другим клиентам.

Типовые ошибки CCcam lines и их устранение

Вот где теряется большинство времени. Пройдёмся по каждому сценарию конкретно.

Линия в статусе OFF: проверка host, порта и фаервола

Первый шаг — проверить, что хост вообще доступен. Из Telnet/SSH ресивера:

ping server.example.net

Если пинг не проходит по имени, но проходит по IP — проблема DNS на ресивере. Решение: вписывай прямой IP в C-line вместо домена, или правь /etc/resolv.conf. Это реальная и частая ситуация, особенно на старых прошивках Enigma2 с кривыми DNS-серверами.

Второй шаг — проверить порт:

telnet server.example.net 12000

Если соединение не устанавливается — либо сервер упал, либо порт заблокирован. Проверь iptables на своей стороне:

iptables -L OUTPUT -n

Некоторые провайдеры блокируют нестандартные порты на уровне NAT. В этом случае линия поднимается только через VPN — или нужно просить сервер на 80-м/443-м порту, если такая возможность есть.

И обязательно проверь username/password на лишние пробелы и символы — копировать из PDF или мессенджера опасно, там часто прилипают невидимые символы.

Connected, но каналы не открываются (нет нужного CAID)

Это самая частая путаница. Соединение есть, статус Connected, а каналы чёрные. Открываешь вкладку Shares в веб-интерфейсе на :16001 и смотришь список CAID. Например, для Viacess это 0500, для Nagravision — 1800, для Irdeto — 0602. Если CAID нужного пакета там нет — сервер просто не имеет этих карт. Никакая перенастройка конфига не поможет.

Если CAID есть, но канал всё равно не открывается — проверь provider ID и hop. Слишком большой hop может отфильтровываться настройками самого ресивера.

Частые отключения и фриз картинки

Если линия постоянно переподключается — несколько версий проблемы. Первая: несоответствие cccversion. CCcam во время рукопожатия обменивается версией протокола, и если клиент заявляет версию 2.3.0, а сервер ждёт 2.0.11 — соединение рвётся через несколько секунд циклически. Версию в конфиге задаёт директива VERSION.

Вторая: дублирование подключения. Если ты вошёл под одним аккаунтом с двух ресиверов одновременно — сервер выбросит оба или оставит только одно. Линии будут взаимно убивать друг друга. Проверь, нет ли параллельного подключения с тем же username.

Третья: нестабильность интернета. tail -f /var/log/cccam.log или через директиву DEBUG 1 в конфиге — смотри частоту реконнектов и временны́е метки.

Отдельный кейс для Enigma2: конфиг /var/etc/CCcam.cfg иногда перезаписывается при ребуте из-за плагина или образа прошивки. Проверь, не стоит ли у тебя что-то, что генерирует конфиг при загрузке — тогда ручные правки пропадают.

Ещё одна нетривиальная причина дисконнектов — рассинхрон системного времени. CCcam использует временны́е метки в рукопожатии, и если часы ресивера убежали на несколько минут — соединение падает. Проверь время через date и синхронизируй через ntpdate pool.ntp.org.

CCcam line против OScam: когда переходить на reader

OScam — это не конкурент CCcam, а более гибкая альтернатива с лучшим логированием и поддержкой нескольких протоколов одновременно. Данные линии при переходе остаются теми же — меняется только синтаксис конфига.

Эквивалент C-line в oscam.server (protocol = cccam)

Файл конфига ридеров: /etc/oscam/oscam.server. Вот как выглядит аналог C-line:

[reader]
label       = my_cccam_server
protocol    = cccam
device       = server.example.net,12000
user         = myuser
password     = mypass
group        = 1
cccversion   = 2.0.11
cccmaxhops   = 2
cccreshare   = 0

Всё то же самое: хост, порт, credentials. Просто в другом синтаксисе.

Параметры cccmaxhops и cccwantemu

cccmaxhops — аналог hop из блока фигурных скобок в C-line. Ограничивает, с какой глубиной ты принимаешь карты. Значение 2 — разумный дефолт для клиента. cccreshare — глубина пересылки дальше, 0 если не хочешь шарить. cccwantemu — нужны ли эмулированные карты (softcam), 0 или 1. По умолчанию 0, и для большинства ситуаций это правильно.

cccversion — важный параметр. Он должен совпадать с тем, что ожидает сервер. Попробуй значения 2.0.11, 2.1.4 или 2.3.0 по очереди, если соединение нестабильно. OScam логирует версию при рукопожатии, так что в /var/log/oscam/oscam.log сразу видно, где расхождение.

Конвертация существующих линий в формат OScam

Если у тебя несколько cccam lines, каждая превращается в отдельный блок [reader] с уникальным label. Все блоки можно держать в одном файле oscam.server — OScam поднимет их все параллельно. Преимущество перед CCcam — детальные логи на уровне каждого ридера, гибкие правила маршрутизации CAID через oscam.routing и мониторинг через веб-интерфейс OScam на порту 8888.

Аргументы за переход: если у тебя больше двух-трёх активных линий, разные протоколы одновременно (CCcam + newcamd), или нужна нормальная диагностика — OScam окупает время на настройку очень быстро.

Какой порт по умолчанию использует CCcam line?

Жёсткого стандартного порта нет — его задаёт сервер, и он всегда прописан прямо в строке линии. Чаще всего встречается диапазон 12000–19000. Веб-интерфейс CCcam по умолчанию живёт на 16001. Порт всегда нужно брать из данных, которые тебе выдал источник линии.

Почему линия показывает Connected, но каналы не открываются?

Соединение установлено на уровне протокола, но сервер не имеет нужного CAID для конкретного канала — или hop слишком большой. Открой вкладку Shares в веб-интерфейсе на порту 16001 и проверь, есть ли там CAID той системы кодирования, которую использует канал. Если CAID отсутствует — линия просто не подходит для этого контента.

Чем C-line отличается от N-line?

C-line — это протокол CCcam. N-line — протокол newcamd, который чаще используется с OScam и MGcamd. Форматы принципиально разные: в N-line есть DES-ключ в конце строки, другая структура. Это не взаимозаменяемые вещи — нельзя вставить C-line туда, где ждут N-line, и наоборот.

Где находится файл CCcam.cfg на ресивере Enigma2?

Стандартный путь — /var/etc/CCcam.cfg. Редактируется через SSH или Telnet (nano, vi) либо по FTP. После любого изменения нужен перезапуск демона CCcam. Учти: некоторые плагины или скрипты автозапуска могут перезаписывать этот файл при ребуте — проверь, не пропадают ли твои правки после перезагрузки.

Сколько CCcam lines можно прописать в одном конфиге?

Технических ограничений почти нет — можно добавить десятки строк. Но каждая активная линия создаёт постоянное TCP-соединение и нагружает процессор ресивера запросами ECM. На слабом железе это выливается во фризы и задержки. Держи только те линии, которые реально используются.

Как проверить, что линия рабочая, без подключения каналов?

Открой веб-интерфейс по адресу http://<IP-ресивера>:16001 — вкладка Servers. Если статус Connected и в колонке cards стоит число больше нуля — соединение на уровне протокола работает. Второй вариант — утилита cccaminfo прямо в Telnet-консоли, показывает то же самое в текстовом виде.

Практические советы для стабильного просмотра

Даже самая стабильная линия 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 или внешние мониторы.