Loading...
Guida alla configurazione del server CCcam + client OScam

Guida alla configurazione del server CCcam + client OScam

Ottenere una configurazione funzionante del client OSCAM per un server CCCAM richiede più che semplicemente inserire un blocco [reader] in un file e sperare per il meglio. Ci sono dettagli sul protocollo, routing di gruppo, stringhe di versione e configurazione del listener downstream che devono essere tutti allineati, e la maggior parte delle guide ne salta metà. Questa no. Di seguito è riportato tutto ciò di cui avete bisogno, dalla spiegazione iniziale dell'handshake TCP all'esecuzione di OSCAM come servizio systemd rafforzato.

Come funziona la comunicazione CCcam-to-OScam

Prima di toccare qualsiasi file di configurazione, è necessario avere un modello mentale chiaro di ciò che sta effettivamente accadendo sulla rete. CCcam e OScam sono due software separati che utilizzano un protocollo condiviso. OScam si connette al server CCcam, non il contrario.

Panoramica dell'handshake del protocollo CCcam

Quando OScam apre una connessione a un server CCcam, la prima cosa che accade è un handshake challenge/response basato su SHA1. Il server invia un seed casuale di 16 byte, il client lo usa insieme al nome utente e alla password per calcolare un hash, e questo hash è ciò che autentica la sessione. Nessuna password in chiaro in transito.

Dopo l'autenticazione, il server invia un elenco di condivisione: tutti i CAID e gli ID provider a cui ha accesso. OScam memorizza internamente questo elenco e lo utilizza per decidere a quale lettore indirizzare le richieste ECM. La connessione rimane aperta in modo persistente; le richieste ECM fluiscono in entrata e le risposte ECW decriptate ritornano indietro.

Cosa fa realmente il tipo di lettore "cccam" di OScam

Il modulo di lettura di OScam con protocol = cccam è un'implementazione client pura. Comunica il protocollo CCcam in uscita a un server. OScam NON espone una porta del server CCcam quando configurato in questo modo: non è coinvolto alcun listener CCcam in ingresso. Questa è una cosa completamente diversa (sezione [cccam] in oscam.conf, che non stai utilizzando qui).

Il lettore gestisce la gestione delle connessioni, la riconnessione in caso di interruzione, l'analisi dell'elenco di condivisione e l'inoltro ECM. Immaginatelo come un driver per una scheda remota che risiede sul server di qualcun altro.

Spiegazione della porta 12000 e delle porte CCcam non standard

La porta predefinita del server CCcam è 12000/TCP . Questa è la porta compilata nel binario originale di CCcam ed è quella su cui gira la maggior parte dei server. Tuttavia, le porte non standard (13000, 16000, 10000, ecc.) sono comuni: gli operatori le modificano per evitare scanner di porte automatici o per eseguire più istanze.

Qualunque sia la porta indicata dal gestore del server, quella va inserita nella riga device . Non dare mai per scontato che sia 12000. Verifica sempre. Connettersi alla porta sbagliata genera immediatamente un messaggio di errore "connessione rifiutata", che in realtà è più facile da risolvere rispetto a un errore di autenticazione.

Perché OScam ha bisogno di una voce di lettore dedicata per ogni server CCcam

Ogni blocco [reader] in oscam.server rappresenta una connessione TCP persistente a un server CCcam. Se si dispone di due server CCcam, sono necessari due blocchi reader con etichette univoche. Il bilanciatore del carico di OScam li tratta quindi come sorgenti separate e può indirizzare le richieste ECM a quella che risponde più velocemente.

Cercare di stipare due indirizzi server in un unico blocco di lettori non funziona. Un lettore, una connessione, un server. Questo è il modello.

Configurazione di OScam oscam.server per un lettore CCcam

Il file oscam.server si trova in /etc/oscam/oscam.server nella maggior parte delle installazioni Linux. Nelle immagini Enigma2 si trova spesso in /etc/tuxbox/config/oscam.server o /usr/keys/oscam.server . La sintassi è identica indipendentemente dalla posizione.

Direttive minime richieste per un lettore CCcam funzionante

