CCcam lines: настройка C-line и F-line на ресивере

Если вы получили строку вида C: my.server.net 12000 user1 pass1 и не знаете, куда её вставить и почему статус не зеленеет — эта статья для вас. CCcam lines выглядят просто, но нюансов хватает: формат, кодировка файла, пути на разных образах Enigma2, права доступа. Разберём всё по порядку — от анатомии строки до диагностики через telnet.

Что такое CCcam lines и из чего состоит строка

CCcam — протокол card sharing, при котором физическая смарт-карта, вставленная в сервер, расшаривает ключи расшифровки (ECM-ответы) по сети. Клиент получает эти ответы и декодирует поток без наличия собственной карты. Именно для настройки этого подключения и нужны cccam lines — строки конфигурации, которые прописываются в файл CCcam.cfg или его аналог в OScam.

Протокол CCcam и принцип card sharing

Ресивер с эмулятором CCcam (или OScam с reader типа cccam) выступает клиентом. Он подключается к серверу, где зарегистрирован ваш логин, и в реальном времени получает ECM-ответы для нужного CAID. Весь трафик идёт по TCP через порт 12000 по умолчанию.

Задержка между запросом и ответом — это ECM time. Именно от него зависит, будет картинка плавной или начнёт фризить. Об этом подробнее в разделе про диагностику качества.

Разбор полей C-line по порядку

Стандартная клиентская строка выглядит так:

C: my.server.net 12000 user1 pass1

Разбираем поля:

  • C: — тип строки, клиентское подключение (Client line). Двоеточие и пробел обязательны.
  • my.server.net — хост сервера, IP или доменное имя. DNS-имя предпочтительнее, если у сервера динамический IP.
  • 12000 — порт. По умолчанию 12000, но сервер может использовать любой другой.
  • user1 — логин, регистрозависимый. User1 и user1 — разные аккаунты.
  • pass1 — пароль, тоже регистрозависимый.

Опционально строка может содержать расширенные параметры:

C: my.server.net 12000 user1 pass1 no { 0 0 0 }

Флаг no запрещает решару от этого клиента другим клиентам. Блок { 0 0 0 } задаёт лимиты share: максимальные хопы, downhops и uphops. Нули означают «без ограничений». Для большинства клиентских конфигураций эти параметры можно опустить.

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

Путаница здесь частая. Вот чёткое разграничение:

  • C-line — клиентская строка. Вы прописываете её у себя, чтобы подключиться к чужому серверу.
  • F-line — friend line, серверная строка. Прописывается на сервере CCcam для регистрации клиента, которому разрешён доступ. Формат: F: username password. Это то, что сервер выдаёт вам вместе с C-line.
  • N-line — строка протокола newcamd, совершенно другой протокол. Формат принципиально отличается: N: host port username password deskey, где deskey — 14-байтовый ключ шифрования. Путать с CCcam нельзя.

Что означают параметры после хоста и порта

Некоторые провайдеры присылают строки с дополнительными блоками — например, с ограничением по CAID или явным указанием share-уровней. Если вы видите что-то нестандартное после пароля — не удаляйте без понимания. Лучше сначала проверить, что демон вообще стартует с этой строкой по логам.

Куда прописывать lines: CCcam.cfg и пути на ресивере

Это место, где большинство и спотыкается. Путей несколько в зависимости от образа и сборки.

Расположение CCcam.cfg в Enigma2

Основные пути для разных сборок:

  • /var/etc/CCcam.cfg — стандарт для большинства современных образов Enigma2 (OpenATV, OpenVision, OpenPLi).
  • /etc/CCcam.cfg — встречается на старых сборках и некоторых ресиверах Dreambox.
  • /usr/keys/CCcam.cfg — используется на ресиверах с альтернативным менеджером ключей, например на некоторых сборках для VU+.
  • /etc/tuxbox/config/CCcam.cfg — редко, но встречается на исторических сборках для Dreambox DM800.

Если не уверены — выполните поиск: find / -name "CCcam.cfg" 2>/dev/null. Найдёте за секунду.

Структура файла и порядок строк

Файл CCcam.cfg — текстовый, каждая директива на своей строке. Порядок: сначала серверные настройки (BIND PORT и т.д.), потом C-line. Пример минимального рабочего конфига:

