Guida alla Configurazione del Server CCcam + Client OScam
\n\nOttenere una configurazione funzionantecccam server oscam client richiede più che semplicemente inserire un blocco [reader] in un file e sperare per il meglio. Ci sono dettagli di protocollo, instradamento di gruppo, stringhe di versione e configurazione dell'ascoltatore downstream che devono allinearsi — e la maggior parte delle guide salta metà di essi. Questa non lo fa. Di seguito c'è tutto ciò di cui hai bisogno, dalla spiegazione dell'handshake TCP iniziale all'esecuzione di OScam come un servizio systemd rinforzato.
\n\nCome Funziona la Comunicazione da CCcam a OScam
\n\nPrima di toccare qualsiasi file di configurazione, hai bisogno di un chiaro modello mentale di ciò che sta realmente accadendo sul cavo. CCcam e OScam sono due pezzi di software separati che parlano un protocollo condiviso. OScam si sta connettendoa il server CCcam — non il contrario.
\n\nPanoramica dell'Handshake del Protocollo CCcam
\n\nQuando OScam apre una connessione a un server CCcam, la prima cosa che accade è un handshake di sfida/riposta basato su SHA1. Il server invia un seed casuale di 16 byte, il client lo utilizza insieme al nome utente e alla password per calcolare un hash, e quell'hash è ciò che autentica la sessione. Niente password in chiaro sul cavo.
\n\nDopo l'autenticazione, il server invia un elenco di condivisione — tutti i CAID e gli ID provider a cui ha accesso. OScam memorizza questo internamente e lo utilizza per decidere a quale lettore instradare le richieste ECM. La connessione rimane aperta in modo persistente; le richieste ECM fluiscono in, le risposte ECW decrittate fluiscono indietro.
\n\nCosa Fa Realmente il Tipo di Lettore 'cccam' di OScam
\n\nIl modulo lettore di OScam conprotocol = cccam è un'implementazione puramente client. Parla il protocollo CCcam in uscita verso un server. OScam NON espone una porta del server CCcam quando configurato in questo modo — non c'è alcun ascoltatore CCcam in entrata coinvolto. Questa è una cosa completamente separata ([cccam] sezione in oscam.conf, che non stai utilizzando qui).
Il lettore gestisce la gestione delle connessioni, la riconnessione in caso di interruzione, l'analisi della lista di condivisione e l'inoltro ECM. Pensalo come un driver per una scheda remota che si trova su un server di qualcun altro.
\n\nPorta 12000 e porte CCcam non standard spiegate
\n\nLa porta predefinita del server CCcam è12000/TCP. Questa è la porta compilata nel binario originale di CCcam e su cui funzionano la maggior parte dei server. Ma le porte non standard (13000, 16000, 10000, ecc.) sono comuni: gli operatori le cambiano per evitare scanner di porte automatici o per eseguire più istanze.
\n\nQualunque porta ti dia il tuo operatore di server, quella va nellalinea del dispositivo. Non presumere mai 12000. Conferma sempre. Connettersi alla porta sbagliata ti dà immediatamente un "connessione rifiutata" pulito, che è in realtà più facile da debug rispetto a un errore di autenticazione.
Perché OScam ha bisogno di un'entrata lettore dedicata per ogni server CCcam
\n\nOgni[reader]blocco inoscam.serverrappresenta una connessione TCP persistente a un server CCcam. Se hai due server CCcam, hai bisogno di due blocchi lettore con etichette uniche. Il bilanciatore di carico di OScam li tratta quindi come fonti separate e può instradare le richieste ECM a quella che risponde più rapidamente.
Cercare di inserire due indirizzi server in un blocco lettore non funziona. Un lettore, una connessione, un server. Questo è il modello.
\n\nConfigurazione OScam oscam.server per un lettore CCcam
\n\nIlfile oscam.serversi trova in/etc/oscam/oscam.servernella maggior parte delle installazioni Linux. Su immagini Enigma2 è spesso in/etc/tuxbox/config/oscam.server oppure/usr/keys/oscam.server. La sintassi è identica indipendentemente dalla posizione.
Direttive Minime Richieste per un Lettore CCcam Funzionante
\n\nAl minimo assoluto hai bisogno di:etichetta,protocollo,dispositivo,utente,password, egruppo. Tutto il resto è facoltativo ma fortemente raccomandato per la stabilità. Un blocco minimo si connetterà, ma avrai problemi con timeout inattivi e canali mancanti senza le direttive extra.
Blocco oscam.server Completo Annotato con Ogni Chiave Rilevante
\n\n[reader]\netichetta = mycccam_reader\nprotocollo = cccam\ndispositivo = SERVER_IP,12000\nutente = YOUR_USER\npassword = YOUR_PASS\ncccversion = 2.3.0\nccckeepalive = 1\ninactivitytimeout = 30\nreconnecttimeout = 30\ngruppo = 1\ncccmaxhops = 2\ncccwantemu = 0\ncccos = 0\nccchops = 0\n\n\nSostituisciSERVER_IP,YOUR_USER, eYOUR_PASS con ciò che il tuo operatore del server ha fornito. Ogni altro valore sopra è un valore predefinito ragionevole per la produzione. Ecco cosa fa effettivamente ogni riga:
- \n
- etichetta — Nome unico per questo lettore. Appare nell'interfaccia web e nei log. Rendilo significativo, specialmente se hai più lettori. \n
- protocollo — Indica a OScam quale driver di connessione utilizzare.
cccamper server CCcam standard. \n - dispositivo — IP/nome host e porta, separati da virgola. Nessuno spazio attorno alla virgola. \n
- utente / password — Credenziali esattamente come fornite. Sensibile al maiuscolo. \n
- versioneccc — La stringa di versione CCcam che OScam presenta durante il handshake. I server possono controllare questo. \n
- ccckeepalive — Invia ping periodici su connessioni inattive. Imposta a 1 a meno che il tuo server non rifiuti esplicitamente i keepalive. \n
- timeoutinattività — Secondi di inattività ECM prima che OScam consideri la connessione scaduta e si riconnetta. 30 è sensato. \n
- timeoutriconnessione — Secondi da attendere prima di tentare la riconnessione dopo una disconnessione. Mantieni questo a 30 o inferiore. \n
- gruppo — Numero del gruppo lettore. Deve corrispondere al gruppo nel tuo
oscam.useroppure gli ECM non verranno instradati qui. \n - cccmaxhops — Numero massimo di salti di condivisione da accettare dalla lista di condivisione del server. Maggiori informazioni su questo di seguito. \n
- cccwantemu — Imposta a 1 solo se desideri che il server condivida schede emulate. Di solito 0. \n
- cccos / ccchops — Sovrascrivi il sistema operativo riportato e il conteggio dei salti nel handshake. Lascia a 0 a meno che il server non richieda valori specifici. \n
Impostazione 'protocol = cccam' vs 'protocol = cccam2'
\n\ncccam2 è una variante estesa interna di OScam del protocollo CCcam. Aggiunge funzionalità di negoziazione della lista di condivisione e alcuni scambi di metadati extra. Il problema: funziona correttamente solo quandoentrambi i punti finali sono OScam. Un vero server CCcam (che esegue il binario CCcam reale) non comprenderà le estensioni cccam2 e rifiuterà la connessione o si comporterà in modo imprevedibile.
Regola pratica: usaprotocol = cccam per qualsiasi cosa che esegue il software del server CCcam reale. Usacccam2 solo in configurazioni OScam-to-OScam. Quando hai dubbi, inizia concccam.
La direttiva 'device': Sintassi Hostname e Porta
\n\nStandard IPv4 o nome host:device = myserver.example.com,12000
Gli indirizzi IPv6 richiedono la notazione tra parentesi:device = [2001:db8::1],12000. Salta le parentesi su IPv6 e OScam non riuscirà a interpretare correttamente l'indirizzo — è un errore comune nelle configurazioni VPS solo IPv6.
Se il tuo server si trova dietro un reverse proxy o un bilanciatore di carico, l'IP che il server CCcam vede potrebbe non essere il tuo vero IP client. Se il server utilizza il whitelisting degli IP, l'autenticazione fallirà anche con credenziali corrette. Questo è un problema di configurazione lato server — contatta l'operatore.
\n\nCampi Nome utente, Password e cccversion
\n\nLe credenziali sono case-sensitive e devono corrispondere esattamente a ciò che è configurato sul server. Uno spazio finale nel campo password causerà un silenzioso fallimento dell'autenticazione — fai attenzione quando copi e incolli.
\n\nLacccversion stringa è ciò che OScam comunica al server di essere durante il handshake. Valori comuni che i server si aspettano: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 — nessun messaggio di errore che dica chiaramente "incompatibilità di versione." Vedi solo una disconnessione. Prova2.3.0 prima; se fallisce, chiedi al tuo operatore di server quale stringa di versione si aspetta.
Impostazioni inactivitytimeout e Riconnessione
\n\ninactivitytimeout = 30 significa che OScam si riconnetterà se non ci sono attività ECM per 30 secondi. Questo è buono — recupera connessioni obsolete senza aspettare che il sistema operativo rilevi un socket morto. Su reti molto soggette a perdita potresti abbassare questo valore a 20.
reconnecttimeout = 30 è il ritardo tra una disconnessione e il successivo tentativo di riconnessione. Mantenere il valore a 30 significa circa 30 secondi di potenziale schermo nero dopo una caduta del server. Per configurazioni critiche con più server, avere un valore più basso (15–20) più più voci lettori è meglio che colpire un server con riconnessioni rapide.
Assegnazione del Gruppo e Perché È Importante per il Routing
\n\nIlgruppo valore è il meccanismo di routing interno di OScam. Una richiesta ECM da un client downstream (il tuo STB) 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 l'entry utente del tuo STB specifica il gruppo 2, l'ECM non raggiunge mai questo lettore. Punto. Questa è la configurazione errata più comune nell'intero processo di configurazione del client cccam server oscam e quasi nessun'altra guida lo spiega chiaramente.
Impostazioni di oscam.conf e oscam.user che Influenzano i Client CCcam
\n\nSezione Globale [global]: logfile, nice, maxlogsize
\n\nIlfile oscam.conf in/etc/oscam/oscam.conf controlla il comportamento globale. Un blocco minimo funzionante[global] :
[global]\nlogfile = /var/log/oscam/oscam.log\nmaxlogsize = 512\nnice = -1\nWaitForCards = 1\nlb_mode = 1\nlb_save = 1\n\n\nmaxlogsize è in KB — 512 KB mantiene i log gestibili senza perdere una cronologia utile.WaitForCards = 1 dice a OScam di trattenere le richieste ECM fino a quando almeno un lettore è pronto, piuttosto che restituire immediatamente "non trovato."nice = -1 dà a OScam una leggera priorità di scheduling CPU elevata, che è importante sui dispositivi embedded sotto carico.
Abilitare l'interfaccia web per il monitoraggio dello stato del lettore in tempo reale
Aggiungi questo aoscam.conf per abilitare il monitor HTTP sulla porta 8888:
[webif]\nhttpport = 8888\nhttpuser = admin\nhttppwd = tuapassword\nhttprefresh = 10\nhttpallowed = 127.0.0.1,192.168.0.0-192.168.255.255\nRestringihttpallowed alla tua rete locale. Non esporre mai la porta 8888 a Internet senza autenticazione e anche in quel caso è rischioso. L'interfaccia web è dove puoi monitorare lo stato del lettore in tempo reale — se la connessione CCcam è attiva, conteggi dei salti, ultimo tempo ECM e latenza di risposta. La utilizzerai costantemente durante il debug.
oscam.user: Creare un utente locale per instradare gli ECW decrittati al tuo STB
Posizione del file:/etc/oscam/oscam.user. Hai bisogno di almeno un'entrata utente per il dispositivo che si connette a OScam (il tuo STB, Dreambox, VU+ box, ecc.):
[account]\nuser = stbuser\npwd = stbpassword\ngroup = 1\nau = 1\nIlgroup = 1 qui deve corrispondere algroup = 1 nel tuo blocco lettore. Questo è il collegamento. OScam vede la richiesta ECM da stbuser (gruppo 1), cerca lettori nel gruppo 1, trova il tuo lettore CCcam, invia l'ECM lì, riceve l'ECW e lo restituisce allo STB. Interrompi la corrispondenza del gruppo e nulla funziona anche se la connessione CCcam è perfettamente sana.
Collegare gli utenti ai gruppi di lettori con la direttiva 'group'
I gruppi sono solo numeri interi. Puoi utilizzare qualsiasi numero da 1 a 64. Puoi assegnare più gruppi sia ai lettori che agli utenti utilizzando la separazione con virgola:gruppo = 1,2,3. Questo è utile quando hai più lettori CCcam in diversi gruppi e vuoi che un utente abbia accesso a tutti loro. Il bilanciatore di carico di OScam selezionerà quindi il miglior lettore tra tutti i gruppi assegnati.
Impostare correttamente 'au' (Auto-Update) per i lettori di condivisione della scheda
\n\nau = 1 nell'account utente abilita il messaggio di gestione dei diritti (EMM) auto-aggiornato per quell'utente. Per una configurazione di condivisione della scheda in cui ricevi solo risposte ECM,au = 1 sul lettore stesso è di solito superfluo e può aggiungere rumore. Impostalo sull'account utente a valle se hai bisogno di rinnovi di abbonamento; lascialo disattivato sul lettore a meno che il tuo server non lo supporti e richieda.
Collegare il tuo STB o Softcam a OScam dopo l'autenticazione CCcam
\n\nEcco dove la maggior parte delle guide di configurazione del client oscam del server cccam falliscono completamente. Riuscire a collegare OScam al server CCcam risolve solo metà del problema: hai portato gli ECM crittografati nel posto giusto, ma devi ancora riportare gli ECW decrittografati al tuo decoder TV.
\n\nUtilizzare OScam come ascoltatore newcamd per Dreambox/VU+ Boxes
\n\nNewcamd è il protocollo più ampiamente supportato sui decoder Enigma2. Aggiungi una[newcamd] sezione aoscam.conf:
[newcamd]\nchiave = 0102030405060708091011121314\nporta = 15050@1702:000000\n\n\nLachiave è la chiave DES newcamd — deve corrispondere a quella che configuri nel client newcamd del decoder. Il valore sopra è un comune default; puoi usare qualsiasi stringa esadecimale di 14 byte. Ilformato della linea porta èporta@CAID:ProviderID. Usa000000 come ID fornitore per accettare tutti i fornitori per quel CAID, oppure specifica un vero ID fornitore (ad esempio,000000 per jolly,000001 per un fornitore specifico). Per più CAID, aggiungi più voci di porta separate da punti e virgola:porta = 15050@1702:000000;15051@0D00:000000.
Configurazione di oscam.conf [newcamd] Blocco Listener
\n\nSulla tua Dreambox o box VU+, aggiungi una voce server newcamd che punta all'IP della macchina che esegue OScam, porta 15050, con la stessa chiave DES. Lo STB invia richieste ECM al listener newcamd di OScam, OScam le instrada tramite il lettore CCcam al server, riceve l'ECW e lo restituisce allo STB. Questa è la catena completa.
\n\nUtilizzando il listener camd35/cs357x di OScam per altri client
\n\nAlcuni client preferiscono camd35 (chiamato anche cs357x). Aggiungi aoscam.conf:
[cs357x]\nporta = 15000\n\n\nLe credenziali utente per camd35 provengono daoscam.user proprio come newcamd. Il protocollo è più semplice di newcamd ma meno comune sui moderni STB. Usa newcamd a meno che il tuo client non necessiti specificamente di camd35.
Voce oscam.user per lo STB: Campi richiesti
\n\n[account]\nutente = stbuser\npwd = stbpassword\ngruppo = 1\nau = 1\nuniq = 0\n\n\nuniq = 0 consente le stesse credenziali di connettersi da più client simultaneamente. Imposta su1 se desideri applicare una connessione singola per utente. Per una famiglia con un solo STB, entrambi funzionano. Per configurazioni condivise, impostalo su 0 per evitare il blocco automatico durante i riconnessioni.
Verifica che la Condivisione della Scheda stia passando gli ECM tramite le Statistiche del Lettore Webif
\n\nAprihttp://OSCAM_IP:8888 in un browser. Clicca sul nome del tuo lettore. Vedrai: stato della connessione, ultimo tempo 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 dello STB a OScam o controlla le assegnazioni di gruppo.
Se il conteggio ECM aumenta ma vedi ancora uno schermo nero, il server CCcam potrebbe non avere la scheda per quel CAID. Controlla l'elenco di condivisione nella vista dettagli del lettore per confermare che il CAID di cui hai bisogno sia effettivamente elencato.
\n\nRisoluzione dei problemi di connessione del lettore CCcam in OScam
\n\nLettore bloccato in 'CACHEEX' o 'CARDOK' non appare mai — Cause
\n\n"CACHEEX" nello stato del lettore di solito significa che OScam è in modalità di scambio cache, non in modalità lettore CCcam diretto. Controlla di non aver accidentalmente impostatocacheex = 1 sul lettore. Un lettore CCcam pulito dovrebbe apparire come "CONNESSO" o "CARDOK" una volta completata l'autenticazione e il server invia un elenco di condivisione con schede effettive.
Se lo stato non raggiunge mai CARDOK, è probabile che il server non abbia schede attive nel suo elenco di condivisione, occcmaxhops sta filtrando tutto.
AUTENTICAZIONE FALLITA: Stringa cccversion Errata
\n\nNel log di OScam (/var/log/oscam/oscam.log), un'autenticazione fallita appare come:
2024/01/15 14:23:01 9876 r mycccam_reader cccam: accesso fallito per l'utente YOUR_USER\n2024/01/15 14:23:01 9876 r mycccam_reader cccam: connessione chiusa\n\nVedi una connessione seguita immediatamente da una disconnessione. Prima di incolpare le credenziali, prova a cambiarecccversion. Passa da2.3.0 a2.1.4 o viceversa. Alcuni server sono compilati per rifiutare le stringhe di versione che non riconoscono. Questo è un modo di fallimento silenzioso — non c'è un errore esplicito di "versione errata" nel log, solo una disconnessione.
Per ottenere temporaneamente un output dettagliato del lettore, aggiungiloglevel = 512 a[global] in oscam.conf, riavvia OScam, controlla i log, poi rimuovilo. Il volume del log a livello 512 è significativo — non lasciarlo attivo permanentemente.
Connessione rifiutata vs Timeout di connessione — Cosa significano ciascuno
\n\nConnessione rifiutata: Il pacchetto TCP ha raggiunto il server ma nulla sta ascoltando 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 occupato la porta 12000 — chiudilo).
\n\nTimeout di connessione: Il pacchetto TCP SYN non ha mai ricevuto una risposta. O un firewall sta bloccando i pacchetti, l'IP è errato, o il routing è rotto. Testa con:nc -zv SERVER_IP 12000. Se si blocca, è un problema di rete/firewall. Se restituisce "rifiutato" immediatamente, la porta è chiusa sul server.
Linee di log OScam da cercare
\n\nUna sequenza di connessione riuscita nel log appare così:
\nr mycccam_reader cccam: risolto SERVER_IP in x.x.x.x\nr mycccam_reader cccam: connesso a x.x.x.x:12000\nr mycccam_reader cccam: accesso riuscito per l'utente YOUR_USER\nr mycccam_reader cccam: lista di condivisione ricevuta (47 schede)\n\nSe vedi "lista di condivisione ricevuta (0 schede)" — il server è attivo e le tue credenziali funzionano, ma non ci sono schede attive su quell'account. Contatta l'operatore del server.
\n\nFirewall e NAT: Assicurarsi che la Porta 12000 sia Raggiungibile
\n\nOScam si connettein uscita alla porta 12000. La maggior parte delle configurazioni NAT domestiche consente connessioni in uscita senza alcuna configurazione speciale. I problemi sorgono quando un firewall sulla macchina client stessa blocca le connessioni in uscita (non comune ma possibile con regole iptables severe), o quando il firewall del server ha una lista bianca IP e il tuo IP pubblico non è nella lista.
\n\nControlla anche: se sei in un ambiente NAT condiviso dove più client OScam condividono lo stesso IP pubblico, il server CCcam potrebbe avere un limite di connessione per IP e rifiutare connessioni oltre quel limite. Ogni client ha bisogno del proprio paio unico di nome utente/password — le stesse credenziali dallo stesso IP a volte funzionano, le stesse credenziali dallo stesso IP simultaneamente falliscono quasi sempre.
\n\ncccmaxhops Impostato Troppo Basso — Spiegazione dei Canali Mancanti
\n\nLe schede CCcam hanno un "conteggio di hop" — quante volte la scheda è passata attraverso i relay per raggiungere il tuo server. Una scheda direttamente nell'hardware del server è hop 0. Una scheda condivisa da un altro server CCcam al tuo è hop 1. Condivisa di nuovo, hop 2. E così via.
\n\ncccmaxhops = 1 significa che OScam utilizzerà solo schede con conteggio di hop 0 o 1. Le schede a hop 2+ sono nella lista di condivisione ma OScam le ignora. Se il canale di cui hai bisogno proviene da una scheda a hop 2, sarai connesso, il lettore mostrerà come sano, ma quel canale specifico non verrà decrittato. Impostacccmaxhops = 2 o superiore se stai ricevendo canali mancanti in modo selettivo. Fai attenzione che valori molto alti (8+) possono causare a OScam di ricevere enormi liste di condivisione su server occupati, il che consuma memoria — una vera preoccupazione sull'hardware Dreambox con 256MB di RAM.
Voci Duplicate del Lettore che Causano Riconnessioni a Loop
\n\nDue voci del lettore con la stessa etichetta inoscam.server causano comportamenti confusi — OScam potrebbe caricare entrambe, creando tentativi di connessione duplicati allo stesso server. Il log mostrerà cicli rapidi di connessione/disconnessione. Usa etichette uniche per ogni lettore. Controlla eventuali duplicati accidentali se vedi un lettore rimbalzare nell'interfaccia web.
Rafforzamento e Ottimizzazione delle Prestazioni per il Lettore CCcam di OScam
\n\nImpostare reconnecttimeout per evitare ritardi di Zap
\n\nCon solo un lettore CCcam, una disconnessione del server significa uno schermo nero fino a quando OScam non si riconnette.reconnecttimeout = 30 è il valore predefinito, il che significa fino a 30 secondi di nero. Abbassarlo a 15 riduce quel tempo ma aumenta la frequenza di riconnessione su connessioni instabili. Per la produzione, eseguire due voci lettore che puntano a server diversi conlb_mode = 1 è una risposta migliore rispetto a regolare solo il tempo di riconnessione.
ccckeepalive e il suo effetto sulle connessioni inattive
\n\nccckeepalive = 1 invia un messaggio periodico in stile ping attraverso la connessione TCP CCcam durante i periodi di inattività. Senza di esso, le mappature NAT sui router scadono tipicamente dopo 60–300 secondi di inattività, uccidendo silenziosamente la sessione TCP. OScam non saprà che la connessione è morta fino a quando la prossima richiesta ECM non fallisce. Con keepalive abilitato, la mappatura NAT rimane attiva e OScam rileva le disconnessioni più rapidamente. Lasciare attivo.
Utilizzare lb_mode (Bilanciamento del carico) quando ci si connette a più server CCcam
\n\nImpostare inoscam.conf [global]:
- \n
- 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. \n
- lb_mode = 1: Il lettore più veloce vince. OScam tiene traccia dei tempi di risposta ECM per lettore e instrada le richieste future al lettore con il miglior tempo medio di risposta. Questo è ciò che desideri per una configurazione multi-server. \n
- lb_mode = 5: Randomizzazione ponderata. Tiene conto del tempo di risposta ma aggiunge randomizzazione per distribuire il carico. Utile quando hai molti server di qualità simile e non vuoi che uno riceva tutto il traffico. \n
Per la maggior parte delle configurazioni con 2–4 lettori CCcam,lb_mode = 1 conlb_save = 1 (salva le statistiche apprese su disco in modo che OScam non parta in modo cieco dopo un riavvio) è la scelta giusta.
Configurazione di Logrotate per i log di OScam per prevenire il riempimento del disco
\n\nCrea/etc/logrotate.d/oscam:
/var/log/oscam/oscam.log {\n daily\n rotate 7\n compress\n missingok\n notifempty\n copytruncate\n}\n\ncopytruncate è importante qui — OScam mantiene aperto il file di log, quindi la rotazione standard e il segnale non funzioneranno senza inviare a OScam un SIGHUP. Copytruncate copia il file e poi tronca l'originale in loco, il che funziona senza toccare il processo OScam. Su dispositivi Enigma2 embedded con piccola memoria flash, ruota in modo più aggressivo:rotate 3 e consideramaxsize 1M.
Eseguire OScam come servizio systemd non root
\n\nCrea utente e directory:
\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:
[Unit]\nDescription=OScam Softcam\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nUser=oscam\nGroup=oscam\nExecStart=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam\nPIDFile=/var/run/oscam.pid\nRestart=on-failure\nRestartSec=10\nStandardOutput=null\n\n[Install]\nWantedBy=multi-user.target\n\n\nAbilita e avvia:
\nsystemctl daemon-reload\nsystemctl enable oscam\nsystemctl start oscam\n\n\nEseguire come non-root significa che un processo OScam compromesso non può danneggiare il sistema. IlRestart=on-failure direttiva gestisce automaticamente i crash imprevisti. Questa è una prassi standard e richiede circa 5 minuti per essere configurata — saltala e stai eseguendo un servizio esposto alla rete come root indefinitamente.
Un'ultima verifica prima di assumere che la configurazione del client oscam del tuo server cccam sia completa: eseguioscam --version e guarda l'elenco dei moduli nell'output. Alcuni build minimi o ridotti compilati per obiettivi embedded specifici escludono completamente il modulo lettore 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
\n\nQual è la porta predefinita per un server CCcam a cui OScam si connette?
\nLa porta predefinita del server CCcam è12000/TCP. Molti operatori utilizzano porte non standard — conferma sempre con chi ti ha fornito le credenziali del server. La porta è impostata nelladevice riga dioscam.server comehostname,portsenza spazi. Non assumere mai 12000 se non ti è stato esplicitamente detto il porto.
Qual è la differenza tra 'protocol = cccam' e 'protocol = cccam2' in OScam?
\ncccam2 è una variante del protocollo esteso interno di OScam con funzionalità aggiuntive di negoziazione della condivisione. Funziona correttamente solo quando sia il client che il server eseguono OScam. Un vero binario del server CCcam non comprenderà le estensioni cccam2 — rifiuterà la connessione o si comporterà in modo imprevedibile. Usaprotocol = cccam per qualsiasi cosa che esegue un software del server CCcam reale, e riservacccam2 esclusivamente per configurazioni OScam-to-OScam.
Perché il mio lettore OScam mostra 'connesso' ma i canali non si decrittano ancora?
\n"Connesso" significa solo che il link TCP è attivo — non garantisce la disponibilità della scheda. Lavora attraverso questa lista di controllo: (1) Ècccmaxhops abbastanza alto per raggiungere le schede di cui hai bisogno? (2) Il CAID e l'ID del fornitore di cui hai bisogno sono effettivamente nella lista di condivisione del server? (3) Il gruppo del tuo STBoscam.user corrisponde al gruppo del lettore? (4) Controlla i conteggi delle richieste ECM nei dettagli del lettore webif — se sono a zero, la richiesta non sta nemmeno raggiungendo OScam dallo STB.
Può OScam connettersi a più server CCcam contemporaneamente?
\nSì. Aggiungi più[reader] blocchi inoscam.server, ciascuno con un'etichetta unica. Assegna lo stesso gruppo a tutti se desideri un instradamento unificato, o gruppi diversi per livelli di accesso separati. Imposta. Assign the same group to all of them if you want unified routing, or different groups for separate access tiers. Set lb_mode = 1 inoscam.conf [global] per far sì che OScam instradi automaticamente ogni richiesta ECM al lettore che risponde più rapidamente. Aggiungilb_save = 1 affinché quei tempi appresi persistano tra i riavvii.
Cosa dovrei cercare quando valuto l'affidabilità di un server CCcam prima di configurarlo?
\nCose chiave da controllare: L'operatore pubblica statistiche di uptime o ha una pagina di stato? Dove si trova il server geograficamente rispetto a te — la posizione del server influisce direttamente sulla latenza di risposta ECM. Quante connessioni simultanee consente l'account? L'operatore fornisce una linea di prova prima di un impegno completo? Esiste una documentazione tecnica sulla configurazione del server? Evita server senza accesso di prova e senza modo di verificare che la configurazione funzioni prima di configurare tutto attorno ad essa.
\nCome posso controllare i log di OScam per confermare che un lettore CCcam si sia autenticato con successo?
\nIn/var/log/oscam/oscam.log o nella vista log del webif, un'autenticazione riuscita mostra righe con l'etichetta del tuo lettore seguite 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. Se hai bisogno di maggiori dettagli, aggiungi temporaneamenteloglevel = 512 a[global] inoscam.conf e riavvia — questo produce un output dettagliato per lettore. Rimuovilo dopo il debug; il volume del log è grande.
OScam supporta la condivisione di schede CCcam su entrambe le piattaforme Linux e embedded (Enigma2)?
\nSì, e lasyntassi di configurazioneoscam.serverè identica su entrambe. Su Enigma2 (Dreambox, VU+), OScam è installato come plugin ipk o opk. I file di configurazione si trovano tipicamente in/etc/tuxbox/config/ o/usr/keys/