CCcam line: формат, настройка C-линии и F-линии 2026
Если вы получили строку вида C: somehost.example.com 12000 user123 pass456 и не понимаете, что с ней делать — вы в нужном месте. CCcam line — это буквально одна текстовая строка, которая описывает одно сетевое подключение. Куда её вставить, как читать каждое поле, почему она иногда не работает даже при правильном синтаксисе — всё это разберём по порядку.
Что такое CCcam line и зачем она нужна
Определение CCcam line простыми словами
CCcam line — это одна строка конфигурации в файле CCcam.cfg, которая определяет одно сетевое соединение. Либо исходящее (вы — клиент, подключаетесь к чужому серверу), либо входящее (вы — сервер, описываете учётку для клиента, который будет подключаться к вам).
Протокол CCcam работает поверх TCP. Порт по умолчанию — 12000, но на практике используют любой свободный в диапазоне 10000–30000. Одна cccam line = одно соединение = один пир в сети шаринга.
Роль line в протоколе CCcam
Когда CCcam-демон запускается, он читает CCcam.cfg построчно. Каждую строку, начинающуюся с C:, он воспринимает как задание: "установи TCP-соединение с этим хостом, авторизуйся, получай CW (Control Words) для декодирования ECM-пакетов". Строки F: — это учётные записи для входящих клиентов, которые будут подключаться к вашему CCcam-серверу.
Без хотя бы одной валидной cccam line с рабочими данными сервера декодирование платных каналов работать не будет — демон просто не знает, куда подключаться.
Чем line отличается от newcamd и mgcamd строк
NewCamd-строка начинается с N: и использует DES-ключ вместо plain-text пароля. MGcamd работает через отдельный файл newcamd.list с похожим форматом. CCcam line проще: plain-text логин/пароль, нет ключей шифрования в конфиге, сессия шифруется на уровне протокола.
Это означает, что cccam line легче читать и редактировать, но и легче случайно испортить — особенно если пароль содержит спецсимволы.
Формат C-line: разбор по полям
Синтаксис: C: hostname port username password
Полный синтаксис C-line выглядит так:
C: <hostname> <port> <username> <password> [no|yes] [{node-id}] [no|yes]
Разберём каждое поле:
- hostname — DNS-имя или IP-адрес сервера. Домен предпочтительнее IP, если сервер за DynDNS.
- port — TCP-порт. Чаще всего 12000, но может быть любым. Должен совпадать с
LISTEN PORTна сервере. - username — логин, который выдал владелец сервера. Регистрозависимый.
- password — пароль. Тоже регистрозависимый, пробелы недопустимы.
Строка регистрозависима. User123 и user123 — разные логины. И никаких табуляций — только пробелы между полями.
Дополнительные параметры (no/yes, share hops, em)
Пятое поле — разрешение на пересылку своих карт серверу:
no— не отдавать свои локальные карты на этот сервер (стандартное значение для чисто клиентского подключения)yes— отдавать свои карты, образуя взаимообмен
Шестое поле {0:0:1} — это node ID клиента в сети CCcam. Используется для предотвращения петель шаринга. Генерируется автоматически при первом запуске и прописывается в файл CCcam.nodeID. Менять вручную не нужно — CCcam сам подставит свой ID при соединении.
Пример валидной C-line и пример с ошибкой
Валидная строка:
C: server.example-host.tld 12000 user123 pass456 no
Строка с ошибкой — табуляция вместо пробела между полями:
C: server.example-host.tld 12000 user123 pass456
CCcam на это отреагирует "invalid line" в логе. Ещё одна классическая ошибка — пустая строка после C:, или добавление комментария в конец строки через # (не все форки это поддерживают).
Для IPv6-адреса синтаксис требует квадратных скобок:
C: [2001:db8::1] 12000 user123 pass456 no
Формат F-line: создание учётной записи для клиента
Синтаксис: F: username password uphops downhops
F-line объявляется в вашем CCcam.cfg, если вы хотите, чтобы другие клиенты подключались к вашему CCcam-серверу. Синтаксис:
F: <username> <password> <uphops> <downhops> [{node-id}]
Пример:
F: client01 secretpass 1 2
Это создаёт учётку client01 с паролем secretpass, которому разрешено подключаться к вашему серверу.
Значения uphops и downhops
uphops — на сколько хопов ваш клиент может пересылать ваши карты дальше. Значение 1 означает: клиент может использовать ваши карты, но не может раздавать их своим клиентам. Значение 0 = карты вообще не передаются. Слишком большое значение uphops создаёт длинные цепочки — задержка ECM растёт, стабильность падает.
downhops — сколько хопов вы готовы принять от клиента. Если у клиента есть свои карты и он хочет их шарить вам, downhops=2 означает, что вы примете карты, которые прошли максимум 2 сервера.
Стандартная практика: uphops=1, downhops=2. Это баланс между функциональностью и производительностью.
Как ограничивать количество подключений с одного аккаунта
Стандартный CCcam 2.3.x не имеет встроенного параметра лимита соединений в синтаксисе F-line. Ограничение реализуется на уровне файрвола или через сторонние CCcam-форки с расширенным синтаксисом. На практике большинство серверов ограничивают одновременные подключения через iptables conntrack или fail2ban-скрипты.
Куда вставлять line: расположение CCcam.cfg
Путь к CCcam.cfg на Enigma2 (OpenATV/OpenPLi)
На большинстве Enigma2-образов конфиг лежит здесь:
- OpenATV, OpenPLi:
/etc/CCcam.cfg - Некоторые старые образы:
/var/etc/CCcam.cfg
Если файл отсутствует — создайте его вручную. После правки перезапустите демон через плагин SoftCam Manager (не через полную перезагрузку ресивера). SoftCam Manager есть в меню плагинов на OpenATV/OpenPLi — там кнопки Stop/Start для каждого эмулятора.
Путь к конфигу на Linux x86 / Raspberry Pi
На Linux x86 путь зависит от того, как установлен CCcam:
- Стандартная установка:
/usr/local/etc/CCcam.cfg - Если запускаете бинарник из произвольной папки — конфиг ищется рядом с бинарником
- OpenWRT с CCcam-mod для MIPS:
/etc/CCcam.cfg
Перезапуск демона на Linux:
killall CCcam && /usr/local/bin/CCcam -d
Флаг -d запускает в режиме демона с логированием в /tmp/CCcam.log.
Перенос строк через FTP/SCP и права доступа
Редактировать конфиг удобно через WinSCP (Windows) или nano прямо на ресивере через SSH. После сохранения проверьте права:
chmod 600 /etc/CCcam.cfg
chown root:root /etc/CCcam.cfg
На некоторых образах Enigma2 CCcam-демон запускается не от root, тогда права 644 предпочтительнее. Важно: файл с правами 777 на части образов CCcam вообще отказывается читать — это не баг, это намеренная защита от несанкционированного изменения конфига.
При редактировании через FTP — убедитесь что клиент сохраняет файл в Unix line endings (LF), не Windows (CRLF). CCcam некоторых версий не парсит строки с \r\n.
Проверка статуса подключения и отладка
Веб-интерфейс CCcam на порту 16001
CCcam поднимает встроенный HTTP-интерфейс на порту 16001. Чтобы он работал, в CCcam.cfg должна быть строка:
WEBINFO LISTEN PORT: 16001
После этого открываете в браузере http://<IP_ресивера>:16001 и видите три раздела: Connections (активные C-line и их статус), Servers (серверы, к которым подключены), Shares (карты, которые доступны).
Статус CONNECTED означает, что TCP-соединение установлено и авторизация прошла. Статус CONNECTING — соединение не установлено, CCcam пытается снова. Если строка висит в CONNECTING более 2-3 минут — проблема либо в сети, либо в credentials.
Чтение лога: ECM request, CW received, timeout
Лог /tmp/CCcam.log при запуске с -d содержит всё что происходит. Строки которые стоит искать:
CCcam: server server.example-host.tld user123 (cccam 2.3.0) connected
— подключение установлено, рядом видна версия протокола сервера.
ECM request CAID:0604 SID:1234 PMT:100
— ресивер запросил ключ для канала с CAID 0604.
CW received from server.example-host.tld in 124ms
— ключ получен, задержка 124 миллисекунды. Нормально до 500ms.
ECM timeout after 3000ms
— сервер не ответил за 3 секунды. Канал замёрзнет или выдаст артефакты.
Команды telnet для проверки достижимости сервера
Самый быстрый способ проверить, что порт вообще открыт:
telnet server.example-host.tld 12000
Если соединение устанавливается и потом сразу закрывается — порт открыт, но CCcam отверг подключение (неверные credentials или IP не разрешён). Если Connection refused — порт закрыт или фаерволл. Если timeout — сетевая проблема или IP заблокирован.
Альтернатива без telnet:
nc -zv server.example-host.tld 12000
Типичные ошибки в CCcam line и как их исправлять
Неверный порт или DNS не резолвится
Опечатка в порте — статус навсегда в CONNECTING. Проверьте порт ещё раз через telnet. Если DNS не резолвится (особенно актуально для серверов за CGNAT, где IP меняется каждые несколько часов), попробуйте получить IP через nslookup:
nslookup server.example-host.tld
И временно подставьте IP вместо DNS в C-line для проверки. Если с IP работает — проблема в DNS-резолвере вашего провайдера. Решение: прописать в /etc/resolv.conf сторонний DNS, например 8.8.8.8.
Для серверов с часто меняющимся IP в поле hostname используйте DynDNS-имя — это именно то, для чего поле hostname существует.
Username/password содержит спецсимволы
Если пароль содержит $, #, !, @ или пробел — могут быть проблемы. CCcam парсит строку по пробелам, и пробел в пароле сломает синтаксис полностью. Символ # в некоторых форках воспринимается как начало комментария.
Если пароль выдан с проблемными символами — попросите пересоздать без них. Или проверьте в логе: если после строки с вашей C-line написано "invalid line N" — дело точно в синтаксисе.
Отдельный случай: пустой пароль (только пробел после username). Оригинальный CCcam 2.3.2 принимает такую строку, но большинство форков — нет.
Конфликт версий протокола CCcam (2.0.11 vs 2.3.x)
CCcam 2.0.11 — старая версия с другим рукопожатием. Если ваш клиент 2.0.11 подключается к серверу на 2.3.0 или 2.3.2, соединение может устанавливаться (CONNECTED в статусе), но ECM-ответы приходить не будут или будут некорректными.
В логе это выглядит как серия ECM timeout без единого CW received. Решение — обновить бинарник CCcam на ресивере. Для Enigma2 берите бинарник под свою архитектуру (ARM, MIPS) с версией ≥2.3.0.
Сервер не отдаёт карты: проверка SID и hops
Соединение CONNECTED, но каналы не открываются. Значит проблема не в сети, а в том, что сервер не шарит нужные карты. Варианты:
- uphops=0 в F-line на сервере — сервер не разрешает вашей учётке получать карты. Нужно чтобы владелец сервера исправил F-line.
- SID-фильтр — сервер настроен отдавать только определённые каналы. В веб-интерфейсе 16001 во вкладке Shares проверьте, какие CAID/SID доступны.
- Истёкший аккаунт — в логе может быть "account expired" или соединение устанавливается и сразу рвётся.
- Нет нужной карты на сервере — сервер физически не имеет карты с нужным CAID.
Ещё один нюанс: если у вас несколько C-line на один и тот же хост с разными портами — каждое подключение учитывается сервером отдельно. Это допустимо, но некоторые серверы считают это попыткой обхода лимита соединений.
CCcam line в OScam: совместимость и преобразование
Секция [reader] в oscam.server вместо C-line
OScam не читает CCcam.cfg и не понимает синтаксис C:/F:. Но он умеет работать по протоколу CCcam в качестве клиента. Конфиг для OScam пишется в /etc/oscam/oscam.server.
Вот как одна cccam line превращается в OScam-reader:
Было (CCcam):
C: server.example-host.tld 12000 user123 pass456 no
Стало (OScam, файл /etc/oscam/oscam.server):
[reader]
label = server1
protocol = cccam
device = server.example-host.tld,12000
user = user123
password = pass456
group = 1
cccversion = 2.3.2
cccmaxhops = 10
ccckeepalive = 1
Параметры protocol = cccam, device, user, password
Параметр protocol = cccam говорит OScam использовать именно CCcam-протокол для этого ридера. device — это host и port через запятую (без пробела). user и password — как в оригинальной C-line.
Параметр cccversion должен совпадать с версией сервера для стабильности — это напрямую влияет на рукопожатие. Если не знаете версию сервера, начните с 2.3.2. Если есть проблемы — попробуйте 2.2.1 или 2.0.11.
ccckeepalive = 1 включает keepalive-пакеты — предотвращает дисконнект при долгом простое.
Когда лучше мигрировать с CCcam на OScam
OScam выигрывает если у вас сложная конфигурация: локальная смарт-карта плюс несколько удалённых серверов одновременно, SID-фильтры, разные CAID для разных ресиверов. Гибкость настроек в oscam.server несравнимо выше синтаксиса C:/F:.
Также OScam умеет одновременно держать соединения по newcamd и cccam с одной конфигурацией. Это удобно при переходе с одного протокола на другой без простоя.
Но если у вас простая задача — один сервер, один ресивер — CCcam с парой строк в cfg проще и быстрее в настройке.
Одна практическая деталь: конфигурация, где ресивер одновременно клиент (C-line) и сервер (F-line), работает в CCcam корректно. Порядок объявления в CCcam.cfg влияет на инициализацию — F-line рекомендуется объявлять до C-line, чтобы серверная часть была готова до установки исходящих соединений.
В чём разница между C-line и F-line?
C: — исходящее подключение: вы клиент, подключаетесь к удалённому серверу. Указываете его host, port, свой логин и пароль. F: — входящая учётная запись: вы сервер, описываете логин и параметры для клиента, который будет подключаться к вам. C-line всегда содержит адрес удалённого сервера, F-line — только локальные credentials.
Какой порт по умолчанию в CCcam line?
12000 — исторически дефолтный TCP-порт CCcam. Реально серверы используют любой свободный в диапазоне 10000–30000. Порт всегда идёт вторым полем после hostname в C-line и должен точно совпадать с LISTEN PORT в конфиге сервера.
Почему C-line подключается, но каналы не открываются?
TCP-соединение и авторизация прошли успешно, но сервер не отдаёт нужные карты. Проверьте в порядке вероятности: uphops=0 в F-line на сервере (владелец не разрешил вам получать карты), SID-фильтр на сервере (нужный канал заблокирован), истёкший срок аккаунта, несовместимость версий протокола, или на сервере просто нет карты с нужным CAID.
Можно ли использовать одну C-line на нескольких ресиверах одновременно?
Технически CCcam не блокирует это на стороне клиента. Но большинство серверов привязывают учётку к одному IP или ограничивают число одновременных соединений. Параллельное подключение с двух устройств часто заканчивается дисконнектом обоих или баном аккаунта.
Что означает число в фигурных скобках в конце line, например {0:0:1}?
Это node ID клиента в сети CCcam. Используется для предотвращения петель шаринга: когда карта путешествует по цепочке серверов, CCcam отслеживает, через какие узлы она прошла. Значение генерируется автоматически и сохраняется в файле CCcam.nodeID. Менять вручную не нужно.
Как проверить, что CCcam.cfg синтаксически корректен?
Запустите CCcam с флагом отладки: ./CCcam -d и откройте /tmp/CCcam.log. Некорректные строки помечаются как "invalid line N" с номером строки. Дополнительно: если C-line не появляется в веб-интерфейсе на порту 16001 — значит она не была распарсена.
Нужно ли перезапускать ресивер после правки CCcam.cfg?
Нет. Достаточно перезапустить только демон CCcam — через кнопку Stop/Start в SoftCam Manager на Enigma2, или командой killall CCcam && /usr/local/bin/CCcam -d на Linux. CCcam читает конфиг только при старте процесса и не отслеживает изменения файла на лету.
Practical checklist for smooth viewing
Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.
When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.
Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.
- Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
- Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
- Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.