iCam настройка: полный гайд по конфигурации 2026

Если вы занимаетесь icam settings и не можете понять, почему каналы молчат после установки — вы в правильном месте. iCam выглядит как OScam, но ведёт себя немного иначе, особенно в части FreeCAM протокола и обработки ECM. Здесь разберём конфиги от и до: от прав доступа до failban и dvbapi маппинга.

Что такое iCam и где хранятся его конфиги

iCam — это форк OScam, заточенный под FreeCAM протокол. Базовая архитектура та же: oscam.conf, oscam.server, oscam.user, oscam.dvbapi. Но внутри добавлены патчи для специфической обработки ECM-запросов и оптимизации под определённые чипсеты — Broadcom, HiSilicon, Amlogic.

Если у вас уже есть рабочий OScam конфиг, он в большинстве случаев заведётся в iCam без изменений. Исключение — FreeCAM-специфичные параметры, которых в чистом OScam нет.

Отличия iCam от классического OScam

Главное отличие — нативная поддержка FreeCAM протокола. В классическом OScam его нет вообще. iCam также немного иначе обрабатывает ECM timeout при мультиридерных конфигах: он агрессивнее переключается на следующий ридер при задержке, что снижает глитчи на слабых каналах.

Ещё одно: iCam часто имеет более свежую базу softcam-ключей и обновлённые таблицы provid для ряда европейских пакетов. В остальном — те же параметры, тот же синтаксис.

Расположение файлов конфигурации

На Enigma2 ресиверах (OpenATV, OpenPLi, VTI) конфиги лежат здесь:

  • /etc/tuxbox/config/oscam.conf — основной конфиг
  • /etc/tuxbox/config/oscam.server — ридеры
  • /etc/tuxbox/config/oscam.user — клиентские аккаунты
  • /etc/tuxbox/config/oscam.dvbapi — маппинг CAID для декодирования

На некоторых образах папка называется /etc/tuxbox/config/oscam/ (с подпапкой). Проверьте через find /etc/tuxbox -name "oscam.conf" — это точнее угадывания.

На Linux x86 сервере стандартный путь — /usr/local/etc/ или /etc/oscam/. Зависит от того, как собирался бинарник. Смотрите в oscam --version — там будет строка Config dir:.

Права доступа и владелец файлов

Конфиги должны принадлежать root и быть нечитаемы посторонним. Особенно oscam.user — там пароли клиентов в открытом виде:

chmod 600 /etc/tuxbox/config/oscam.conf
chmod 600 /etc/tuxbox/config/oscam.server
chmod 600 /etc/tuxbox/config/oscam.user
chown root:root /etc/tuxbox/config/oscam.*

Если iCam запускается не от root (что редко, но бывает), меняйте владельца соответственно. Неправильные права — частая причина того, что сервис стартует, но ничего не работает: файл просто не читается.

Базовая настройка oscam.conf для iCam

Это центральный файл. Большинство проблем с icam settings начинаются именно здесь — неверный порт WebIf, отключённое логирование, агрессивный anticasc. Ниже рабочий шаблон с объяснением каждого параметра.

Секция [global] — nice, logfile, WaitForCards

[global]
logfile                = /var/log/oscam.log
maxlogsize             = 10000
loghistorysize         = 256
nice                   = -1
WaitForCards           = 1
preferlocalcards       = 1
saveinithistory        = 1
readerrestartseconds   = 5
dropdups               = 1

nice=-1 даёт iCam немного больший приоритет планировщика — на загруженных ресиверах это снижает ECM задержки на 50–150 мс. WaitForCards=1 означает, что сервис не будет стартовать клиентские подключения, пока не инициализированы все ридеры. Без этого клиент подключается, получает 0 карт и отваливается.

dropdups=1 — защита от дублирующихся ECM запросов. На мультиклиентных серверах без этого можно получить двойную нагрузку при одном и том же канале у нескольких пользователей.

Секция [webif] — httpport, httpuser, httppwd, httpallowed

[webif]
httpport               = 8888
httpuser               = myadmin
httppwd                = MyStr0ngPass!
httpallowed            = 127.0.0.1,192.168.0.0-192.168.255.255
httpdyndns             = 0
httprefresh            = 15
httpreadonly           = 0

Порт 8888 — стандарт для OScam/iCam WebIf. Если он занят (на ресивере часто висит что-то на 8888), берите 8080, 8090, 9080. Важно: httpallowed должен включать только ваши адреса. Никаких httpallowed = 0.0.0.0 — это открытый доступ к интерфейсу с любого IP.