Come minimo, avrai bisogno di: label , protocol , device , user , password e group . Tutto il resto è facoltativo ma fortemente consigliato per la stabilità. Un blocco minimo si connetterà, ma senza le direttive aggiuntive si verificheranno problemi di timeout di inattività e canali mancanti.

Blocco oscam.server annotato completo con ogni chiave rilevante

 [reader] label = mycccam_reader protocol = cccam device = SERVER_IP,12000 user = YOUR_USER password = YOUR_PASS cccversion = 2.3.0 ccckeepalive = 1 inactivitytimeout = 30 reconnecttimeout = 30 group = 1 cccmaxhops = 2 cccwantemu = 0 cccos = 0 ccchops = 0 Sostituire [reader] label = mycccam_reader protocol = cccam device = SERVER_IP,12000 user = YOUR_USER password = YOUR_PASS cccversion = 2.3.0 ccckeepalive = 1 inactivitytimeout = 30 reconnecttimeout = 30 group = 1 cccmaxhops = 2 cccwantemu = 0 cccos = 0 ccchops = 0

SERVER_IP , YOUR_USER e YOUR_PASS con quanto fornito dall'operatore del server. Tutti gli altri valori sopra indicati sono valori predefiniti di produzione ragionevoli. Ecco cosa fa effettivamente ogni riga:

  • Etichetta : nome univoco per questo lettore. Viene visualizzato nel webif e nei log. Rendilo significativo, soprattutto se hai più lettori.
  • protocollo — Indica a OScam quale driver di connessione utilizzare. cccam per i server CCcam standard.
  • dispositivo — IP/nome host e porta, separati da virgole. Nessuno spazio intorno alla virgola.
  • utente / password — Credenziali esattamente come fornite. Distingue tra maiuscole e minuscole.
  • cccversion — La stringa della versione CCcam presentata da OScam durante l'handshake. I server potrebbero verificarla.
  • ccckeepalive — Invia ping periodici su connessioni inattive. Impostato su 1 a meno che il server non rifiuti esplicitamente i keepalive.
  • inactivitytimeout — Secondi di nessuna attività ECM prima che OScam consideri la connessione obsoleta e si riconnetta. 30 è un valore ragionevole.
  • reconnecttimeout — Secondi di attesa prima di tentare la riconnessione dopo una caduta. Mantieni questo valore a 30 o inferiore.
  • gruppo — Numero del gruppo di lettori. Deve corrispondere al gruppo nelle voci oscam.user , altrimenti gli ECM non verranno inoltrati qui.
  • cccmaxhops — Numero massimo di hop condivisi da accettare dall'elenco di condivisione del server. Maggiori informazioni di seguito.
  • cccwantemu — Impostare su 1 solo se si desidera che il server condivida le schede emulate. Solitamente è 0.
  • cccos / ccchops — Sovrascrive il sistema operativo e il conteggio degli hop segnalati nell'handshake. Lasciare a 0 a meno che il server non richieda valori specifici.

Impostazione 'protocollo = cccam' vs 'protocollo = cccam2'

cccam2 è una variante estesa interna a OScam del protocollo CCcam. Aggiunge funzionalità di negoziazione delle liste di condivisione e un ulteriore scambio di metadati. Il problema: funziona correttamente solo quando entrambi gli endpoint sono OScam. Un vero server CCcam (che esegue il binario CCcam effettivo) non riconoscerà le estensioni cccam2 e rifiuterà la connessione o si comporterà in modo imprevedibile.

Regola pratica: usa protocol = cccam per qualsiasi cosa che esegua un software server CCcam. Usa cccam2 solo nelle configurazioni OScam-to-OScam. In caso di dubbio, inizia con cccam .

Direttiva 'device': sintassi del nome host e della porta

IPv4 standard o nome host: device = myserver.example.com,12000

Gli indirizzi IPv6 richiedono la notazione tra parentesi quadre: device = [2001:db8::1],12000 . Se si saltano le parentesi quadre su IPv6, OScam non riuscirà ad analizzare correttamente l'indirizzo: è un errore comune nelle configurazioni VPS solo IPv6.