SERVER LISTEN PORT : 12000
NEWCAMD LISTEN PORT : 15050
CAID : 0
ACCOUNT : myuser mypass 0 { 0 0 0 } { 0 0 0 } ALL { 0:0:0 } 0

C: remote.server.net 12000 user1 pass1

Два момента, которые убивают конфигурацию молча. Первый — кодировка с BOM. Если вы редактировали файл в Windows Notepad и сохранили как UTF-8 с BOM, демон CCcam тихо не читает первую строку. Используйте Notepad++ с явным выбором «UTF-8 без BOM» или любой Linux-редактор. Второй — окончания строк CRLF (Windows). Конвертируйте через dos2unix /var/etc/CCcam.cfg.

Права доступа тоже важны: chmod 644 /var/etc/CCcam.cfg. Если файл нечитаем для демона — подключения не будет.

Настройка той же линии в OScam через server

OScam работает иначе — у него нет единого CCcam.cfg. Клиентское подключение к CCcam-серверу настраивается в файле /etc/oscam/oscam.server через блок reader:

[reader]
label = myserver
protocol = cccam
device = remote.server.net,12000
user = user1
password = pass1
caid = 0500,1800
group = 1
ccchop = 2

Поле caid ограничивает ридер только нужными системами — это хорошая практика, снижает лишние запросы. group должен совпадать с группой в oscam.user для ваших клиентов. ccchop — аналог hop-ограничения, 2 означает принимать карты не глубже второго хопа.

Веб-интерфейс OScam по умолчанию доступен на порту 8888 (или 83 в некоторых сборках). Там же видно статус ридера в реальном времени.

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

После редактирования CCcam.cfg демон нужно перезапустить. Варианты:

# Жёсткий kill с перезапуском через init.d
killall -9 CCcam
/etc/init.d/ccam start

# Или через один скрипт (зависит от образа)
/etc/init.d/softcam restart

Для OScam перезапуск через веб-интерфейс (раздел «Restart») или командой killall -HUP oscam — это более мягкий вариант, который перечитывает конфиги без полного сброса соединений.

Диагностика подключения: почему линия не активна

Настроили, перезапустили, а статус всё равно не зеленеет. Вот алгоритм, который работает.

Проверка статуса в веб-интерфейсе и логах

Веб-интерфейс CCcam обычно висит на порту 16001: открывайте http://<ip-ресивера>:16001. Там видно статус каждой C-line: зелёный — подключена, жёлтый — connecting, красный — ошибка. Для OScam смотрите раздел Readers на порту 8888.

Логи CCcam по умолчанию идут в /tmp/CCcam.log. Для OScam включите уровень debug в oscam.conf: loglevel = 64, лог будет в /tmp/oscam.log. Смотрите хвост файла: tail -f /tmp/oscam.log — увидите запросы и ответы в реальном времени.

Тест порта через telnet и ping

Прежде чем копаться в конфиге — убедитесь, что порт вообще доступен с вашего ресивера:

ping my.server.net
telnet my.server.net 12000

Ping прошёл, но telnet завис — порт закрыт или фаервол. Это часто случается при двойном NAT: ваш провайдер сидит за CGNAT и блокирует исходящие соединения на нестандартные порты. В таком случае попросите провайдера разрешить соединение, или используйте сервер с портом 80/443 — они обычно не блокируются.

Telnet сразу закрыл соединение с ошибкой — порт открыт, но логин неверный или IP заблокирован на сервере.

Расшифровка ошибок: connecting, no card, login failed

Три основных состояния, с которыми приходят за помощью:

  • Connecting (бесконечно) — TCP-соединение не устанавливается. Причина: неверный хост/порт, фаервол, сервер офлайн. Проверяйте telnet.
  • Login failed — соединение есть, но сервер отклоняет аутентификацию. Неверный логин или пароль (помните про регистр), или ваш аккаунт деактивирован на сервере.
  • No cards / Connected, 0 cards — подключились успешно, но нужного CAID на сервере нет. Картинка будет чёрной. Уточните у провайдера, какие именно CAID он расшаривает.

Отдельный случай — линия активна, CAID есть, SD-каналы работают, но HD фризит. Это уже история про ECM time, а не про подключение.

Проблемы с hops и share

