Cardsharing CCcam: настройка сервера и клиента 2026

Если вы занимаетесь cardsharing cccam хоть сколько-нибудь серьёзно, рано или поздно придётся разобраться в деталях: как именно работает протокол, где лежат конфиги, что значат эти hops и почему периодически всё замерзает. Эта статья — конкретная техническая инструкция без маркетинга и воды.

Что такое CCcam и как работает протокол

Принцип работы card sharing через CCcam

CCcam — это демон, который принимает ECM (Entitlement Control Message) от клиентского ресивера, пересылает его на сервер с физической смарт-картой, получает в ответ DCW (De-scrambling Control Word) и возвращает его клиенту. Весь цикл должен уложиться в 300–400 мс, иначе начнутся заморозки.

На стороне сервера CCcam общается с CAM-модулем через CI-слот или встроенный кардридер. CAM расшифровывает ECM с помощью реальной карты и возвращает 16-байтовый DCW. Клиент получает этот ключ и дешифрует видеопоток в реальном времени.

Протокол CCcam: порт 12000 и обмен ECM/DCW

По умолчанию CCcam слушает TCP-порт 12000. Это основной канал обмена ECM/DCW между клиентом и сервером. Соединение постоянное — клиент подключается при старте и держит сессию открытой.

Первые байты обмена — согласование версии протокола и аутентификация. Логин и пароль из C-линии хешируются, соединение шифруется примитивным XOR-алгоритмом. Серьёзной криптографией это не назовёшь, отсюда — обязательная фильтрация по IP на уровне фаервола.

Отличия CCcam от OScam, NewCamd и MGcamd

CCcam — закрытый бинарник. Последняя официальная версия 2.3.x; дальше только форки и самосборки. Настройка простая, работает стабильно на старых ресиверах Dreambox 800/7080/8000 с ограниченным железом.

OScam — open source, написан на C, поддерживает одновременно CCcam, NewCamd, CAMD35, MGcamd-протоколы. Конфиг разбит на несколько файлов: /etc/oscam/oscam.conf, oscam.server, oscam.user. Гибкость выше, порог входа тоже. NewCamd работает на порту 15050 и чаще встречается в старых европейских шаринг-сетях. MGcamd — клиент-ориентированный демон, сам по себе сервер не поднимает.

Если у вас современный ресивер на Enigma2 и нужна гибкость — смотрите в сторону OScam. Если старый Dreambox и нужна простота — CCcam всё ещё рабочий вариант.

Понятия hops, reshare, локальные карты и пиры

Hops — количество промежуточных узлов между клиентом и реальной картой. Hops 0 означает, что карта подключена непосредственно к этому серверу. Hops 1 — сервер сам является клиентом другого сервера с картой. Hops 2 и выше — цепочка реселлеров.

Каждый дополнительный хоп добавляет задержку ECM. С hops 0 реальный ECM time обычно 50–150 мс. С hops 2+ легко получить 300–600 мс и периодические фризы.

Reshare — параметр, определяющий, может ли клиент передавать полученный DCW своим клиентам дальше. Значение 0 блокирует пробрасывание. Значение 1 разрешает передать ещё одному уровню. Параметр downhops в F-линии ограничивает глубину распространения со стороны сервера.

Установка CCcam-сервера на Linux и Enigma2

Требования: процессор, RAM, стабильный канал

Минимум для сервера с реальной картой: 256 MB RAM, любой ARM или x86 процессор от 400 МГц, стабильный аплинк от 1 Мбит/с. На каждого активного клиента уходит примерно 5–10 kbit/s трафика ECM/DCW.

50 клиентов — это около 0.5 Мбит/с постоянного трафика. Но важнее не пропускная способность, а стабильность: пакетные потери выше 1% или джиттер выше 20 мс напрямую вызывают фризы у клиентов.

Установка бинарника CCcam на Debian/Ubuntu

Бинарник CCcam для Linux x86/x64 распространяется отдельно. После получения файла:

cp CCcam /usr/bin/CCcam
chmod 755 /usr/bin/CCcam
chown root:root /usr/bin/CCcam

Конфиг создаётся вручную в /etc/CCcam.cfg. Директории для логов:

mkdir -p /var/log/CCcam
touch /var/log/CCcam/CCcam.log

Установка на ресиверы Enigma2 (ipk-пакет)

На ресиверах с Enigma2 (Dreambox, VU+, Gigablue) установка через opkg:

opkg update
opkg install CCcam

Если пакет недоступен в репозитории вашего образа, IPK устанавливается вручную:

opkg install /tmp/CCcam_2.3.x_mipsel.ipk

После установки конфиг будет ожидаться в /var/etc/CCcam.cfg.

Расположение файлов: /usr/bin/CCcam, /var/etc/CCcam.cfg

На Linux-серверах стандартные пути:

  • Бинарник: /usr/bin/CCcam
  • Конфиг: /etc/CCcam.cfg
  • Лог: /var/log/CCcam/CCcam.log

На Enigma2-ресиверах пути немного другие:

  • Бинарник: /usr/bin/CCcam
  • Конфиг: /var/etc/CCcam.cfg

Важный момент: если права на бинарник выставлены неверно (например 644 вместо 755), после обновления прошивки Enigma2 CCcam молча не стартует. Это одна из самых частых проблем после апдейтов.

Запуск как systemd-сервис и автостарт

На Debian/Ubuntu создаём unit-файл /etc/systemd/system/cccam.service:

[Unit]
Description=CCcam Card Sharing Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/CCcam -c /etc/CCcam.cfg
Restart=on-failure
RestartSec=5s
StandardOutput=append:/var/log/CCcam/CCcam.log
StandardError=append:/var/log/CCcam/CCcam.log

[Install]
WantedBy=multi-user.target

Включаем и запускаем:

systemctl daemon-reload
systemctl enable cccam
systemctl start cccam

Логи смотрим через:

journalctl -u cccam -f

На Enigma2 запуск через softcam-скрипт:

/etc/init.d/softcam.CCcam start

Настройка файла CCcam.cfg: C-линии, F-линии, параметры сервера

Формат C-линии для подключения к серверу

C-линия — это строка подключения к удалённому серверу кардшаринга. Формат:

C: hostname port username password

Реальный пример (хост и данные вымышленные):

C: my.server.example 12000 mylogin mypassword

Несколько C-линий можно добавить последовательно. CCcam будет пробовать их по порядку. Если нужно принудительно задать приоритет при наличии дублирующихся CAID, используется параметр PRIO перед блоком C-линий:

PRIO
C: primary.server.example 12000 user1 pass1
C: backup.server.example 12000 user2 pass2

F-линия: создание собственного клиента

F-линия создаёт учётную запись клиента на вашем сервере:

F: username password uphops downhops reshare

Разбор параметров:

  • uphops — максимальное количество хопов карт, которые клиент может получать
  • downhops — сколько хопов можно добавить при пробросе (обычно 0 или 1)
  • reshare — разрешить ли клиенту пробрасывать карты своим клиентам (0 = запрет)

Пример создания клиента без права пробрасывать карты дальше:

F: clientuser strongpassword12 2 1 0

Параметры SERVER LISTEN PORT, SERVER USERNAME

Основные параметры сервера в начале CCcam.cfg:

SERVER LISTEN PORT = 12000
WEBINFO LISTEN PORT = 16001
TELNETINFO LISTEN PORT = 23
TELNETINFO LISTEN PORT PASSWD = telnetpass
WEBINFO SHOW CLIENT NAMES = yes
LOG FILE = /var/log/CCcam/CCcam.log
ALLOW LEVEL = 3

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

Опции ALLOW TELNETINFO, SHOW TIMING и логирование

Несколько полезных опций для диагностики и мониторинга:

SHOW TIMING = yes
ALLOW TELNETINFO = yes
SHOW PROVIDERINFO = yes
SHOW ECMINFO = yes
LOG DESTINATION = FILE

SHOW TIMING добавляет время обработки ECM в лог — незаменимо при диагностике медленных серверов. На продакшн-сервере с большим количеством клиентов лог может разрастаться быстро, поэтому стоит настроить ротацию через logrotate.

Reshare и hops: ограничение распространения

Reshare 0 в F-линии — клиент получает карты, но не может передать их своим клиентам. Это стандарт для конечных пользователей.