Se il server è protetto da un reverse proxy o da un bilanciatore di carico, l'IP visualizzato dal server CCcam potrebbe non essere il vero IP del client. Se il server utilizza la whitelist degli IP, l'autenticazione fallirà anche con credenziali corrette. Si tratta di un problema di configurazione lato server: contattare l'operatore.

Campi nome utente, password e cccversion

Le credenziali sono sensibili alle maiuscole e alle minuscole e devono corrispondere esattamente a quanto configurato sul server. Uno spazio finale nel campo password causerà un errore di autenticazione silenzioso: fare attenzione quando si copia e incolla.

La stringa cccversion è quella che OScam comunica al server durante l'handshake. I valori comuni che i server si aspettano sono: 2.3.0 , 2.1.4 , 2.2.1 . Se il server impone una versione specifica e la tua non corrisponde, la connessione si interrompe immediatamente dopo l'autenticazione, senza alcun messaggio di errore che indichi chiaramente "versione non corrispondente". Viene visualizzata solo una disconnessione. Prova prima la 2.3.0 ; se fallisce, chiedi all'operatore del server quale stringa di versione si aspetta.

inactivitytimeout e impostazioni di riconnessione

inactivitytimeout = 30 significa che OScam si riconnetterà se non si verifica alcuna attività ECM per 30 secondi. Questo è positivo: recupera le connessioni inattive senza attendere che il sistema operativo rilevi un socket non funzionante. Su reti con molta perdita di dati, è possibile abbassare questo valore a 20.

reconnecttimeout = 30 è il ritardo tra una disconnessione e il successivo tentativo di riconnessione. Mantenerlo a 30 significa circa 30 secondi di potenziale schermata nera dopo una disconnessione del server. Per configurazioni critiche con più server, impostare un valore inferiore (15-20) e più voci di lettura è preferibile rispetto a martellare un server con rapide riconnessioni.

Assegnazione di gruppo e perché è importante per il routing

Il valore group è il meccanismo di routing interno di OScam. Una richiesta ECM da un client downstream (il tuo decoder) viene inoltrata ai lettori che condividono lo stesso numero di gruppo dell'utente che effettua la richiesta. Se il tuo lettore è nel gruppo 1 ma la voce utente del tuo decoder specifica il gruppo 2, l'ECM non raggiungerà mai questo lettore. Punto. Questo è l'errore di configurazione più comune nell'intero processo di configurazione del server CCCAM e del client OSCAM e quasi nessuna altra guida lo spiega chiaramente.

Impostazioni oscam.conf e oscam.user che influenzano i client CCcam

Sezione globale [globale]: logfile, nice, maxlogsize

Il file oscam.conf in /etc/oscam/oscam.conf controlla il comportamento globale. Un blocco [global] minimo funzionante:

 [global] logfile = /var/log/oscam/oscam.log maxlogsize = 512 nice = -1 WaitForCards = 1 lb_mode = 1 lb_save = 1 maxlogsize [global] logfile = /var/log/oscam/oscam.log maxlogsize = 512 nice = -1 WaitForCards = 1 lb_mode = 1 lb_save = 1

è in KB: 512 KB mantengono i log gestibili senza perdere la cronologia utile. WaitForCards = 1 indica a OScam di trattenere le richieste ECM finché almeno un lettore non è pronto, anziché restituire immediatamente "non trovato". nice = -1 assegna a OScam una priorità di schedulazione della CPU leggermente elevata, il che è importante sui dispositivi embedded sotto carico.

Abilitazione dell'interfaccia Web per il monitoraggio dello stato del lettore in tempo reale

Aggiungere quanto segue a oscam.conf per abilitare il monitor HTTP sulla porta 8888:

 [webif] httpport = 8888 httpuser = admin httppwd = yourpassword httprefresh = 10 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255 Limitare [webif] httpport = 8888 httpuser = admin httppwd = yourpassword httprefresh = 10 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255

httpallowed alla tua rete locale. Non esporre mai la porta 8888 a Internet senza autenticazione, anche se è rischioso. Il webif è dove potrai monitorare lo stato del lettore in tempo reale: se la connessione CCcam è attiva, il numero di hop, l'ultimo orario ECM e la latenza della risposta. Lo userai costantemente durante il debug.