Hop — это количество промежуточных серверов между физической картой и вашим ресивером. Hop 1 означает прямое подключение к серверу с реальной картой. Hop 2 — карта уже через один промежуточный сервер (решара). Hop 3 и выше — через два и более посредников.

Чем больше хопов, тем выше задержка ECM. На практике hop 2 ещё терпимо, hop 3+ на HD-каналах с частой сменой ключей (HBO, спортивные пакеты) — гарантированные фризы. В OScam видно hop-уровень каждого шаринг-ресурса в разделе Shares.

Ещё одна причина фризов — несколько ресиверов с одним логином. Большинство серверов ограничивают одно одновременное подключение на аккаунт. При втором подключении первый сессия сбрасывается, оба клиента получают разрывы.

Параметры качества: ECM time, фризы и стабильность

Что такое ECM time и какие значения нормальны

ECM time — время от момента запроса ключа расшифровки до получения ответа от сервера. Измеряется в миллисекундах. Видно в веб-интерфейсе OScam в колонке «ECM» для каждого канала.

Практические диапазоны: до 300 мс — отлично, картинка плавная; 300–600 мс — нормально для большинства каналов; 600–1000 мс — на каналах с быстрой сменой ключей начнут появляться кратковременные блоки; выше 1000 мс — фризы будут регулярными, особенно на HD и спортивных трансляциях.

Причины фризов на спортивных и HD каналах

Спортивные HD-каналы, типа каналов с футбольными трансляциями, меняют ECM-ключи каждые 10–30 секунд. Если ответ от сервера не пришёл до смены ключа — получаете блок на экране. На новостных SD-каналах смена ключей реже, поэтому они работают даже при 800 мс.

Основные причины высокого ECM time: большое количество хопов, перегруженный сервер (слишком много клиентов на одну карту), медленный интернет-канал между вашим ресивером и сервером, или географически далёкий сервер.

Настройка приоритета ридеров в OScam

Если у вас несколько ридеров (несколько cccam lines или смешанная конфигурация), OScam позволяет задать приоритеты. В файле /etc/oscam/oscam.services можно привязать конкретные CAID и провайдеры к группам ридеров. А в oscam.conf параметр preferlocalcards = 1 отдаёт предпочтение локальным картам перед сетевыми.

Параметр lb_mode в oscam.conf управляет балансировщиком нагрузки. Значение lb_mode = 1 выбирает ридер с минимальным ECM time на основе истории. Это реально работает — OScam сам «запоминает», какой ридер отвечает быстрее для конкретного CAID, и направляет туда запросы.

Кэширование (cache) и cacheex

OScam поддерживает кэширование ECM-ответов: если один клиент уже запросил ключ для данного события и получил ответ, второй клиент получит его из кэша без повторного запроса к серверу. Это снижает нагрузку и время ответа для повторных запросов.

CacheEx — расширенная версия, которая обменивается кэшем между несколькими OScam-серверами по сети. Помогает, если у вас несколько серверов в локальной сети или есть партнёры с cacheex-пирингом. Но честно: если у вас один клиент и один сервер — cacheex не даст заметного эффекта. Настраивать его ради одного ресивера не стоит.

Как выбрать источник lines: критерии без названий

Здесь не будет названий сервисов — их полно и они меняются. Вместо этого — критерии, по которым вы сами оцените любой источник cccam lines.

На что смотреть: аптайм, локальные карты, hop 1

Первое и главное — наличие local-карт (hop 1). Это значит, что физическая карта находится прямо на сервере, к которому вы подключаетесь. Никаких посредников, минимальный ECM time. Спрашивайте у провайдера прямо: «Это local или reshare?»

Аптайм сервера — второй критерий. Сервер, который падает каждую неделю, бесполезен для нормального просмотра. Нормальный аптайм — 99%+ за месяц, то есть не более ~7 часов простоя в месяц. Проверить это заранее сложно, поэтому важен тестовый период.

Также проверьте, что сервер покрывает именно нужные вам CAID и пакеты. Есть серверы с отличным аптаймом, но покрывающие только один спутник или один пакет. Убедитесь, что ваши каналы там есть.

Признаки нестабильного источника