Если ресивер стоит за NAT и вы хотите получить доступ к WebIf снаружи — добавьте только конкретный внешний IP, не диапазон.

Секция [monitor] — port, aulow, monlevel

[monitor]
port                   = 988
aulow                  = 30
monlevel               = 2
hideclientfrom         = 0

monlevel=2 позволяет видеть клиентов и ридеры через мониторинг, но не менять конфиг. monlevel=0 — полный запрет, monlevel=4 — полный доступ. Для продакшна держите 2.

Секция [anticasc] — настройки антикаскада

[anticasc]
enabled                = 1
numusers               = 1
sampletime             = 2
samples                = 10
penalty                = 2
aclogfile              = /var/log/oscam_ac.log
fakedelay              = 1000
denysamples            = 10

Антикаскад защищает от расшаривания вашей линии. numusers=1 — один аккаунт = одно подключение. penalty=2 — при нарушении аккаунт получает задержку ответа (fake delay), а не дроп — это мягче и реже ломает легитимных клиентов с нестабильной сетью.

На старых ресиверах с ARM 400 MHz anticasc лучше отключить (enabled=0) или задрать sampletime до 10. Иначе сам процесс антикаскада будет жрать CPU больше, чем полезная работа.

Настройка oscam.server — подключение ридеров

Файл oscam.server описывает, откуда iCam берёт ключи для расшифровки. Каждый [reader] блок — это один источник: физическая карта, CCcam линия, Newcamd сервер или FreeCAM.

Локальная DVB-карта (protocol = internal)

[reader]
label                  = local_dvb
protocol               = internal
device                 = /dev/sci0
detect                 = cd
mhz                    = 357
cardmhz                = 357
caid                   = 0500,0604
group                  = 1
emmcache               = 1,3,2

На Enigma2 физическая карта почти всегда /dev/sci0 (первый слот) или /dev/sci1 (второй). Если ресивер использует DVB стек, может быть /dev/dvb/adapter0/ca0. Проверьте: ls /dev/sci* /dev/dvb/.

При двух тюнерах на одном ресивере — каждый тюнер получает свой [reader] с отдельным device и разными group. Тогда клиенты могут быть распределены по группам: одни клиенты смотрят через adapter0, другие — через adapter1.

CCcam клиент (protocol = cccam)

[reader]
label                  = cccam_main
protocol               = cccam
device                 = yourserver.example.com,12000
user                   = myusername
password               = mypassword
cccversion             = 2.3.2
cccmaxhops             = 5
cccmindown             = 0
ccckeepalive           = 1
inactivitytimeout      = 30
reconnecttimeout       = 30
group                  = 2
caid                   = 0500,0604,1830

cccversion=2.3.2 — большинство современных серверов поддерживают именно эту версию протокола. Ставить 2.0.11 или 2.1.x нет смысла, если сервер не требует конкретную версию.

inactivitytimeout=30 и reconnecttimeout=30 — если ридер молчит 30 секунд, iCam попробует переподключиться. Без этих параметров зависший ридер может висеть часами, не отдавая ключи.

Newcamd подключение (protocol = newcamd)

[reader]
label                  = newcamd_reader
protocol               = newcamd
device                 = yourserver.example.com,15000
user                   = nmuser
password               = nmpass
key                    = 0102030405060708091011121314
caid                   = 0604
group                  = 3

Newcamd требует ключ (14 байт в hex). Если не знаете ключ — спросите у провайдера линии. Без правильного ключа handshake не пройдёт и ридер останется в статусе FAIL.

FreeCAM специфика iCam

FreeCAM — протокол, ради которого многие и выбирают iCam. Настраивается отдельным блоком:

[reader]
label                  = freecam_reader
protocol               = freecam
device                 = yourfreecamserver.com,8080
user                   = fcuser
password               = fcpass
group                  = 4
caid                   = 1830,0B00
inactivitytimeout      = 60

FreeCAM использует собственный бинарный протокол — не CCcam, не Newcamd. Порт у разных серверов разный, чаще всего в диапазоне 8080–8090. Конкретные параметры зависят от сервера — уточняйте у поставщика.

Параметры group, caid, ident, fallback

group — это ключевой параметр для маршрутизации. Ридер с group=2 будет использоваться только теми клиентами (oscam.user), у которых тоже указан group=2. Без совпадения групп — 0 карт, даже если ридер живой.