oscam.user: creazione di un utente locale per instradare gli ECW decodificati al tuo STB

Posizione del file: /etc/oscam/oscam.user . È necessaria almeno una voce utente per il dispositivo che si connette a OScam (il tuo decoder, Dreambox, VU+ box, ecc.):

 [account] user = stbuser pwd = stbpassword group = 1 au = 1 IL [account] user = stbuser pwd = stbpassword group = 1 au = 1

group = 1 qui deve corrispondere al group = 1 nel blocco del lettore. Questo è il collegamento. OScam vede la richiesta ECM da stbuser (gruppo 1), cerca lettori nel gruppo 1, trova il lettore CCcam, invia lì l'ECM, riceve l'ECW e lo restituisce al decoder. Interrompendo la corrispondenza del gruppo, non funzionerà nulla, anche se la connessione CCcam è perfettamente funzionante.

Collegamento degli utenti ai gruppi di lettori con la direttiva "gruppo"

I gruppi sono semplicemente numeri interi. Puoi usare qualsiasi numero da 1 a 64. Puoi assegnare più gruppi sia ai lettori che agli utenti usando la separazione con virgole: group = 1,2,3 . Questo è utile quando hai più lettori CCcam in gruppi diversi e vuoi che un utente abbia accesso a tutti. Il bilanciatore del carico di OScam sceglierà quindi il lettore migliore tra tutti i gruppi assegnati.

Impostazione corretta di "au" (aggiornamento automatico) per i lettori di condivisione delle schede

au = 1 nell'account utente abilita l'aggiornamento automatico dei messaggi di gestione dei diritti (EMM) per quell'utente. Per una configurazione di condivisione delle carte in cui si ricevono solo risposte ECM, au = 1 sul lettore stesso è solitamente superfluo e può aggiungere rumore. Impostatelo sull'account utente downstream se avete bisogno che i rinnovi degli abbonamenti vengano trasmessi; lasciatelo disattivato sul lettore a meno che il vostro server non lo supporti e lo richieda.

Collegamento del tuo STB o Softcam a OScam dopo l'autenticazione CCcam

Ecco dove la maggior parte delle guide di configurazione del client OSCAM per server CCcam falliscono completamente. Collegano OScam al server CCcam e si bloccano. Ma quella connessione risolve solo metà del problema: hai trasferito gli ECM crittografati nel posto giusto, ma devi ancora trasferire gli ECW decrittografati sul tuo TV-Box.

Utilizzo di OScam come listener newcamd per Dreambox/VU+ Box

Newcamd è il protocollo più ampiamente supportato sui decoder Enigma2. Aggiungi una sezione [newcamd] a oscam.conf :

 [newcamd] key = 0102030405060708091011121314 port = 15050@1702:000000 IL [newcamd] key = 0102030405060708091011121314 port = 15050@1702:000000

key è la chiave DES di newcamd: deve corrispondere a quella configurata nel client newcamd del decoder. Il valore sopra riportato è un valore predefinito comune; è possibile utilizzare qualsiasi stringa esadecimale di 14 byte. Il formato della riga port è port@CAID:ProviderID . Utilizzare 000000 come ID provider per accettare tutti i provider per quel CAID oppure specificare un ID provider reale (ad esempio, 000000 per il carattere jolly, 000001 per un provider specifico). Per più CAID, aggiungere più voci di porta separate da punto e virgola: port = 15050@1702:000000;15051@0D00:000000 .

Configurazione del blocco listener oscam.conf [newcamd]

Sul tuo Dreambox o VU+, aggiungi una voce server newcamd che punti all'IP del computer che esegue OScam, porta 15050, con la stessa chiave DES. Il decoder invia richieste ECM al listener newcamd di OScam, OScam le instrada tramite il lettore CCcam al server, riceve l'ECW e lo restituisce al decoder. Questa è la catena completa.

Utilizzo del listener camd35/cs357x di OScam per altri client

Alcuni client preferiscono camd35 (chiamato anche cs357x). Aggiungere a oscam.conf :

 [cs357x] port = 15000 Le credenziali utente per camd35 provengono da [cs357x] port = 15000