Красные флаги, которые видно уже в первые часы тестирования:

  • ECM time скачет от 100 до 2000 мс в течение часа — сервер перегружен или нестабильный канал.
  • Статус «connecting» повторяется каждые несколько минут — сервер периодически перезагружается или теряет связь.
  • Карты появляются и исчезают в веб-интерфейсе — нестабильный upstream у самого сервера.
  • HD-каналы работают в ночное время, но фризят в прайм-тайм — слишком много клиентов на одну карту, сервер не справляется с нагрузкой.

Юридические и технические риски

Card sharing находится в правовой серой зоне в большинстве стран. Суть в том, что использование чужой карты без согласия правообладателя нарушает лицензионные соглашения вещателей. В ряде европейских стран это прямо криминализировано. Технически легитимным card sharing считается только когда вы расшариваете собственную легальную карту внутри своего домохозяйства — например, между несколькими ресиверами на одной подписке.

Технические риски тоже есть: ваш IP-адрес виден серверу card sharing, трафик идёт в открытом виде (без шифрования в базовом CCcam), и при компрометации сервера ваши учётные данные могут утечь.

Тестовый период и проверка перед использованием

Нормальный тестовый период — от 24 до 72 часов. За это время успеете проверить и дневную, и ночную нагрузку, и поведение в прайм-тайм. Во время теста смотрите не только «работает / не работает», но и ECM time в веб-интерфейсе OScam — он должен быть стабильным, а не скачущим.

Проверьте конкретные каналы, которые важны лично вам. Общий статус «линия зелёная» ничего не говорит о том, есть ли именно ваш CAID на сервере и с каким качеством.

Какой формат у CCcam C-line?

Стандартный формат: C: host port username password. Например: C: my.server.net 12000 user1 pass1. Двоеточие после C обязательно, пробелы между полями строго одиночные. Логин и пароль регистрозависимы — User1 и user1 разные. Опционально в конце добавляют флаг no и блок { 0 0 0 } для управления решарой, но для клиентского подключения это необязательно.

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

Направление противоположное. C-line (Client line) прописывается на вашем ресивере — это инструкция «подключись к вот этому серверу с таким логином». F-line (Friend line) прописывается на сервере CCcam — это разрешение «вот этому пользователю разрешён доступ». Когда вы берёте линию у провайдера, он добавляет F-line у себя на сервере, а вам присылает соответствующую C-line. Вы вставляете только C-line к себе в CCcam.cfg.

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

Порядок проверки: сначала ping host — если нет ответа, проблема с DNS или сервер офлайн. Затем telnet host 12000 — если зависает, порт закрыт (фаервол на стороне провайдера интернета или сервера). Если telnet сразу отключается — порт открыт, но логин/пароль неверны. Дополнительно проверьте дату и время на ресивере — если время сбито, ECM не расшифровывается и линия может не подниматься вообще.

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

Протокол CCcam использует порт 12000 TCP. Веб-интерфейс самого CCcam обычно на 16001. OScam webif — на 8888 или 83 в зависимости от сборки. В OScam порт сервера задаётся в поле device блока reader: device = host,12000. Если ресивер за роутером — убедитесь, что исходящие соединения на порт 12000 не заблокированы. При двойном NAT может потребоваться другой порт (80 или 443), если провайдер фильтрует нестандартные порты.

Что значит hop 1 и почему это важно?

Hop 1 означает, что ваш ресивер получает ECM-ответы напрямую от сервера с физической смарт-картой — без промежуточных серверов-посредников. Это минимальная задержка и максимальная стабильность. Hop 2 — карта уже через один промежуточный сервер (решара), задержка выше. Hop 3 и более — практически гарантированные фризы на HD-каналах с быстрой сменой ключей. Для нормального просмотра стремитесь к hop 1 или максимум hop 2.

Куда вставлять CCcam line на ресивере Enigma2?

В файл /var/etc/CCcam.cfg — это стандартный путь для OpenATV, OpenPLi, OpenVision. На старых Dreambox может быть /etc/CCcam.cfg, на VU+ с некоторыми сборками — /usr/keys/CCcam.cfg. После правки обязательно перезапустите демон: killall -9 CCcam && /etc/init.d/ccam start. Если используете OScam вместо CCcam — прописывайте в /etc/oscam/oscam.server через блок [reader] с protocol = cccam.

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

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