fallback=1 помечает ридер как резервный — iCam обратится к нему только если основные ридеры не ответили. Удобно для сценария "дорогая линия в резерве".

ident ограничивает ридер конкретными provid. Например, ident=0500:032830,032000 — ридер будет декодировать только эти два провайдера CAID 0500. Остальные запросы уйдут к другим ридерам.

Настройка oscam.user — клиенты подключающиеся к вам

Если вы раздаёте сигнал другим — каждый клиент получает запись в oscam.user. Без этого файла подключения от клиентов будут отклонены.

Создание учётной записи клиента

[account]
user                   = client1
pwd                    = client1pass
group                  = 1,2
cccmaxhops             = 1
cccreshare             = 0
au                     = 1
caid                   = 0500,0604,1830
monlevel               = 0
uniq                   = 1

uniq=1 — один IP = одно соединение для этого аккаунта. Защита от расшаривания логина. uniq=3 — один аккаунт в принципе, независимо от IP.

Привязка к группам ридеров через group

Когда клиент присылает ECM запрос, iCam смотрит: какие ридеры у клиента доступны? Именно те, что указаны в group аккаунта и совпадают с group ридеров. Если клиент в group=1, а ваши ридеры в group=2 — клиент ничего не получит.

Ограничения: cccmaxhops, cccreshare, au, caid

Разница между cccmaxhops и cccreshare путает почти всех, кто начинает с icam settings.

cccmaxhops определяет, карты с какой "глубиной" клиент может видеть. Если у вас ридер подключён к серверу, у которого карты на hop 1, и вы ставите клиенту cccmaxhops=1 — он видит эти карты. Если cccmaxhops=0 — только физические карты прямо в вашем ресивере.

cccreshare — разрешает ли клиент дальше пересылать полученные карты своим клиентам. cccreshare=0 означает: нельзя. Это стандартная настройка — вы не хотите, чтобы клиент строил свой сервер на вашей линии.

au=1 — разрешает EMM обновление карты через этого клиента. Нужно редко, только если клиент сам является ридером с физической картой.

Защита: monlevel, failban, suppresscmd08

[account]
user                   = client1
pwd                    = client1pass
group                  = 1
monlevel               = 0
suppresscmd08          = 1

suppresscmd08=1 отключает команду 0x08 от клиента — это уменьшает болтовню протокола и немного снижает нагрузку. Failban настраивается в oscam.conf: failbancount=3, failbantime=600 — три неудачных логина и IP банится на 10 минут.

Настройка oscam.dvbapi для Enigma2

Без правильного oscam.dvbapi iCam не будет знать, каким ридером декодировать конкретный канал. Это критично для Enigma2 ресиверов — именно здесь настраивается маппинг "канал → CAID → приоритет".

Синтаксис строк маппинга

P: 0500:032830 0000
P: 0604:000000 0000
I: 1702:000000 0000
D: 0500:032830 7007 0:0:1500

P: — приоритет (Priority). iCam попробует этот CAID:provid первым для указанного SID (0000 = все каналы). I: — игнорировать (Ignore). Этот CAID вообще не трогать. D: — задержка в миллисекундах перед отправкой ECM.

Приоритет CAID и провайдеров

Порядок строк P: имеет значение. iCam читает сверху вниз и использует первый совпавший CAID. Если у канала есть и 0500 (Viaccess), и 0604 (Irdeto) — какой попробовать первым? Тот, что выше в файле.

Пример для типичной европейской конфигурации:

P: 0500:032830 0000
P: 0500:032000 0000
P: 0604:000000 0000
P: 1830:000000 0000
P: 0B00:000000 0000

Игнорирование каналов (I:)

Если определённый CAID вызывает проблемы (например, FTA каналы которые iCam пытается декодировать и тратит ECM запросы впустую):

I: 1702:000000 0000
I: 0:0 1234

Вторая строка игнорирует конкретный SID 1234 полностью — iCam не будет пытаться его декодировать вообще.

Делэи и chid

Если картинка глитчит первые 1–2 секунды при переключении канала — добавьте delay:

D: 0500:032830 0000 0:0:800

800 мс задержка даёт ресиверу время стабилизировать поток до первого ECM запроса. Цифру подбирайте опытным путём: 500, 800, 1200. Больше 2000 — уже будет заметная пауза при переключении.

Проброс портов и сетевые настройки

iCam может быть настроен идеально, но без правильных сетевых настроек клиенты до него не доберутся.

