Настройка CCcam сервера: полное руководство 2026
Если вы читаете это, значит уже разобрались что такое cardsharing и теперь хотите поднять собственный сервер, а не зависеть от чужих линий. Правильное решение. Cccam server setup — это не особо сложная задача, но интернет завален гайдами 2011 года с устаревшими init.d скриптами и нулевым объяснением параметров. Этот текст написан под Debian 12 и реальную работу с картой, а не теорию.
Сразу честно: CCcam как проект заброшен с 2014 года. Но он всё ещё работает, его хорошо понимают большинство ресиверов, и для простого домашнего шаринга своей легальной карты в рамках локальной сети — он справляется. Если нужна полноценная поддержка EMM и современный стек — смотри раздел про OScam в конце.
Что такое CCcam сервер и когда он нужен
CCcam — это демон, который берёт смарт-карту из физического ридера и отдаёт к ней доступ по сети клиентам через собственный TCP-протокол. По умолчанию слушает порт 12000. Протокол не стандартный, с простым XOR-шифрованием поверх TCP — не путать с newcamd, это разные протоколы.
Задача сервера одна: получить ECM-запрос от клиентского ресивера, передать его карте, получить CW (Control Word) и вернуть клиенту. Всё. Если укладывается в ~200-400 ms — картинка идёт без фризов.
Архитектура клиент-сервер в CCcam
Сервер держит карту и принимает F-линии (клиентские аккаунты). Клиент подключается через C-линию — указывает хост, порт, логин, пароль. Один сервер может одновременно обслуживать несколько клиентов, но каждая карта обрабатывает примерно 5-10 ECM-запросов в секунду. Больше — очередь и фризы.
Отличия CCcam от OScam и mgcamd
OScam — это современная замена CCcam. Поддерживает EMM (обновление ключей карты), DVB-API напрямую, работает стабильнее на нагрузке. Mgcamd — клиентский демон для ресиверов, он не держит сервер, только подключается к чужому. Путаница часто возникает именно здесь: mgcamd = клиент, CCcam/OScam = могут быть и сервером и клиентом одновременно.
Главный минус CCcam в 2026: он не поддерживает EMM. Если карта требует периодического обновления ключей — CCcam не справится, нужен OScam.
Когда поднимать свой сервер, а когда хватит клиента
Свой сервер нужен если у вас есть физическая смарт-карта и ридер, и вы хотите давать к ней доступ нескольким ресиверам в доме. Если у вас нет карты — сервер бессмыслен. Просто возьмите C-линию к чужому серверу и настройте клиента.
Подготовка сервера: железо, ОС, зависимости
Минимальные требования смешные: 1 ядро, 256 MB RAM, стабильный интернет от 5 Mbit. CCcam не нагружает процессор в нормальном режиме. Проблемы начинаются когда он начинает жрать 100% CPU через несколько суток — это известный memleak в бинарнике, лечится через cron-рестарт раз в 24 часа (или переход на OScam).
Минимальные требования: CPU, RAM, сеть
Raspberry Pi 4 с 1 GB RAM — избыточно для одного сервера. VPS с 512 MB тоже справится. Критично другое: стабильность соединения. Пинг-джиттер убивает ECM time сильнее чем слабый процессор. Смотри на uptime провайдера и задержку до клиентов, а не на гигагерцы.
Выбор дистрибутива: Debian/Ubuntu vs Enigma2
На обычном сервере — Debian 12 (Bookworm). Проверено, пакеты есть, systemd работает как надо. Ubuntu 22.04/24.04 тоже нормально. Enigma2 — это отдельная история: там свои пути конфигов (/usr/keys/ вместо /var/etc/), другой init-система, и многие команды ниже не применимы напрямую. Про Enigma2 отмечу отдельно там где важно.
Установка зависимостей: libssl, glibc версии
Бинарник CCcam — 32-битный. На современном 64-битном Debian без дополнительных пакетов он не запустится. Первое что нужно сделать:
dpkg --add-architecture i386
apt update
apt install libc6-i386 lib32stdc++6 libssl-dev
Если пропустить libc6-i386 — при запуске получите загадочное No such file or directory для файла который явно существует. Это именно проблема 32-битных библиотек, не путей.
Настройка сети: статический IP, проброс портов, firewall
Статический IP обязателен. Динамический — только с DDNS, и то это добавляет точку отказа. Если сервер за роутером, прокиньте TCP 12000 (или ваш кастомный порт) на внутренний адрес сервера. Базовое правило iptables:
iptables -A INPUT -p tcp --dport 12000 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -j DROP
Открывать 12000 на весь мир — плохая идея. Даже если пароли стойкие, брутфорс на нестандартный порт идёт постоянно.
Установка и структура файлов CCcam
Бинарник CCcam скачайте в /usr/bin/CCcam и выставьте права:
chmod 755 /usr/bin/CCcam
На Enigma2 ресиверах бинарник обычно уже есть, путь — /usr/bin/CCcam или /usr/local/bin/CCcam в зависимости от прошивки.
Права доступа и автозапуск через systemd
Большинство гайдов до сих пор показывают init.d скрипты. На Debian 12 это устарело. Создайте /etc/systemd/system/cccam.service:
[Unit]
Description=CCcam Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/CCcam -d
Restart=on-failure
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
Активация:
systemctl daemon-reload
systemctl enable --now cccam
journalctl -u cccam -f
Флаг -d запускает в режиме демона с логированием. Без него CCcam уйдёт в фон сам, но логи в journalctl будут пустыми.
Структура /var/etc/: CCcam.cfg, CCcam.channelinfo, CCcam.providers
На Debian конфиг читается из /var/etc/CCcam.cfg. На Enigma2 — из /usr/keys/CCcam.cfg. Остальные файлы в той же директории:
CCcam.cfg— основной конфиг, F/C/N-линии, параметры сервераCCcam.channelinfo— маппинг SID на названия каналов, необязателенCCcam.providers— информация о провайдерах, тоже опционально
Логи: /tmp/CCcam.log и ротация
CCcam пишет в /tmp/CCcam.log. Без ротации за неделю файл может вырасти до 1-2 GB. Создайте /etc/logrotate.d/cccam:
/tmp/CCcam.log {
daily
rotate 3
compress
missingok
notifempty
copytruncate
}
Диагностика в реальном времени:
tail -f /tmp/CCcam.log | grep -i error
Конфигурация CCcam.cfg: построчный разбор
Это самый важный раздел. Большинство проблем с cccam server setup сводятся к неправильно написанному конфигу. Разберём каждый блок.
Глобальные параметры: SERVER LISTEN PORT, WEBINFO LISTEN PORT
SERVER LISTEN PORT : 12000
WEBINFO LISTEN PORT : 16001
WEBINFO USERNAME : admin
WEBINFO PASSWORD : yourpassword
NEWCAMD LISTEN PORT : 15000
LOG FILE : /tmp/CCcam.log
LOG LEVEL : 1
MAX CONNECTED CLIENTS : 5
SHARE MEMORY MESSAGES : 64
Порт 12000 — дефолт протокола CCcam. Если клиенты подключаются снаружи, меняйте на нестандартный. Webinfo на 16001 — браузерный мониторинг, показывает подключённых клиентов, статус ридеров и ECM time. Пароль обязателен, иначе оставите открытый веб-интерфейс.
C: линии — подключение к удалённому серверу как клиент
C: hostname.example.com 12000 username password
C-линия превращает ваш CCcam в клиента к чужому серверу. Если у вас есть своя карта в ридере — C-линии не нужны. Если хотите каскадировать несколько источников — добавляйте, но каждый хоп добавляет задержку к ECM time.
F: линии — приём клиентов на свой сервер
F: username password 2 0 0 { 0:0:1 }
Разбор параметров:
username— логин клиентаpassword— пароль2— максимум хопов (сколько раз клиент может пересылать карту дальше)- первый
0— разрешить reshare (0 = да, 1 = нет) - второй
0— разрешить EMM-запросы (0 = да, CCcam их игнорирует всё равно) { 0:0:1 }— ограничение по CAID:ProviderID:ServiceID,0:0:1= доступ ко всему
Для домашних клиентов хоп ставьте 1. Для клиентов которые сами раздают дальше — 2. Больше 3 не нужно: ECM time растёт почти линейно с каждым хопом.
N: линии — newcamd протокол
N: hostname.example.com 15000 username password 01020304050607080910111213141516 { 0:0:1 }
N-линии нужны если клиент использует newcamd протокол (некоторые старые ресиверы). Длинная строка из цифр — DES-ключ, 14-байтный. Если не знаете что это — вам это не нужно, используйте стандартные C/F-линии.
Параметры карты: SERIAL READER, BOX KEY, RSA KEY
SERIAL READER : /dev/ttyUSB0 viaccess 1 mhz=600
BOX KEY : 0102030405060708090a0b0c0d0e0f
RSA KEY : 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
BOX KEY и RSA KEY нужны только для специфичных провайдеров и систем. Для большинства карт они не нужны. Оставьте в нулях или вообще не пишите — CCcam подберёт автоматически.
Обязательно выставьте:
chmod 600 /var/etc/CCcam.cfg
В конфиге хранятся пароли клиентов в открытом виде. На multi-user системе это читают все пользователи если не закрыть права.
Подключение ридера смарт-карты
Без ридера сервер — просто прокси к чужим C-линиям. Если у вас есть физическая карта, вот как её подключить.
PC/SC ридеры (Phoenix, Smargo) и USB подключение
Подключите ридер, проверьте что система его видит:
lsusb
Phoenix и Smargo USB определяются как serial-over-USB устройства и появляются как /dev/ttyUSB0. Установите утилиты:
apt install pcscd pcsc-tools
Проверьте карту:
pcsc_scan
Вывод покажет ATR карты — строку вроде 3B 9F 21 0E 49 52 44 45.... Если ATR не читается — проблема с частотой или картой. Если pcsc_scan не видит ридер вообще — запустите systemctl start pcscd.
Параметры SERIAL READER в конфиге
SERIAL READER : /dev/ttyUSB0 viaccess 1 mhz=600
Параметры после имени устройства: тип карты (viaccess, seca, irdeto, nagra, conax, cryptoworks), количество ридеров на порту (всегда 1), и частота. Если несколько ридеров — каждый на отдельной строке:
SERIAL READER : /dev/ttyUSB0 viaccess 1 mhz=600
SERIAL READER : /dev/ttyUSB1 nagra 1 mhz=357
Скорости: mhz 357, 600, 800
Частота влияет на скорость ответа карты. Phoenix-ридеры работают на 3.57 MHz (параметр mhz=357). Smargo и T14 поддерживают 6 MHz (mhz=600) и выше. Если ATR читается но неполный — начните с mhz=357, потом пробуйте выше. Неверная частота даёт неполный ATR или таймаут чтения.
Проверка карты через pcsc_scan и cardinfo
После запуска CCcam зайдите в webinfo на порту 16001. В разделе Readers должен быть ваш ридер со статусом card found и CAID карты. Если там no card или read error — смотрите лог:
tail -f /tmp/CCcam.log | grep -i reader
Права на устройство — частая причина. Если CCcam запускается не от root:
chmod 666 /dev/ttyUSB0
# или добавьте пользователя в группу:
usermod -aG dialout cccam
После ребута /dev/ttyUSB0 может получить другой номер. Используйте стабильный путь:
SERIAL READER : /dev/serial/by-id/usb-PHOENIXREADER_Phoenix_12345-if00 viaccess 1 mhz=600
Тестирование и отладка подключений
Правильный порядок диагностики: сначала убедиться что процесс запущен, потом что порт слушается, потом что карта читается, потом что клиент подключается.
Запуск в foreground для отладки: CCcam -d -v
Остановите сервис и запустите вручную для полного вывода:
systemctl stop cccam
/usr/bin/CCcam -d -v
Флаг -v увеличивает verbosity. В выводе ищите строки card added (карта прочитана), reader started (ридер инициализирован), client connected (клиент подключился).
Проверка через telnet на порт 12000
netstat -tlnp | grep CCcam
Должно показать LISTEN на 12000 и 16001. Если нет — CCcam не запустился или конфигурационная ошибка. Подключиться через telnet не получится читаемым образом — протокол бинарный — но telnet localhost 12000 покажет что порт открыт (соединение установится, потом разорвётся — это нормально).
Анализ логов: hop, reader, ECM time
На что смотреть в /tmp/CCcam.log:
ECM time: 245 ms— хорошо, клиент не заметитECM time: 850 ms— граница, при нестабильном канале будут редкие фризыECM time: 2000+ msилиtimeout— клиент видит заморозку каждые ~10 секундno reader available— CCcam не видит карту, проверяйте SERIAL READERlogin failed for user X from IP— неверный пароль, или попытка взлома
Web-интерфейс на порту 16001
Браузер, http://server-ip:16001, логин из WEBINFO USERNAME в конфиге. Показывает подключённых клиентов, статус ридеров, активные карты с CAID, текущий ECM time. Для быстрой диагностики удобнее лога — видно всё сразу.
Безопасность сервера и типичные ошибки
Cccam server setup в интернете без базовой защиты — это открытый брутфорс на логины и попытки несанкционированного доступа к карте. Несколько минут настройки закрывают 90% векторов.
Ограничение доступа через iptables по IP
Если знаете IP клиентов заранее — вайтлист обязателен:
# Разрешить конкретный IP клиента
iptables -A INPUT -p tcp --dport 12000 -s 203.0.113.10 -j ACCEPT
# Разрешить локальную сеть
iptables -A INPUT -p tcp --dport 12000 -s 192.168.1.0/24 -j ACCEPT
# Остальное — дроп
iptables -A INPUT -p tcp --dport 12000 -j DROP
# Webinfo — только localhost
iptables -A INPUT -p tcp --dport 16001 ! -s 127.0.0.1 -j DROP
Сохраните правила:
apt install iptables-persistent
netfilter-persistent save
Защита от брутфорса: fail2ban правила
apt install fail2ban
Создайте /etc/fail2ban/filter.d/cccam.conf:
[Definition]
failregex = login failed.*from <HOST>
ignoreregex =
И /etc/fail2ban/jail.d/cccam.conf:
[cccam]
enabled = true
port = 12000
filter = cccam
logpath = /tmp/CCcam.log
maxretry = 5
bantime = 3600
findtime = 600
systemctl restart fail2ban
Изоляция: запуск под non-root пользователем
CCcam нужны права на /dev/ttyUSB0. Создайте пользователя и добавьте в группу:
useradd -r -s /bin/false cccam
usermod -aG dialout cccam
В systemd unit замените User=root на User=cccam. Это ограничивает ущерб если в CCcam найдут уязвимость.
Шифрование канала: stunnel или VPN-туннель
Протокол CCcam использует слабое XOR-шифрование. Для шаринга через интернет это недостаточно. Два варианта:
stunnel: оборачивает TCP 12000 в TLS. Клиент подключается к stunnel-порту, тот расшифровывает и передаёт CCcam на localhost. Конфигурация простая, но требует поддержки stunnel на клиентской стороне.
WireGuard: ещё лучше. CCcam слушает только на wg0 интерфейсе (10.0.0.1:12000), клиенты подключаются только через VPN-туннель. Для внешнего мира порт 12000 вообще не существует. Это правильное решение для интернет-доступа.
Миграция на OScam: когда и зачем
Если вы дочитали до этого раздела и настроили рабочий сервер — хорошо. Но CCcam это legacy, и рано или поздно вы упрётесь в его ограничения. OScam — это активно развивающийся проект, последние коммиты есть в 2025-2026 году.
Преимущества OScam: EMM, DVB-API, лучшая стабильность
Ключевые отличия:
- EMM-поддержка: OScam умеет обрабатывать EMM-сообщения и обновлять ключи карты. CCcam — нет. Для некоторых провайдеров это критично.
- DVB-API: OScam может работать напрямую с DVB-устройствами, без внешнего ридера.
- Стабильность: нет известного memleak как в CCcam. Не нужен cron-рестарт каждые 24 часа.
- Гибкая конфигурация: отдельные файлы для каждой сущности — удобнее чем один огромный CCcam.cfg.
Конвертация CCcam.cfg → oscam.server и oscam.user
Конфиги OScam лежат в /etc/oscam/. Основные файлы: oscam.conf, oscam.server, oscam.user.
Ваш SERIAL READER из CCcam.cfg превращается в секцию в /etc/oscam/oscam.server:
[reader]
label = viaccess_reader
enable = 1
protocol = mouse
device = /dev/ttyUSB0
mhz = 600
caid = 0500
Параметр protocol=mouse — для обычных serial-ридеров (Phoenix, Smargo). Для Smargo USB с нативной поддержкой — protocol=smartreader.
Сохранение F-линий клиентов при переходе
Каждая F-линия из CCcam.cfg становится секцией в /etc/oscam/oscam.user:
Было в CCcam.cfg:
F: myuser mypassword 2 0 0 { 0:0:1 }
Стало в oscam.user:
[account]
user = myuser
pwd = mypassword
maxhops = 2
au = 0
group = 1
caid = 0500,1800
Клиенты не заметят перехода: они по-прежнему подключаются через CCcam-протокол, просто теперь его обрабатывает OScam. В oscam.conf включите нужный порт:
[cs378x]
port = 12000
Это cs378x протокол — совместимый с CCcam. Ваши клиенты с C-линиями продолжают работать без изменений.
Частые вопросы
Какой порт по умолчанию использует CCcam сервер?
TCP 12000 — для клиент-серверного протокола CCcam. TCP 16001 — для веб-интерфейса мониторинга. Оба порта настраиваются в CCcam.cfg через параметры SERVER LISTEN PORT и WEBINFO LISTEN PORT. Для сервера, доступного из интернета, рекомендую менять 12000 на нестандартный порт — это уберёт большинство автоматических сканеров.
Почему клиент подключается, но каналы не открываются?
Первое что проверяю — ECM time в логе. Если больше 2000 ms или вижу timeout, проблема в маршруте до карты: либо сетевая задержка, либо карта перегружена запросами. Проверьте через webinfo что ридер видит карту (статус card found). Часто виновата неверная частота mhz — попробуйте 357 вместо 600 или наоборот. Ещё вариант: hop в F-линии слишком маленький для вашей топологии — поставьте 2.
Что означает hop в F-линии и как его выставить?
Hop — количество промежуточных серверов, через которые клиент может пересылать карту дальше. Значение 0 означает только локальный доступ без возможности reshare. Значение 1 — клиент может отдавать карту одному уровню ниже. Для домашних клиентов в локальной сети ставьте 1. Если клиент сам является сервером — 2. Больше 3 не рекомендую: ECM time растёт с каждым дополнительным хопом, и к клиенту четвёртого уровня приходит уже с заметной задержкой.
Как запустить CCcam как сервис на Debian 12?
Создайте /etc/systemd/system/cccam.service с ExecStart=/usr/bin/CCcam -d, Restart=on-failure, RestartSec=10. Потом: systemctl daemon-reload && systemctl enable --now cccam. Логи смотреть через journalctl -u cccam -f. Важно: на 64-битном Debian обязательно установите libc6-i386 до запуска, иначе CCcam откажется стартовать с непонятной ошибкой.
Можно ли запустить CCcam и OScam одновременно на одном сервере?
Технически да, но они будут конкурировать за /dev/ttyUSB0. Правильное решение: OScam держит ридер напрямую и отдаёт CCcam через cs378x или newcamd протокол на localhost. CCcam в таком случае работает как чистый прокси-сервер без прямого доступа к карте. Это даже полезно на переходный период: клиенты с C-линиями работают без изменений пока вы настраиваете OScam.
Как защитить сервер от несанкционированных подключений?
Минимальный набор: iptables с вайтлистом IP клиентов, fail2ban с regex на login failed в CCcam.log, длинные пароли в F-линиях (16+ символов), обязательно chmod 600 на CCcam.cfg. Для доступа из интернета — никогда не выставляйте порт 12000 напрямую. Оберните в WireGuard или stunnel. Это не паранойя — боты сканируют нестандартные порты постоянно.
Почему ECM time скачет от 200 до 3000 ms?
Нестабильный uplink или перегруженная карта. Каждая карта обрабатывает примерно 5-10 ECM-запросов в секунду — если клиентов больше, запросы встают в очередь. Сетевая задержка между сервером и клиентом добавляется напрямую: 100 ms пинг = 100 ms к каждому ECM. Ограничьте MAXCONNECTIONS в F-линии и проверьте загрузку канала сервера в момент пиков.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.