Reshare 1 — клиент может пробросить карту ещё одному уровню вниз. Используется для авторизованных реселлеров.

Параметр downhops в F-линии дополнительно ограничивает: даже если reshare разрешён, downhops 0 означает что клиент видит карты как hops 0 (локальные) и не может пробросить их дальше по логике CCcam. Это тонкий момент, который часто путают.

Настройка CCcam-клиента на ресивере

Получение C-линии от провайдера: что должно быть указано

Провайдер cardsharing cccam должен выдать строку вида:

C: server.example 12000 yourlogin yourpassword

Если в C-линии нет порта, или вместо порта стоит 0 — это ошибка. Если hostname указан как IP-адрес — нормально, лучше даже, меньше зависимость от DNS. Убедитесь что логин и пароль не содержат пробелов и специальных символов без экранирования.

Прописывание C-линии в CCcam.cfg клиента

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

C: server.example 12000 yourlogin yourpassword

Никаких F-линий на чисто клиентской машине не нужно — F-линии нужны только если вы сами раздаёте доступ своим клиентам. Также убедитесь что в конфиге нет старых C-линий к несуществующим серверам — CCcam будет пытаться подключиться к каждой и тратить время.

Перезапуск CCcam и проверка подключения через telnet

На Enigma2:

/etc/init.d/softcam restart

Или жёстче, если softcam-скрипт не реагирует:

killall -9 CCcam
sleep 2
CCcam -c /var/etc/CCcam.cfg &

Проверка через telnet на порту 23:

telnet 192.168.1.100 23

После ввода пароля телнета доступны команды: s — общий статус, r — readers (подключённые серверы), c — clients, p — providers (доступные CAID), g — general info с аптаймом.

Веб-интерфейс CCcam на порту 16001

Открываем браузер и идём на http://192.168.1.100:16001. Там четыре основных раздела:

  • Server — аптайм, версия, количество ECM за сессию
  • Clients — кто подключён, ECM time каждого клиента
  • Shares — доступные карты с их CAID, Provider ID, hops
  • Providers — полный список CAID которые отдаёт сервер

Раздел Shares особенно важен при диагностике — если нужный CAID там есть, но канал всё равно не открывается, проблема в Provider ID.

Привязка пакета к каналу (ECM PID, CAID, Provider ID)

Каждый зашифрованный канал имеет свой набор: CAID (идентификатор системы шифрования), Provider ID (идентификатор провайдера внутри системы) и ECM PID (идентификатор потока ECM в транспортном мультиплексе).

Если сервер отдаёт CAID 0x0500 (Viaccess), но ваш канал использует Provider ID 0x042800, а в Shares на сервере этот Provider ID отсутствует — канал не откроется, хотя CAID совпадает. Это типичная ситуация при подключении к серверу реселлера с неполным набором карт.

Как выбирать провайдера CCcam: критерии без имён

Стабильность и аптайм сервера

Минимальный приемлемый аптайм — 99%. Это примерно 7 часов даунтайма в месяц. Всё что ниже — проблема. Хороший провайдер должен показывать историю аптайма за последние 30 дней. Если такой статистики нет — это уже сигнал.

И да, "мы переезжаем на новый сервер" — не объяснение даунтайма, а признак плохого планирования.

Скорость отдачи DCW (ms) и количество freeze

Ориентиры по ECM time:

  • До 150 мс — отлично, локальная карта или очень близкий сервер
  • 150–300 мс — нормально для рабочей системы
  • 300–500 мс — на грани, уже могут быть редкие фризы
  • Выше 500 мс — заморозки будут регулярными

Попросите тестовый доступ и смотрите ECM time через telnet команду s в течение суток в разное время — вечерний пик нагрузки всегда хуже чем утро.

Локальные карты vs реселлеры (hops 0 vs hops 2+)

Сервер с hops 0 — карта подключена физически. Скорость максимальная, зависимость от сторонних серверов отсутствует. Это то, что нужно.

Сервер с hops 2+ — реселлер реселлера. Цена ниже, но каждый дополнительный узел в цепочке — это дополнительный риск и задержка. При падении любого узла цепочки ваш доступ тоже падает, причём без вашего ведома.