Какие порты открывать на роутере

  • CCcam: стандартно 12000 (настраивается в [cccam] секции oscam.conf)
  • Newcamd: обычно 15000–15010
  • WebIf: 8888 (или то, что вы указали в httpport)
  • Monitor: 988

На роутере пробрасывайте только те порты, которые реально нужны внешним клиентам. WebIf наружу — только если вы используете удалённый мониторинг и понимаете риски.

DDNS для динамического IP

Если провайдер даёт динамический IP — нужен DDNS. DynDNS, No-IP, Duck DNS — любой подойдёт. Главное, чтобы ваш роутер или ресивер обновлял запись автоматически. Клиенты указывают ваш DDNS-хост вместо IP.

Если провайдер использует CGNAT (ваш "внешний" IP начинается с 100.64.x.x или 10.x.x.x) — прямой проброс портов не работает. Нужен VPN с выделенным IP или reverse-tunnel через VPS. WireGuard + проброс через VPS — рабочий и недорогой вариант.

Firewall iptables — пример правил

# Разрешить CCcam
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT

# Разрешить WebIf только с локальной сети
iptables -A INPUT -p tcp --dport 8888 -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j DROP

# Разрешить Newcamd
iptables -A INPUT -p tcp --dport 15000 -j ACCEPT

На Ubuntu/Debian с ufw:

ufw allow 12000/tcp
ufw allow from 192.168.0.0/24 to any port 8888
ufw allow 15000/tcp

Тестирование подключения telnet/nc

Быстрая проверка — попробовать подключиться к порту:

telnet yourserver.com 12000
# или
nc -zv yourserver.com 12000

Если соединение устанавливается (появляется мусор или пауза вместо "Connection refused") — порт открыт и iCam слушает. Если отказ сразу — либо iCam не запущен, либо firewall блокирует.

Решение типовых проблем iCam

Большинство проблем с icam settings решаются через логи. Первое что надо сделать — убедиться что логирование вообще работает.

Каналы не открываются — диагностика по логам

Включите детальный лог временно:

[global]
logfile = /var/log/oscam.log
debug   = 4

Потом:

tail -f /var/log/oscam.log

Переключитесь на канал и смотрите что пишется. Ищите строки с ECM, FOUND, NOT FOUND, TIMEOUT. Если видите ECM TIMEOUT — ридер не успевает ответить. Если NO MATCHING READER — проблема с group или caid фильтрами.

После диагностики обязательно верните debug=0. При debug=65535 лог на загруженном сервере растёт по 50–100 MB в час.

ECM timeout — что проверять

Стандартный ctimeout в iCam — 3500 мс. На медленных или нестабильных линиях этого мало. Попробуйте:

[global]
ctimeout = 5000

Если после увеличения timeout каналы открываются — проблема в задержке линии. Ищите более быстрый сервер или проверяйте ваше интернет-соединение.

CCcam клиент подключается но 0 карт

Самые частые причины:

  1. Несовпадение group: ридер в group=2, клиент ищет в group=1
  2. cccreshare=0 у аккаунта на сервере — он не передаёт карты дальше
  3. Ридер подключён, но карта не инициализирована — смотрите статус в WebIf
  4. caid фильтр в oscam.user не включает нужный CAID