oscam.user proprio come newcamd. Il protocollo è più semplice di newcamd, ma meno comune sui decoder moderni. Usa newcamd a meno che il tuo client non abbia specificamente bisogno di camd35.

Voce oscam.user per l'STB: Campi obbligatori

 [account] user = stbuser pwd = stbpassword group = 1 au = 1 uniq = 0 uniq = 0 [account] user = stbuser pwd = stbpassword group = 1 au = 1 uniq = 0

consente la connessione simultanea di più client con le stesse credenziali. Impostare su 1 se si desidera imporre una singola connessione per utente. Per una famiglia con un solo decoder, entrambe le opzioni funzionano. Per le configurazioni condivise, impostare su 0 per evitare l'auto-blocco durante le riconnessioni.

Verifica che la condivisione della carta stia superando gli ECM tramite le statistiche del lettore Webif

Apri http://OSCAM_IP:8888 in un browser. Fai clic sul nome del tuo lettore. Vedrai: stato della connessione, ora dell'ultimo ECM, conteggio ECM, tempo di risposta in millisecondi e conteggio dei salti. Se il lettore mostra "connesso" ma il conteggio ECM rimane a zero dopo aver provato a sintonizzare un canale, il problema è a valle: controlla la connessione del decoder a OScam o controlla le assegnazioni di gruppo.

Se il conteggio ECM aumenta ma continui a visualizzare una schermata nera, il server CCcam potrebbe non disporre della scheda per quel CAID. Controlla l'elenco delle condivisioni nella visualizzazione dettagliata del lettore per verificare che il CAID di cui hai bisogno sia effettivamente presente.

Risoluzione dei problemi di connessione del lettore CCcam in OScam

Il lettore bloccato in "CACHEEX" o "CARDOK" non viene mai visualizzato: cause

"CACHEEX" nello stato del lettore indica solitamente che OScam è in modalità di scambio cache, non in modalità di lettura diretta di CCcam. Verifica di non aver impostato accidentalmente cacheex = 1 sul lettore. Un lettore CCcam pulito dovrebbe essere visualizzato come "CONNECTED" o "CARDOK" una volta completata l'autenticazione e il server invia un elenco di condivisione con le schede effettive.

Se lo stato non raggiunge mai CARDOK, è probabile che il server non abbia schede attive nel suo elenco condiviso oppure cccmaxhops sta filtrando tutto.

AUTORIZZAZIONE NON RIUSCITA: stringa cccversion errata

Nel registro di OScam ( /var/log/oscam/oscam.log ), un'autenticazione non riuscita appare come segue:

 2024/01/15 14:23:01 9876 r mycccam_reader cccam: login failed for user YOUR_USER 2024/01/15 14:23:01 9876 r mycccam_reader cccam: connection closed

Viene visualizzata una connessione seguita immediatamente da una disconnessione. Prima di dare la colpa alle credenziali, prova a modificare cccversion . Passa da 2.3.0 a 2.1.4 o viceversa. Alcuni server sono compilati per rifiutare le stringhe di versione che non riconoscono. Questa è una modalità di errore silenziosa: non c'è un errore esplicito di "versione errata" nel log, solo una disconnessione.

Per ottenere temporaneamente un output dettagliato del lettore, aggiungi loglevel = 512 a [global] in oscam.conf, riavvia OScam, controlla i log e quindi rimuovilo. Il volume di log al livello 512 è significativo: non lasciarlo attivo in modo permanente.

Connessione rifiutata vs. Timeout di connessione: cosa significa

Connessione rifiutata : il pacchetto TCP ha raggiunto il server, ma non c'è nulla in ascolto su quella porta. O il numero di porta è errato, il server CCcam non è in esecuzione o un processo locale sta bloccando la porta (su Enigma2, un plugin CCcam in esecuzione insieme a OScam potrebbe aver richiesto la porta 12000: chiudetelo).

Timeout di connessione : il pacchetto TCP SYN non ha mai ricevuto risposta. Un firewall sta ignorando i pacchetti, l'IP è errato o il routing è interrotto. Prova con: nc -zv SERVER_IP 12000 Se si blocca, si tratta di un problema di rete/firewall. Se restituisce immediatamente "refused", la porta è chiusa sul server.