Тестовый период и условия возврата

Нормальная практика — тестовый доступ на 24–48 часов. Этого достаточно чтобы проверить: все ли нужные CAID доступны, нет ли просадок в вечерние часы, какой реальный ECM time.

Никаких денег вперёд без теста. Если провайдер не даёт тест — следующий.

Поддержка нужных CAID для ваших пакетов

Перед покупкой выясните точные CAID ваших каналов. Для Viaccess — 0x0500, для Nagravision — 0x1801/0x1830, для Irdeto — 0x0600/0x0602, для Conax — 0x0B00. Сервер должен явно поддерживать ваши пакеты — не просто "поддерживаем всё", а конкретный CAID и Provider ID.

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

Ошибка `card not found` и пустой список Providers

Причина: Сервер подключён, авторизация прошла, но нужного CAID нет в доступных картах.

Проверка: Telnet → команда p → смотрим список Providers. Если список пустой или нет нужного CAID — сервер не отдаёт нужные карты.

Решение: Связаться с провайдером и уточнить поддерживаемые CAID, либо сменить сервер. Если список Providers есть, но канал всё равно не открывается — смотрим Provider ID.

Чёрный экран и freeze: проблемы с ECM-ответом

Самая частая проблема в настройке cardsharing cccam. Сервер технически отвечает, но ECM не успевают дешифроваться до того, как канал требует следующий ключ.

Проверка: Telnet → s → поле ECM time. Если скачет от 50 мс до 800 мс с интервалами — проблема маршрутизации между вами и сервером, а не сам сервер.

Решение: Попробовать сервер в другое время суток. Если проблема системная — менять сервер или выбирать с меньшим количеством хопов.

`connection refused` на порту 12000

Причина: Либо CCcam на сервере не запущен, либо порт закрыт фаерволом.

Проверка на сервере:

iptables -L -n | grep 12000
ss -tlnp | grep 12000

Решение: Если процесс запущен, но порт закрыт — добавить правило iptables:

iptables -A INPUT -p tcp --dport 12000 -j ACCEPT

Высокий пинг и таймауты ECM

ECM time 600–1200 мс при нормальном пинге до сервера — признак перегрузки сервера или проблем с самой картой/CAM-модулем на стороне провайдера.

Проверить базовый пинг до сервера:

ping -c 20 server.example
traceroute server.example

Если пинг 30 мс, а ECM time 600 мс — проблема на стороне сервера, не у вас. Если же пинг 300 мс — проблема в маршрутизации, и смена сервера на более близкий географически может помочь.

Анализ логов CCcam через telnet команду `g`

Команда g в telnet-сессии показывает общую информацию: версию CCcam, аптайм, количество ECM за сессию, количество активных клиентов и readers. Команда r показывает детали по каждому reader — статус подключения, CAID, аптайм соединения, среднее ECM time.

Если reader показывает статус OFFLINE или RECONNECTING в цикле — проблема с сетью до родительского сервера или неверные данные авторизации в C-линии.

Безопасность CCcam-сервера

Изменение портов по умолчанию (12000, 16001, 23)

Порт 12000 сканируют автоматически. Смена на нестандартный (например 15337) снизит количество мусорных подключений. В CCcam.cfg:

SERVER LISTEN PORT = 15337
WEBINFO LISTEN PORT = 18442
TELNETINFO LISTEN PORT = 24501

Не забудьте обновить C-линии всех клиентов после смены порта.

Сильные пароли в C-линиях и F-линиях

Минимум 12 символов, смесь букв, цифр, спецсимволов. Никаких user/12345, admin/admin, имён, дат рождения. Пароли в CCcam.cfg хранятся открытым текстом, поэтому доступ к файлу должен быть ограничен:

chmod 600 /etc/CCcam.cfg
chown root:root /etc/CCcam.cfg

Ограничение доступа через iptables по IP

Самая эффективная мера — whitelist по IP. Если клиенты подключаются с фиксированных адресов:

iptables -A INPUT -p tcp --dport 12000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -s 5.6.7.8 -j ACCEPT
iptables -A INPUT -p tcp --dport 12000 -j DROP

Веб-интерфейс и telnet — только с локальной сети или через VPN:

iptables -A INPUT -p tcp --dport 16001 -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 16001 -j DROP
iptables -A INPUT -p tcp --dport 23 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j DROP

Отключение ALLOW TELNETINFO в публичных конфигах

Большинство гайдов в сети оставляют ALLOW TELNETINFO = yes и не меняют пароль. Это открывает всю статистику сервера любому кто найдёт порт.

Если telnet нужен только для локальной диагностики:

ALLOW TELNETINFO = yes
TELNETINFO LISTEN PORT = 23
TELNETINFO LISTEN PORT PASSWD = V3ryStr0ngP@ss!

И закрыть порт 23 фаерволом для внешних адресов как показано выше.

Регулярные бэкапы CCcam.cfg

Конфиг с F-линиями клиентов — это ваша база пользователей. Бэкап перед каждым изменением:

cp /var/etc/CCcam.cfg /var/etc/CCcam.cfg.bak.$(date +%Y%m%d_%H%M%S)

Для автоматизации через cron (ежедневно в 3:00):

0 3 * * * cp /var/etc/CCcam.cfg /var/etc/CCcam.cfg.bak.$(date +\%Y\%m\%d)

В чём разница между CCcam и OScam?

CCcam — закрытый бинарник с простой настройкой и поддержкой только собственного протокола. Последняя официальная версия 2.3.x, дальнейшее развитие остановлено. OScam — open source, активно разрабатывается, поддерживает CCcam, NewCamd, CAMD35, MGcamd как на стороне клиента, так и сервера. Конфиг OScam разбит на несколько файлов: oscam.conf, oscam.server, oscam.user. OScam гибче и современнее; CCcam стабильнее работает на старых ресиверах Enigma2 с ограниченными ресурсами.

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

Основной порт обмена ECM/DCW — 12000/tcp. Веб-интерфейс — 16001/tcp. Telnet-управление — 23/tcp. Все порты меняются в CCcam.cfg: SERVER LISTEN PORT, WEBINFO LISTEN PORT, TELNETINFO LISTEN PORT.

Что означают hops в C-линии?

Hops — количество промежуточных серверов между вашим клиентом и физической смарт-картой. Hops 0 — карта подключена непосредственно к этому серверу (минимальная задержка, обычно 50–150 мс ECM time). Hops 1 — сервер сам клиент другого сервера с реальной картой. Hops 2+ — цепочка реселлеров. Каждый дополнительный хоп добавляет задержку и снижает надёжность.

Почему появляется чёрный экран при работающей C-линии?

Соединение установлено, но ECM не дешифруются вовремя. Главные причины: ECM time выше 500 мс (проверить через telnet команду s), сервер не поддерживает нужный Provider ID для вашего канала, перегрузка сервера в часы пик. Также бывает ситуация когда CAID совпадает, но конкретный Provider ID отсутствует — канал не откроется даже при нормальном ECM time.

Как проверить что CCcam-сервер работает?

Проверить процесс: ps aux | grep CCcam. Подключиться telnet на порт 23, ввести пароль и ввести команду s — покажет аптайм, ECM/sec, количество клиентов. Веб-интерфейс http://ip:16001 показывает Shares (доступные карты), Clients (подключённых пользователей), Providers (список CAID).

Можно ли запустить CCcam-сервер на VPS?

Технически CCcam работает на любом Linux VPS — минимальные требования 256 MB RAM, 1 vCPU, стабильный канал. Но реальная смарт-карта должна быть подключена физически через CAM-модуль. VPS без физического CAM подходит только как прокси или реселл-сервер, принимающий DCW от другого сервера с картой — не как основной сервер дешифровки.

Как обновить CCcam без потери конфигурации?

Сначала бэкап: cp /var/etc/CCcam.cfg /var/etc/CCcam.cfg.bak. Остановить процесс: killall -9 CCcam. Заменить бинарник: cp new-CCcam /usr/bin/CCcam && chmod 755 /usr/bin/CCcam. Запустить: CCcam -c /var/etc/CCcam.cfg или через softcam-скрипт. Проверить версию через telnet командой v. Конфиг при этом не трогается — все C-линии и F-линии сохраняются.

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.