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-линии сохраняются.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.