Linee di registro OScam da cercare

Una sequenza di connessione riuscita nel registro appare come segue:

 r mycccam_reader cccam: resolved SERVER_IP to xxxx r mycccam_reader cccam: connected to xxxx:12000 r mycccam_reader cccam: login successful for user YOUR_USER r mycccam_reader cccam: received share list (47 cards)

Se vedi "elenco condivisioni ricevute (0 carte)", il server è attivo e le tue credenziali funzionano, ma non ci sono carte attive su quell'account. Contatta l'operatore del server.

Firewall e NAT: assicurarsi che la porta 12000 sia raggiungibile

OScam si connette in uscita alla porta 12000. La maggior parte delle configurazioni NAT domestiche consente connessioni in uscita senza alcuna configurazione specifica. I problemi sorgono quando un firewall sul computer client blocca le connessioni in uscita (raro ma possibile con regole iptables rigorose) o quando il firewall del server ha inserito un IP nella whitelist e il tuo IP pubblico non è presente.

Controlla anche: se ti trovi in un ambiente NAT condiviso in cui più client OScam condividono lo stesso IP pubblico, il server CCcam potrebbe avere un limite di connessioni per IP e rifiutare le connessioni oltre tale limite. Ogni client necessita di una coppia nome utente/password univoca: usare le stesse credenziali dallo stesso IP a volte funziona, usare le stesse credenziali dallo stesso IP simultaneamente quasi sempre fallisce.

cccmaxhops impostato troppo basso — Spiegazione dei canali mancanti

Le schede CCcam hanno un "numero di hop", ovvero il numero di relay che la scheda ha attraversato per raggiungere il server. Una scheda direttamente nell'hardware del server è l'hop 0. Una scheda condivisa da un altro server CCcam al tuo è l'hop 1. A sua volta condivisa, l'hop 2. E così via.

cccmaxhops = 1 significa che OScam utilizzerà solo schede con numero di hop pari a 0 o 1. Le schede con hop 2+ sono nella lista di condivisione, ma OScam le ignora. Se il canale di cui hai bisogno proviene da una scheda con hop 2, sarai connesso, il lettore risulterà funzionante, ma quel canale specifico non verrà decifrato. Imposta cccmaxhops = 2 o un valore superiore se ricevi canali mancanti selettivi. Tieni presente che valori molto elevati (8+) possono causare la ricezione di enormi liste di condivisione da parte di OScam su server molto occupati, con conseguente consumo di memoria, un problema reale per l'hardware Dreambox con 256 MB di RAM.

Voci di lettori duplicate che causano riconnessioni di loop

Due voci di lettori con la stessa etichetta in oscam.server causano un comportamento confuso: OScam potrebbe caricarle entrambe, creando tentativi di connessione duplicati allo stesso server. Il registro mostrerà rapidi cicli di connessione/disconnessione. Utilizzare etichette univoche per ogni lettore. Verificare la presenza di duplicati accidentali se si nota un lettore che rimbalza nel webif.

Rafforzamento e ottimizzazione delle prestazioni per il lettore OScam CCcam

Impostazione di reconnecttimeout per evitare ritardi Zap

Con un solo lettore CCcam, una caduta del server comporta una schermata nera finché OScam non si riconnette. reconnecttimeout = 30 è l'impostazione predefinita, che significa fino a 30 secondi di schermata nera. Abbassando il valore a 15 si riduce tale finestra, ma si aumenta la frequenza di riconnessione in caso di connessioni instabili. Per la produzione, eseguire due voci del lettore che puntano a server diversi con lb_mode = 1 è una soluzione migliore rispetto alla semplice regolazione dei tempi di riconnessione.

ccckeepalive e il suo effetto sulle connessioni inattive

