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, иногда меняется синтаксис отдельных параметров.

Практические советы для стабильного просмотра

Даже самая стабильная линия 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 или внешние мониторы.