В WebIf (http://yourserver:8888) раздел "Readers" показывает каждый ридер и количество карт. Если ридер CONNECTED но карт 0 — проблема на стороне сервера, не у вас.

FreeCAM не работает

FreeCAM требует специфичную версию бинарника iCam — не каждая сборка включает поддержку. Проверьте:

icam --version

Должна быть строка с FreeCAM в списке поддерживаемых протоколов. Если её нет — у вас стандартная OScam сборка, а не iCam с патчем FreeCAM. Нужен правильный бинарник под вашу платформу.

Высокая нагрузка CPU

На Enigma2 с ARM 400–600 MHz высокий CPU от iCam — почти всегда одно из трёх:

  • Anticasc слишком частый sampletime — увеличьте до 5–10
  • Fallback ридер зациклен: основной ридер отваливается, fallback отвечает, основной переподключается, снова зависает — цикл каждые 30 секунд
  • Debug лог включён и пишется на медленную Flash-память

На старых ресиверах (400 MHz) anticasc лучше отключить полностью. Также переведите лог на RAM-диск: logfile=/tmp/oscam.log — это радикально снижает I/O нагрузку.

Безопасность и оптимизация iCam-сервера

Многие настраивают icam settings и забывают про безопасность. Это ошибка. Открытый WebIf с дефолтными паролями — реальный риск.

Сильные пароли и отключение дефолтных

Никогда не оставляйте стандартные учётные данные. Замените сразу после первого запуска:

[webif]
httpuser = adminname_not_admin
httppwd  = R4nd0m!P@ssw0rd#92

То же для клиентских аккаунтов в oscam.user — пароли типа "1234" или "test" сканируются автоматизированными ботами в первые часы после открытия порта.

Ограничение WebIf по IP

Лучшая защита WebIf — вообще не выставлять его наружу. Если доступ нужен удалённо — используйте SSH-туннель:

ssh -L 8888:localhost:8888 [email protected]

После этого WebIf доступен на вашем localhost:8888 через зашифрованный туннель. Порт 8888 на сервере можно оставить только для 127.0.0.1.

Логирование подозрительных подключений

iCam пишет в лог каждый логин — успешный и неуспешный. Настройте ротацию и храните логи минимум 30 дней:

[global]
logfile    = /var/log/oscam.log
maxlogsize = 50000

Если видите в логах много WRONG PASSWORD с одного IP — это брутфорс. Добавьте IP в iptables blacklist. failbancount=3 и failbantime=600 в oscam.conf автоматизируют это.

Регулярное обновление бинарника

iCam обновляется нечасто, но каждое обновление — это либо фикс безопасности, либо улучшение совместимости с новыми ридерами. Перед обновлением:

# Бэкап конфигов
tar czf /root/icam_config_backup_$(date +%Y%m%d).tar.gz /etc/tuxbox/config/oscam*

# Остановить сервис
/etc/init.d/icam stop

# Заменить бинарник
cp icam_new /usr/bin/icam
chmod 755 /usr/bin/icam

# Запустить
/etc/init.d/icam start

Конфиги между минорными версиями совместимы. При мажорном обновлении — читайте CHANGELOG на предмет изменений в синтаксисе.

Чем iCam отличается от обычного OScam?

iCam — форк OScam с поддержкой проприетарного FreeCAM протокола, изменённой обработкой ECM и оптимизациями под конкретные чипсеты (Broadcom, Amlogic). Файлы конфигурации полностью совместимы с OScam — можно перенести существующие конфиги без изменений. Единственное что не перенесётся — FreeCAM-специфичные параметры, которых в чистом OScam нет.

Где находится конфиг iCam на Enigma2 ресивере?

Стандартный путь — /etc/tuxbox/config/. На некоторых образах (OpenPLi новые версии, VTI) конфиги переехали в /etc/tuxbox/config/oscam/ или /var/tuxbox/config/. Точный путь: выполните find /etc /var -name "oscam.conf" 2>/dev/null — покажет где реально лежит.

Какой порт указывать клиенту для подключения к iCam-серверу?

Порт из секции [cccam] в oscam.conf, параметр port. По умолчанию 12000. Этот порт должен быть открыт в iptables/ufw и проброшен на роутере (NAT → ваш ресивер). Проверка: telnet yourip 12000 — если соединяется, всё ок.

Почему iCam показывает 0 карт у клиента?

Четыре основные причины: (1) несовпадение group в oscam.user и oscam.server, (2) cccreshare=0 у аккаунта запрещает передачу карт, (3) ридер в статусе CONNECTED но сам не видит карт на сервере, (4) caid фильтр в аккаунте не включает нужный CAID. Смотрите WebIf → Readers → статус каждого ридера.

Как включить детальный лог iCam для диагностики?

В oscam.conf в секции [global]: logfile=/var/log/oscam.log и debug=4. Для максимума — debug=65535. После диагностики обязательно вернуть debug=0 — при полном debug лог растёт по несколько гигабайт в сутки и может забить раздел.

Можно ли запускать iCam одновременно с другим softcam?

Технически запустить можно, но они будут конфликтовать за dvbapi сокет — только один softcam может работать с DVB стеком одновременно. На Enigma2 отключите другие softcam через Softcam Manager или уберите их из /etc/init.d/ автозапуска. Два активных softcam = ни один не работает нормально.

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

Сначала бэкап: tar czf /root/icam_cfg_$(date +%Y%m%d).tar.gz /etc/tuxbox/config/oscam*. Потом: остановить сервис (/etc/init.d/icam stop), заменить бинарник, запустить. Конфиги совместимы между минорными версиями. При мажорном апдейте — читайте CHANGELOG, иногда меняется синтаксис отдельных параметров.

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.