ccckeepalive = 1 invia un messaggio periodico in stile ping sulla connessione TCP di CCcam durante i periodi di inattività. Senza di esso, le mappature NAT sui router in genere scadono dopo 60-300 secondi di inattività, interrompendo silenziosamente la sessione TCP. OScam non saprà che la connessione è interrotta fino al fallimento della successiva richiesta ECM. Con keepalive abilitato, la mappatura NAT rimane attiva e OScam rileva le interruzioni più velocemente. Lasciare questa opzione attiva.

Utilizzo di lb_mode (bilanciamento del carico) durante la connessione a più server CCcam

Impostato in oscam.conf [global] :

  • lb_mode = 0 : Nessun bilanciamento del carico. OScam utilizza il primo lettore disponibile nell'elenco. Semplice ma non offre alcun vantaggio in termini di prestazioni.
  • lb_mode = 1 : vince il lettore più veloce. OScam monitora i tempi di risposta ECM per lettore e indirizza le richieste future al lettore con il miglior tempo di risposta medio. Questo è ciò che serve per una configurazione multi-server.
  • lb_mode = 5 : Casuale ponderato. Tiene conto del tempo di risposta, ma aggiunge casualità alla distribuzione del carico. Utile quando si hanno molti server di qualità simile e non si vuole che uno solo riceva tutto il traffico.

Per la maggior parte delle configurazioni con 2–4 lettori CCcam, lb_mode = 1 con lb_save = 1 (salva le statistiche apprese su disco in modo che OScam non si avvii alla cieca dopo un riavvio) è la scelta giusta.

Configurazione di Logrotate per i registri di OScam per impedire il riempimento del disco

Crea /etc/logrotate.d/oscam :

 /var/log/oscam/oscam.log { daily rotate 7 compress missingok notifempty copytruncate }

In questo caso copytruncate è importante: OScam mantiene aperto l'handle del file di log, quindi la rotazione e la segnalazione standard non funzioneranno senza inviare a OScam un SIGHUP. Copytruncate copia il file e poi tronca l'originale, il che funziona senza toccare il processo OScam. Sui dispositivi Enigma2 embedded con memoria flash di piccole dimensioni, ruota in modo più aggressivo: rotate 3 e considera maxsize 1M .

Esecuzione di OScam come servizio systemd non root

Crea utente e directory:

 useradd -r -s /sbin/nologin oscam mkdir -p /var/log/oscam chown oscam:oscam /var/log/oscam chown -R oscam:oscam /etc/oscam Creare useradd -r -s /sbin/nologin oscam mkdir -p /var/log/oscam chown oscam:oscam /var/log/oscam chown -R oscam:oscam /etc/oscam

/etc/systemd/system/oscam.service :

 [Unit] Description=OScam Softcam After=network-online.target Wants=network-online.target [Service] Type=simple User=oscam Group=oscam ExecStart=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam PIDFile=/var/run/oscam.pid Restart=on-failure RestartSec=10 StandardOutput=null [Install] WantedBy=multi-user.target Abilita e avvia: [Unit] Description=OScam Softcam After=network-online.target Wants=network-online.target [Service] Type=simple User=oscam Group=oscam ExecStart=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam PIDFile=/var/run/oscam.pid Restart=on-failure RestartSec=10 StandardOutput=null [Install] WantedBy=multi-user.target

 systemctl daemon-reload systemctl enable oscam systemctl start oscam L'esecuzione come non root significa che un processo OScam compromesso non può distruggere il sistema. systemctl daemon-reload systemctl enable oscam systemctl start oscam

La direttiva Restart=on-failure gestisce automaticamente gli arresti anomali imprevisti. Questa è una prassi standard e richiede circa 5 minuti per essere configurata: saltandola, si eseguirà un servizio di rete come root a tempo indeterminato.

Un ultimo controllo prima di dare per scontato che la configurazione del client OSCAM del server CCCAM sia completa: esegui oscam --version e controlla l'elenco dei moduli nell'output. Alcune build minimali o ridotte, compilate per specifici target embedded, escludono completamente il modulo di lettura CCCAM. Se non vedi "CCCAM" nell'elenco dei moduli compilati, nessuna modifica alla configurazione lo farà funzionare: hai bisogno di una build OSCAM completa.

Domande frequenti

Qual è la porta predefinita per un server CCcam a cui si connette OScam?

