Guía de Configuración de Servidor CCcam + Cliente OScam
\n\nObtener unconfiguración de cliente oscam servidor cccam funcional requiere más que simplemente agregar un bloque [reader] en un archivo y esperar lo mejor. Hay detalles de protocolo, enrutamiento de grupos, cadenas de versión y configuración de oyentes descendentes que deben alinearse — y la mayoría de las guías omiten la mitad de esto. Esta no lo hace. A continuación, se presenta todo lo que necesitas, desde la explicación del apretón de manos TCP inicial hasta ejecutar OScam como un servicio systemd endurecido.
\n\nCómo Funciona la Comunicación de CCcam a OScam
\n\nAntes de tocar cualquier archivo de configuración, necesitas un modelo mental claro de lo que realmente está sucediendo en la red. CCcam y OScam son dos piezas de software separadas que hablan un protocolo compartido. OScam se está conectandoa el servidor CCcam — no al revés.
\n\nDescripción General del Apretón de Manos del Protocolo CCcam
\n\nCuando OScam abre una conexión a un servidor CCcam, lo primero que sucede es un apretón de manos de desafío/respuesta basado en SHA1. El servidor envía una semilla aleatoria de 16 bytes, el cliente la utiliza junto con el nombre de usuario y la contraseña para calcular un hash, y ese hash es lo que autentica la sesión. No hay contraseñas en texto plano en la red.
\n\nDespués de la autenticación, el servidor envía una lista de compartición — todos los CAIDs y IDs de proveedor a los que tiene acceso. OScam almacena esto internamente y lo utiliza para decidir a qué lector enrutar las solicitudes ECM. La conexión se mantiene abierta de manera persistente; las solicitudes ECM fluyen, las respuestas ECW descifradas fluyen de regreso.
\n\nLo que Realmente Hace el Tipo de Lector 'cccam' de OScam
\n\nEl módulo de lector de OScam conprotocol = cccam es una implementación pura de cliente. Habla el protocolo CCcam hacia un servidor. OScam NO expone un puerto de servidor CCcam cuando se configura de esta manera — no hay un oyente CCcam entrante involucrado. Eso es algo completamente separado ([cccam] sección en oscam.conf, que no estás utilizando aquí).
El lector maneja la gestión de conexiones, la reconexión en caso de caída, el análisis de la lista de compartición y el reenvío de ECM. Piénsalo como un controlador para una tarjeta remota que vive en el servidor de otra persona.
\n\nPuerto 12000 y Puertos CCcam No Estándar Explicados
\n\nEl puerto de servidor CCcam por defecto es12000/TCP. Ese es el puerto compilado en el binario original de CCcam y en el que la mayoría de los servidores funcionan. Pero los puertos no estándar (13000, 16000, 10000, etc.) son comunes: los operadores los cambian para evitar escáneres de puertos automatizados o para ejecutar múltiples instancias.
\n\nCualquier puerto que te dé tu operador de servidor, eso es lo que va en lalínea de dispositivo. Nunca asumas 12000. Siempre confirma. Conectarse al puerto equivocado te da un "conexión rechazada" limpio de inmediato, lo cual es en realidad más fácil de depurar que un fallo de autenticación.
Por qué OScam Necesita una Entrada de Lector Dedicada por Servidor CCcam
\n\nCada[lector] bloque enoscam.server representa una conexión TCP persistente a un servidor CCcam. Si tienes dos servidores CCcam, necesitas dos bloques de lector con etiquetas únicas. El balanceador de carga de OScam los trata como fuentes separadas y puede enrutar las solicitudes de ECM a la que responda más rápido.
Intentar meter dos direcciones de servidor en un bloque de lector no funciona. Un lector, una conexión, un servidor. Ese es el modelo.
\n\nConfiguración de OScam oscam.server para un Lector CCcam
\n\nElarchivo oscam.server se encuentra en/etc/oscam/oscam.server en la mayoría de las instalaciones de Linux. En imágenes de Enigma2 a menudo está en/etc/tuxbox/config/oscam.server o/usr/keys/oscam.server. La sintaxis es idéntica sin importar la ubicación.
Directivas Mínimas Requeridas para un Lector CCcam Funcional
\n\nComo mínimo absoluto necesitas:etiqueta,protocolo,dispositivo,usuario,contraseña, ygrupo. Todo lo demás es opcional pero se recomienda encarecidamente para la estabilidad. Un bloque mínimo funcionará, pero tendrás problemas con los tiempos de espera inactivos y canales faltantes sin las directivas adicionales.
Bloque Completo Anotado de oscam.server con Cada Clave Relevante
\n\n[lector]\netiqueta = mycccam_reader\nprotocolo = cccam\ndispositivo = SERVER_IP,12000\nusuario = YOUR_USER\ncontraseña = YOUR_PASS\ncccversion = 2.3.0\nccckeepalive = 1\ninactivitytimeout = 30\nreconnecttimeout = 30\ngrupo = 1\ncccmaxhops = 2\ncccwantemu = 0\ncccos = 0\nccchops = 0\n\n\nReemplazaSERVER_IP,YOUR_USER, yYOUR_PASS con lo que proporcionó su operador de servidor. Cada otro valor anterior es un valor predeterminado razonable de producción. Aquí está lo que hace cada línea:
- \n
- etiqueta — Nombre único para este lector. Aparece en webif y en los registros. Hágalo significativo, especialmente si tiene múltiples lectores. \n
- protocolo — Indica a OScam qué controlador de conexión utilizar.
cccampara servidores CCcam estándar. \n - dispositivo — IP/nombre de host y puerto, separados por comas. Sin espacios alrededor de la coma. \n
- usuario / contraseña — Credenciales exactamente como se proporcionaron. Sensible a mayúsculas y minúsculas. \n
- cccversion — La cadena de versión de CCcam que OScam presenta durante el apretón de manos. Los servidores pueden verificar esto. \n
- ccckeepalive — Envía pings periódicos a través de conexiones inactivas. Establezca en 1 a menos que su servidor rechace explícitamente los keepalives. \n
- inactivitytimeout — Segundos sin actividad ECM antes de que OScam considere que la conexión está obsoleta y se reconecte. 30 es razonable. \n
- reconnecttimeout — Segundos a esperar antes de intentar reconectar después de una caída. Mantenga esto en 30 o menos. \n
- grupo — Número del grupo de lectores. Debe coincidir con el grupo en tu
oscam.usero los ECMs no se enrutarán aquí. \n - cccmaxhops — Máximo de saltos de compartición a aceptar de la lista de compartición del servidor. Más sobre esto a continuación. \n
- cccwantemu — Establecer en 1 solo si deseas que el servidor comparta tarjetas emuladas. Normalmente 0. \n
- cccos / ccchops — Sobrescribir el OS reportado y el conteo de saltos en el apretón de manos. Dejar en 0 a menos que el servidor requiera valores específicos. \n
Configurando 'protocol = cccam' vs 'protocol = cccam2'
\n\ncccam2 es una variante extendida interna de OScam del protocolo CCcam. Agrega características de negociación de lista de compartición y algún intercambio adicional de metadatos. La trampa: solo funciona correctamente cuandoambos extremos son OScam. Un servidor CCcam real (que ejecuta el binario CCcam real) no entenderá las extensiones cccam2 y rechazará la conexión o se comportará de manera impredecible.
Regla general: usaprotocol = cccam para cualquier cosa que ejecute software de servidor CCcam real. Usacccam2 solo en configuraciones de OScam a OScam. Cuando tengas dudas, comienza concccam.
La Directiva 'device': Sintaxis de Nombre de Host y Puerto
\n\nIPv4 estándar o nombre de host:dispositivo = myserver.example.com,12000
Las direcciones IPv6 requieren notación entre corchetes:dispositivo = [2001:db8::1],12000. Omite los corchetes en IPv6 y OScam no podrá analizar la dirección correctamente; es un error común en configuraciones de VPS solo IPv6.
Si tu servidor está detrás de un proxy inverso o balanceador de carga, la IP que ve el servidor CCcam puede no ser tu verdadera IP de cliente. Si el servidor utiliza listas blancas de IP, la autenticación fallará incluso con credenciales correctas. Ese es un problema de configuración del lado del servidor; contacta al operador.
\n\nCampos de Nombre de Usuario, Contraseña y cccversion
\n\nLas credenciales son sensibles a mayúsculas y minúsculas y deben coincidir exactamente con lo que está configurado en el servidor. Un espacio al final en el campo de contraseña causará un fallo de autenticación silencioso; ten cuidado al copiar y pegar.
\n\nLacccversion cadena es lo que OScam le dice al servidor que es durante el apretón de manos. Valores comunes que los servidores esperan:2.3.0,2.1.4,2.2.1. Si el servidor impone una versión específica y la tuya no coincide, la conexión se corta inmediatamente después de la autenticación; no hay un mensaje de error que diga claramente "desajuste de versión". Solo verás una desconexión. Intenta2.3.0 primero; si eso falla, pregunta a tu operador de servidor qué cadena de versión esperan.
inactivitytimeout y Configuraciones de Reconexión
\n\ninactivitytimeout = 30 significa que OScam se reconectará si no hay actividad ECM durante 30 segundos. Esto es bueno; recupera conexiones obsoletas sin esperar a que el sistema operativo detecte un socket muerto. En redes con mucha pérdida, podrías reducir esto a 20.
reconnecttimeout = 30 es el retraso entre una desconexión y el siguiente intento de reconexión. Mantenerlo en 30 significa aproximadamente 30 segundos de posible pantalla negra después de una caída del servidor. Para configuraciones críticas con múltiples servidores, tener un valor más bajo (15-20) más múltiples entradas de lector es mejor que golpear un servidor con reconexiones rápidas.
Asignación de Grupo y Por Qué Es Importante para el Enrutamiento
\n\nElgrupo valor es el mecanismo interno de enrutamiento de OScam. Una solicitud ECM de un cliente descendente (tu STB) se reenvía a lectores que comparten el mismo número de grupo que el usuario que realiza la solicitud. Si tu lector está en el grupo 1 pero la entrada de usuario de tu STB especifica el grupo 2, el ECM nunca llega a este lector. Punto. Esta es la configuración incorrecta más común en todo el proceso de configuración del cliente cccam del servidor oscam y casi ninguna otra guía lo explica claramente.
Configuraciones de oscam.conf y oscam.user Que Afectan a los Clientes CCcam
\n\nSección Global [global]: logfile, nice, maxlogsize
\n\nElarchivo oscam.conf en/etc/oscam/oscam.conf controla el comportamiento global. Un bloque mínimo de trabajo[global]:
[global]\nlogfile = /var/log/oscam/oscam.log\nmaxlogsize = 512\nnice = -1\nWaitForCards = 1\nlb_mode = 1\nlb_save = 1\n\n\nmaxlogsize está en KB — 512 KB mantiene los registros manejables sin perder un historial útil.WaitForCards = 1 le dice a OScam que mantenga las solicitudes ECM hasta que al menos un lector esté listo, en lugar de devolver inmediatamente "no encontrado".nice = -1 le da a OScam una prioridad de programación de CPU ligeramente elevada, lo cual es importante en dispositivos embebidos bajo carga.
Habilitando la Interfaz Web para Monitoreo del Estado del Lector en Vivo
\n\nAgrega esto aoscam.conf para habilitar el monitor HTTP en el puerto 8888:
[webif]\nhttpport = 8888\nhttpuser = admin\nhttppwd = tucontraseña\nhttprefresh = 10\nhttpallowed = 127.0.0.1,192.168.0.0-192.168.255.255\n\n\nRestringehttpallowed a tu red local. Nunca expongas el puerto 8888 a Internet sin autenticación y, aun así, es arriesgado. La interfaz web es donde verás el estado del lector en tiempo real: si la conexión CCcam está activa, conteos de saltos, último tiempo ECM y latencia de respuesta. Usarás esto constantemente al depurar.
oscam.user: Creando un Usuario Local para Enrutar ECWs Desencriptados a Tu STB
\n\nUbicación del archivo:/etc/oscam/oscam.user. Necesitas al menos una entrada de usuario para el dispositivo que se conecta a OScam (tu STB, Dreambox, caja VU+, etc.):
[account]\nuser = stbuser\npwd = stbpassword\ngroup = 1\nau = 1\n\n\nElgroup = 1 aquí debe coincidir con elgroup = 1 en tu bloque de lector. Esa es la conexión. OScam ve la solicitud ECM de stbuser (grupo 1), busca lectores en el grupo 1, encuentra tu lector CCcam, envía el ECM allí, recibe el ECW y lo devuelve al STB. Rompe la coincidencia de grupo y nada funciona, incluso si la conexión CCcam está perfectamente saludable.
Vinculando Usuarios a Grupos de Lectores con la Directiva 'group'
\n\nLos grupos son solo enteros. Puedes usar cualquier número del 1 al 64. Puedes asignar múltiples grupos tanto a lectores como a usuarios usando separación por comas:grupo = 1,2,3. Esto es útil cuando tienes múltiples lectores CCcam en diferentes grupos y deseas que un usuario tenga acceso a todos ellos. El balanceador de carga de OScam seleccionará el mejor lector entre todos los grupos asignados.
Configurando 'au' (Actualización Automática) Correctamente para Lectores de Compartición de Tarjetas
\n\nau = 1 en la cuenta de usuario habilita el mensaje de gestión de derechos (EMM) de actualización automática para ese usuario. Para una configuración de compartición de tarjetas donde solo estás recibiendo respuestas ECM,au = 1 en el propio lector generalmente es innecesario y puede generar ruido. Configúralo en la cuenta de usuario descendente si necesitas que las renovaciones de suscripción se transmitan; déjalo desactivado en el lector a menos que tu servidor lo soporte y lo requiera.
Conectando tu STB o Softcam a OScam Después de la Autenticación CCcam
\n\nAquí es donde la mayoría de las guías de configuración del cliente OScam para servidores cccam se desmoronan por completo. Logran conectar OScam al servidor CCcam y se detienen. Pero esa conexión solo resuelve la mitad del problema: has llevado los ECM cifrados al lugar correcto, pero aún necesitas devolver los ECW descifrados a tu caja de TV.
\n\nUsando OScam como un Escuchador newcamd para Cajas Dreambox/VU+
\n\nNewcamd es el protocolo más ampliamente soportado en STBs Enigma2. Agrega una[newcamd] sección aoscam.conf:
[newcamd]\nclave = 0102030405060708091011121314\npuerto = 15050@1702:000000\n\n\nLaclave es la clave DES de newcamd — debe coincidir con lo que configuras en el cliente newcamd del STB. El valor anterior es un valor predeterminado común; puedes usar cualquier cadena hexagonal de 14 bytes. Elpuerto formato de línea espuerto@CAID:IDProveedor. Utilice000000 como ID de proveedor para aceptar todos los proveedores para ese CAID, o especifique un ID de proveedor real (por ejemplo,000000 para comodín,000001 para un proveedor específico). Para múltiples CAIDs, agregue múltiples entradas de puerto separadas por punto y coma:puerto = 15050@1702:000000;15051@0D00:000000.
Configurando oscam.conf [nuevo servidor] Bloque de oyente
\n\nEn su Dreambox o caja VU+, agregue una entrada de servidor nuevocamd apuntando a la IP de la máquina que ejecuta OScam, puerto 15050, con la misma clave DES. El STB envía solicitudes ECM al oyente newcamd de OScam, OScam las enruta a través del lector CCcam al servidor, obtiene el ECW de vuelta y lo devuelve al STB. Esa es la cadena completa.
\n\nUsando el oyente camd35/cs357x de OScam para otros clientes
\n\nAlgunos clientes prefieren camd35 (también llamado cs357x). Agregue aoscam.conf:
[cs357x]\npuerto = 15000\n\n\nLas credenciales de usuario para camd35 provienen deoscam.user al igual que newcamd. El protocolo es más simple que newcamd pero menos común en los STB modernos. Use newcamd a menos que su cliente necesite específicamente camd35.
Entrada de oscam.user para el STB: Campos requeridos
\n\n[cuenta]\nusuario = stbuser\ncontraseña = stbpassword\ngrupo = 1\nau = 1\nuniq = 0\n\n\nuniq = 0 permite que las mismas credenciales se conecten desde múltiples clientes simultáneamente. Establecer en1 si deseas hacer cumplir una conexión única por usuario. Para un hogar con un STB, cualquiera de las dos opciones funciona. Para configuraciones compartidas, configúralo en 0 para evitar el auto-bloqueo durante las reconexiones.
Verificando que la Compartición de Tarjeta está Pasando ECMs a través de las Estadísticas del Lector Webif
\n\nAbrehttp://OSCAM_IP:8888 en un navegador. Haz clic en el nombre de tu lector. Verás: estado de conexión, último tiempo de ECM, conteo de ECM, tiempo de respuesta en milisegundos y conteo de saltos. Si el lector muestra "conectado" pero el conteo de ECM se mantiene en cero después de intentar sintonizar un canal, el problema está aguas abajo — verifica la conexión del STB a OScam, o verifica las asignaciones de grupo.
Si el conteo de ECM incrementa pero aún ves una pantalla negra, el servidor CCcam puede no tener la tarjeta para ese CAID. Verifica la lista de compartición en la vista de detalles del lector para confirmar que el CAID que necesitas está realmente listado.
\n\nResolviendo Problemas de Conexión del Lector CCcam en OScam
\n\nLector Atascado en 'CACHEEX' o 'CARDOK' Nunca Aparece — Causas
\n\n"CACHEEX" en el estado del lector generalmente significa que OScam está en modo de intercambio de caché, no en modo de lector CCcam directo. Verifica que no hayas configurado accidentalmentecacheex = 1 en el lector. Un lector CCcam limpio debería mostrarse como "CONECTADO" o "CARDOK" una vez que la autenticación se complete y el servidor envíe una lista de compartición con tarjetas reales.
Si el estado nunca alcanza CARDOK, es probable que el servidor no tenga tarjetas activas en su lista de compartición, occcmaxhops está filtrando todo.
AUTENTICACIÓN FALLIDA: Cadena de cccversion Incorrecta
\n\nEn el registro de OScam (/var/log/oscam/oscam.log), una autenticación fallida se ve así:
2024/01/15 14:23:01 9876 r mycccam_reader cccam: inicio de sesión fallido para el usuario YOUR_USER\n2024/01/15 14:23:01 9876 r mycccam_reader cccam: conexión cerrada\n\nVes una conexión seguida inmediatamente de una desconexión. Antes de culpar a las credenciales, intenta cambiarcccversion. Cambia de2.3.0 a2.1.4 o viceversa. Algunos servidores están compilados para rechazar cadenas de versión que no reconocen. Este es un modo de fallo silencioso: no hay un error explícito de "versión incorrecta" en el registro, solo una desconexión.
Para obtener una salida de lector detallada temporalmente, añadeloglevel = 512 a[global] en oscam.conf, reinicia OScam, verifica los registros y luego elimínalo. El volumen de registro en el nivel 512 es significativo: no lo dejes activado permanentemente.
Conexión rechazada vs Tiempo de espera de conexión — Lo que cada uno significa
\n\nConexión rechazada: El paquete TCP llegó al servidor, pero nada está escuchando en ese puerto. O el número de puerto es incorrecto, el servidor CCcam no está en funcionamiento, o un proceso local está bloqueando el puerto (en Enigma2, un plugin de CCcam que se ejecuta junto a OScam puede haber reclamado el puerto 12000 — mátalo).
\n\nTiempo de espera de conexión: El paquete TCP SYN nunca recibió una respuesta. O un firewall está descartando paquetes, la IP es incorrecta, o el enrutamiento está roto. Prueba con:nc -zv SERVER_IP 12000. Si se queda colgado, es un problema de red/firewall. Si devuelve "rechazado" inmediatamente, el puerto está cerrado en el servidor.
Líneas de registro de OScam a buscar
\n\nUna secuencia de conexión exitosa en el registro se ve así:
\nr mycccam_reader cccam: resolvió SERVER_IP a x.x.x.x\nr mycccam_reader cccam: conectado a x.x.x.x:12000\nr mycccam_reader cccam: inicio de sesión exitoso para el usuario YOUR_USER\nr mycccam_reader cccam: lista de compartición recibida (47 tarjetas)\n\nSi ves "lista de compartición recibida (0 tarjetas)" — el servidor está activo y tus credenciales funcionan, pero no hay tarjetas activas en esa cuenta. Contacta al operador del servidor.
\n\nFirewall y NAT: Asegurando que el Puerto 12000 sea Alcanzable
\n\nOScam se conectasaliente al puerto 12000. La mayoría de las configuraciones de NAT en casa permiten conexiones salientes sin ninguna configuración especial. Los problemas surgen cuando un firewall en la máquina cliente bloquea conexiones salientes (poco común pero posible con reglas estrictas de iptables), o cuando el firewall del servidor tiene una lista blanca de IP y tu IP pública no está en la lista.
\n\nTambién verifica: si estás en un entorno NAT compartido donde múltiples clientes OScam comparten la misma IP pública, el servidor CCcam puede tener un límite de conexión por IP y rechazar conexiones más allá de ese límite. Cada cliente necesita su propio par único de nombre de usuario/contraseña — las mismas credenciales desde la misma IP a veces funcionan, las mismas credenciales desde la misma IP simultáneamente casi siempre fallan.
\n\ncccmaxhops Configurado Demasiado Bajo — Explicación de Canales Faltantes
\n\nLas tarjetas CCcam tienen un "conteo de saltos" — cuántos relés ha pasado la tarjeta para llegar a tu servidor. Una tarjeta directamente en el hardware del servidor es salto 0. Una tarjeta compartida desde otro servidor CCcam al tuyo es salto 1. Compartida nuevamente, salto 2. Y así sucesivamente.
\n\ncccmaxhops = 1 significa que OScam solo usará tarjetas con un conteo de saltos de 0 o 1. Las tarjetas en salto 2+ están en la lista de compartición pero OScam las ignora. Si el canal que necesitas proviene de una tarjeta en salto 2, estarás conectado, el lector mostrará como saludable, pero ese canal específico no se desencriptará. Configuracccmaxhops = 2 o más alto si estás obteniendo canales faltantes selectivos. Ten en cuenta que valores muy altos (8+) pueden hacer que OScam reciba listas de compartición enormes en servidores ocupados, lo que consume memoria — una preocupación real en hardware Dreambox con 256MB de RAM.
Entradas de Lector Duplicadas Causando Reconexiones en Bucle
\n\nDos entradas de lector con la misma etiqueta enoscam.server causan un comportamiento confuso — OScam puede cargar ambas, creando intentos de conexión duplicados al mismo servidor. El registro mostrará ciclos rápidos de conexión/desconexión. Usa etiquetas únicas para cada lector. Verifica duplicados accidentales si ves un lector rebotando en el webif.
Fortalecimiento y Ajuste de Rendimiento para el Lector CCcam de OScam
\n\nConfigurando reconnecttimeout para evitar retrasos de Zap
\n\nCon solo un lector CCcam, una caída del servidor significa una pantalla negra hasta que OScam se reconecte.reconnecttimeout = 30 es el valor predeterminado, lo que significa hasta 30 segundos de negro. Reducir a 15 disminuye esa ventana pero aumenta la frecuencia de reconexión en conexiones inestables. Para producción, ejecutar dos entradas de lector apuntando a diferentes servidores conlb_mode = 1 es una mejor respuesta que ajustar solo el tiempo de reconexión.
ccckeepalive y su efecto en conexiones inactivas
\n\nccckeepalive = 1 envía un mensaje periódico estilo ping a través de la conexión TCP de CCcam durante períodos inactivos. Sin él, los mapeos NAT en los enrutadores típicamente expiran después de 60–300 segundos de inactividad, matando silenciosamente la sesión TCP. OScam no sabrá que la conexión está muerta hasta que falle la próxima solicitud de ECM. Con keepalive habilitado, el mapeo NAT se mantiene activo y OScam detecta las caídas más rápido. Mantén esto activado.
Usando lb_mode (Balanceo de Carga) al conectarse a múltiples servidores CCcam
\n\nConfigurar enoscam.conf [global]:
- \n
- lb_mode = 0: Sin balanceo de carga. OScam utiliza el primer lector disponible en la lista. Simple, pero no ofrece beneficios de rendimiento. \n
- lb_mode = 1: El lector más rápido gana. OScam rastrea los tiempos de respuesta de ECM por lector y dirige solicitudes futuras al lector con el mejor tiempo de respuesta promedio. Esto es lo que deseas para una configuración de múltiples servidores. \n
- lb_mode = 5: Aleatorio ponderado. Tiene en cuenta el tiempo de respuesta pero añade aleatorización para distribuir la carga. Útil cuando tienes muchos servidores de calidad similar y no quieres que uno reciba todo el tráfico. \n
Para la mayoría de las configuraciones con 2–4 lectores CCcam,lb_mode = 1 conlb_save = 1 (guarda las estadísticas aprendidas en el disco para que OScam no comience en ciego después de un reinicio) es la opción correcta.
Configuración de Logrotate para los registros de OScam para prevenir el llenado del disco
\n\nCrea/etc/logrotate.d/oscam:
/var/log/oscam/oscam.log {\n diario\n rotar 7\n comprimir\n missingok\n notifempty\n copytruncate\n}\n\ncopytruncate es importante aquí — OScam mantiene el manejador del archivo de registro abierto, por lo que la rotación estándar y la señal no funcionarán sin enviar a OScam un SIGHUP. Copytruncate copia el archivo y luego trunca el original en su lugar, lo que funciona sin tocar el proceso de OScam. En dispositivos Enigma2 embebidos con almacenamiento flash pequeño, rota de manera más agresiva:rotar 3 y consideramaxsize 1M.
Ejecutando OScam como un servicio systemd no root
\n\nCrea usuario y directorio:
\nuseradd -r -s /sbin/nologin oscam\nmkdir -p /var/log/oscam\nchown oscam:oscam /var/log/oscam\nchown -R oscam:oscam /etc/oscam\n\n\nCrea/etc/systemd/system/oscam.service:
[Unidad]\nDescripción=OScam Softcam\nDespués=network-online.target\nDesea=network-online.target\n\n[Servicio]\nTipo=simple\nUsuario=oscam\nGrupo=oscam\nEjecutarInicio=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam\nArchivoPID=/var/run/oscam.pid\nReiniciar=on-failure\nReiniciarSeg=10\nSalidaEstándar=null\n\n[Instalar]\nDeseadoPor=multi-user.target\n\n\nHabilitar e iniciar:
\nsystemctl daemon-reload\nsystemctl enable oscam\nsystemctl start oscam\n\n\nEjecutar como no-root significa que un proceso OScam comprometido no puede dañar el sistema. ElReiniciar=on-failuredirectiva maneja automáticamente los fallos inesperados. Esta es una práctica estándar y toma aproximadamente 5 minutos configurarla — omítela y estarás ejecutando un servicio expuesto a la red como root indefinidamente.
Una verificación final antes de asumir que la configuración del cliente oscam de tu servidor cccam está completa: ejecutaoscam --version y observa la lista de módulos en la salida. Algunas compilaciones mínimas o reducidas compiladas para objetivos embebidos específicos excluyen completamente el módulo lector de CCcam. Si no ves "cccam" en la lista de módulos compilados, ningún cambio de configuración lo hará funcionar — necesitas una compilación OScam con todas las funciones.
Preguntas Frecuentes
\n\n¿Cuál es el puerto predeterminado para un servidor CCcam al que se conecta OScam?
\nEl puerto predeterminado del servidor CCcam es12000/TCP. Muchos operadores utilizan puertos no estándar — siempre confirma con quien te dio las credenciales del servidor. El puerto se establece en la línea dedispositivo deoscam.server comohostname,portsin espacios. Nunca asumas 12000 si no se te ha dicho explícitamente el puerto.
¿Cuál es la diferencia entre 'protocol = cccam' y 'protocol = cccam2' en OScam?
\ncccam2 es una variante de protocolo extendido interno de OScam con características adicionales de negociación de compartición. Solo funciona correctamente cuando tanto el cliente como el servidor están ejecutando OScam. Un binario de servidor CCcam real no entenderá las extensiones cccam2 — rechazará la conexión o se comportará de manera impredecible. Usaprotocol = cccam para cualquier cosa que ejecute software de servidor CCcam real, y reservacccam2 estrictamente para configuraciones de OScam a OScam.
¿Por qué mi lector OScam muestra 'conectado' pero los canales aún no se descifran?
\n"Conectado" solo significa que el enlace TCP está activo — no garantiza la disponibilidad de la tarjeta. Revisa esta lista de verificación: (1) ¿Escccmaxhops lo suficientemente alto para alcanzar las tarjetas que necesitas? (2) ¿Está el CAID y el ID de proveedor que necesitas realmente en la lista de compartición del servidor? (3) ¿El grupo de tu STB enoscam.user coincide con el grupo del lector? (4) Verifica los conteos de solicitudes ECM en el detalle del lector en la interfaz web — si están en cero, la solicitud ni siquiera está llegando a OScam desde el STB.
¿Puede OScam conectarse a múltiples servidores CCcam simultáneamente?
\nSí. Agrega múltiples[reader] bloques enoscam.server, cada uno con una etiqueta únicaetiqueta. Asigna el mismo grupo a todos ellos si deseas un enrutamiento unificado, o diferentes grupos para niveles de acceso separados. Establecelb_mode = 1 enoscam.conf [global] para que OScam enrute automáticamente cada solicitud ECM al lector que responda más rápido. Agregalb_save = 1 para que esos tiempos aprendidos persistan entre reinicios.
¿Qué debo buscar al evaluar la fiabilidad de un servidor CCcam antes de configurarlo?
\nCosas clave a verificar: ¿Publica el operador estadísticas de tiempo de actividad o tiene una página de estado? ¿Dónde se encuentra el servidor geográficamente en relación contigo? — la ubicación del servidor afecta directamente la latencia de respuesta ECM. ¿Cuántas conexiones simultáneas permite la cuenta? ¿Proporciona el operador una línea de prueba antes de un compromiso total? ¿Hay alguna documentación técnica sobre la configuración del servidor? Evita servidores sin acceso de prueba y sin forma de verificar que la configuración funcione antes de que configures todo a su alrededor.
\n¿Cómo puedo verificar los registros de OScam para confirmar que un lector CCcam se autenticó correctamente?
\nEn/var/log/oscam/oscam.log o en la vista de registro webif, una autenticación exitosa muestra líneas con la etiqueta de tu lector seguidas de "cccam: inicio de sesión exitoso" y luego "lista de compartición recibida." Una autenticación fallida muestra "inicio de sesión fallido" o una desconexión inmediata justo después de la línea de conexión TCP. Si necesitas más detalles, agrega temporalmenteloglevel = 512 a[global] enoscam.conf y reinicia — esto produce una salida detallada por lector. Elimínalo después de depurar; el volumen de registros es grande.
¿OScam soporta el intercambio de tarjetas CCcam en plataformas Linux y embebidas (Enigma2)?
\nSí, y lasintaxis de configuración deoscam.server es idéntica en ambas. En Enigma2 (Dreambox, VU+), OScam se instala como un plugin ipk u opk. Los archivos de configuración suelen estar en/etc/tuxbox/config/ o/usr/keys/