La porta predefinita del server CCcam è 12000/TCP . Molti operatori utilizzano porte non standard: verificate sempre con chi vi ha fornito le credenziali del server. La porta è impostata nella riga device di oscam.server come hostname,port senza spazi. Non date mai per scontato che sia 12000 se non vi è stata comunicata esplicitamente la porta.

Qual è la differenza tra 'protocol = cccam' e 'protocol = cccam2' in OScam?

cccam2 è una variante estesa del protocollo interno a OScam con funzionalità aggiuntive di negoziazione delle condivisioni. Funziona correttamente solo quando sia il client che il server eseguono OScam. Un vero binario del server CCcam non riconoscerà le estensioni di cccam2: rifiuterà la connessione o si comporterà in modo imprevedibile. Utilizzate protocol = cccam per qualsiasi dispositivo che esegua un software server CCcam e riservate cccam2 esclusivamente per le configurazioni da OScam a OScam.

Perché il mio lettore OScam mostra "connesso" ma i canali non vengono ancora decifrati?

"Connesso" significa solo che il collegamento TCP è attivo, non garantisce la disponibilità della scheda. Segui questa checklist: (1) Il cccmaxhops è sufficientemente alto da raggiungere le schede necessarie? (2) Il CAID e l'ID provider necessari sono effettivamente presenti nell'elenco di condivisione del server? (3) Il gruppo oscam.user del tuo decoder corrisponde al gruppo del lettore? (4) Controlla il conteggio delle richieste ECM nei dettagli del lettore webif: se è a zero, la richiesta non sta nemmeno raggiungendo OScam dal decoder.

OScam può connettersi a più server CCcam contemporaneamente?

Sì. Aggiungi più blocchi [reader] in oscam.server , ognuno con label univoca. Assegna lo stesso gruppo a tutti se desideri un routing unificato, oppure gruppi diversi per livelli di accesso separati. Imposta lb_mode = 1 in oscam.conf [global] per fare in modo che OScam instradi automaticamente ogni richiesta ECM al lettore con la risposta più rapida. Aggiungi lb_save = 1 in modo che i tempi appresi vengano mantenuti anche dopo un riavvio.

Cosa dovrei cercare quando valuto l'affidabilità di un server CCcam prima di configurarlo?

Aspetti chiave da verificare: l'operatore pubblica statistiche di uptime o ha una pagina di stato? Dove si trova geograficamente il server rispetto a te? La posizione del server influisce direttamente sulla latenza di risposta dell'ECM. Quante connessioni simultanee consente l'account? L'operatore fornisce una linea di prova prima dell'impegno completo? È disponibile documentazione tecnica sulla configurazione del server? Evita server senza accesso di prova e senza possibilità di verificare il funzionamento della configurazione prima di configurare tutto il resto.

Come posso controllare i registri di OScam per confermare che un lettore CCcam si sia autenticato correttamente?

In /var/log/oscam/oscam.log o nella vista log webif, un'autenticazione riuscita mostra righe con l'etichetta del lettore seguita da "cccam: login successful" e poi "received share list". Un'autenticazione fallita mostra "login failed" o una disconnessione immediata subito dopo la riga di connessione TCP. Per maggiori dettagli, aggiungi temporaneamente loglevel = 512 a [global] in oscam.conf e riavvia: questo produce un output dettagliato per ogni lettore. Rimuovilo dopo il debug; il volume del log è elevato.

OScam supporta la condivisione delle schede CCcam sia sulle piattaforme Linux che su quelle embedded (Enigma2)?

Sì, e la sintassi di configurazione oscam.server è identica su entrambi. Su Enigma2 (Dreambox, VU+), OScam è installato come plugin ipk o opk. I file di configurazione si trovano in genere in /etc/tuxbox/config/ o /usr/keys/ a seconda dell'immagine. Un'avvertenza su Enigma2: se è installato e in esecuzione anche un plugin CCcam, potrebbe essere già in ascolto sulla porta 12000 in locale. Questo causa un errore di "connessione rifiutata" quando il lettore di OScam tenta di connettersi al server: disattiva il plugin CCcam in conflitto e connettiti solo tramite OScam.