Loading...

Confronto delle impostazioni OSCam: Metodi di configurazione& Protocolli

Se sei arrivato fin qui, sai già che i client solo CCcam sono un vicolo cieco e OSCam è l'opzione flessibile. Ma "installare OSCam" non è una decisione — sono quattro o cinque. Binario o sorgente? Docker o bare metal? Emu o build standard? CCcam, newcamd, cs378x, o mgcamd per il tuo protocollo? Questo confronto delle impostazioni OSCam ti guida attraverso ogni bivio in modo da non trovarti a tre ore da una build prima di renderti conto di aver scelto il percorso sbagliato per il tuo hardware.

Metodi di installazione OSCam a confronto: Binario, Sorgente e Docker

Il modo più veloce per far funzionare OSCam è prendere un binario precompilato — pacchetti SimpleBuild o una build feed se sei su Enigma2. Il problema è che erediti qualsiasi flag del modulo che il pacchetto ha incorporato. Se il tuo binario non è stato compilato con il supporto per MODULE_CCCAM o CS_CACHEEX, nessuna quantità di modifica della configurazione lo farà apparire. Eseguioscam -V dopo l'installazione e controlla i moduli incorporati prima di assumere che qualcosa funzioni.

Compilare dalla sorgente ti dà il pieno controllo. Puoi scaricare la sorgente SVN, eseguire./config.sh, e attivare esattamente ciò di cui hai bisogno: READER_NAGRA, READER_VIACCESS, MODULE_CCCAM, MODULE_NEWCAMD, WEBIF, CS_CACHEEX, CS_CACHEEX_AIO. Poimake e stai compilando contro il tuo stesso toolchain. Questo richiede più tempo e richiede build-essential, libssl-dev e libpcsclite-dev almeno sui sistemi basati su Debian, ma è l'unico percorso se hai bisogno di una combinazione insolita di moduli o stai mirando a hardware per cui nessun altro costruisce.

Binario precompilato (pacchetti SimpleBuild / feed)

Su box Enigma2, i binari di solito si trovano in/usr/bin/oscam o/var/bin/oscam, con la configurazione che si trova sotto/etc/tuxbox/config/oscam/. Su Linux generico, i pacchetti feed di solito predefiniscono a/var/keys/ per la configurazione. Questa è la scelta giusta se non stai facendo nulla di esotico — vuoi canali che decodifichino stasera, non una build personalizzata domani.

Compilazione dalla sorgente SVN con make config

Le build da sorgente sono non negoziabili se vuoi peer di cacheex, un tema webif specifico, o moduli lettori che il pacchetto ha saltato. Aspettati una build di 5-15 minuti su un Raspberry Pi 4, secondi su un moderno box x86. Tieni documentate le tue scelte in config.sh da qualche parte — sei mesi dopo non ricorderai perché manca cacheex.

Distribuzione di container Docker

Docker isola le dipendenze di OSCam dal tuo host, il che è ottimo su server x86 che eseguono altri servizi. Le immagini OSCam basate su Alpine mantengono l'impronta piccola. Il compromesso: i lettori di smartcard USB (smargo, phoenix) necessitano di passthrough del dispositivo, e quella mappatura si rompe al riavvio dell'host se il percorso del dispositivo cambia da/dev/ttyUSB0 a/dev/ttyUSB1 — pin per ID dispositivo nel tuo docker-compose, non per percorso, o dovrai inseguire questo ogni volta che il kernel enumera USB in un ordine diverso.

OSCam-emu vs build standard di OSCam

OSCam-emu aggiunge supporto per softcam.key e emulazione basata su constcw oltre alla funzionalità standard di lettura delle schede. Se la tua configurazione è puramente basata su schede fisiche o peer-share, OSCam standard è più leggera, ha una superficie di attacco più piccola e non ha bisogno del frequente cambiamento di file chiave richiesto dalle build emu. Raggiungi emu solo se fai effettivamente affidamento su CW emulati.

Confronto delle strutture dei file di configurazione OSCam

OSCam suddivide la configurazione in diversi file, e comprendere cosa si trova dove è metà della battaglia. Questa è la parte di qualsiasi confronto delle impostazioni OSCam che confonde di più le persone, perché i file interagiscono — un lettore in un file è inutile senza un account corrispondente in un altro.

Impostazioni globali e di monitoraggio in oscam.conf

oscam.conf contiene il[globale] blocco (logfile, cachedelay, clienttimeout),[webif] — porta predefinita 8888, e sezioni di protocollo come[cs378x],[newcamd] con la sua chiave DES, e[cccam] sulla porta 12000. Questo è il file di comportamento a livello di server. Impostahttpuser ehttppwd in[webif] immediatamente — un webif non autenticato su 8888 esposto a Internet è un vero problema, non teorico, poiché espone lo stato del lettore e può consentire a un attaccante di riconfigurare la tua box.

definizioni del lettore oscam.server

oscam.server è dove vive ogni[lettore] blocco — etichetta, protocollo (cccam/mgcamd/interno), percorso del dispositivo, chiave, gruppo, caid e ident. Un blocco di lettore di schede fisiche minimo appare così:

[lettore]





controllo dell'account e del gruppo oscam.user

oscam.user associa gli account dei client con i gruppi per limitare quali CAID possono accedere. Un account minimo funzionante:

[account]



Quelgruppo = 1 deve corrispondere a quello del lettoregruppo = 1 in oscam.server. Questa discrepanza nel numero di gruppo è, nella mia esperienza, la ragione più comune per cui le persone si connettono bene ma ottengono zero canali decodificati — tutto sembra sano nell'interfaccia web, il client si autentica e non succede nulla perché i numeri di gruppo non si sovrappongono. Controlla questo prima di toccare qualsiasi altra cosa.

mappatura di oscam.services e oscam.dvbapi

oscam.services mappa nomi di canali leggibili dall'uomo a combinazioni di CAID/providere/SID, utile per il logging e il filtraggio.oscam.dvbapi gestisce la mappatura del demuxer locale quando OSCam alimenta direttamente il dvbapi di un ricevitore invece di un client di rete. I permessi su tutti questi file dovrebbero essere 0644, di proprietà dell'utente con cui OSCam viene eseguito. E ricorda: OSCam ricarica la maggior parte delle impostazioni sukill -SIGHUP $(pidof oscam) senza un riavvio completo — ma se hai introdotto un errore di sintassi, il caricamento fallisce silenziosamente e la vecchia configurazione continua a funzionare. Controlla sempre il log dopo un SIGHUP per confermare che abbia effettivamente registrato le tue modifiche.

Confronto dei protocolli: CCcam vs newcamd vs cs378x vs mgcamd

Scegliere un protocollo riguarda davvero dove sta andando la connessione e quali condizioni di rete affronterà. Questa è la sezione di qualsiasi confronto di configurazione di oscam che viene saltata più spesso, ed è la parte che determina se la tua configurazione sopravvive a un collegamento WAN scarso.

protocollo CCcam (porta 12000) — controllo nodeid e hop

CCcam rimane il protocollo più compatibile — praticamente ogni client lo parla. Funziona sulla porta 12000 per impostazione predefinita, utilizza nodeid per il rilevamento dei loop e ti consente di impostare limiti di hop per controllare la profondità della condivisione. Lo svantaggio: la struttura del protocollo di CCcam espone le informazioni sull'albero di condivisione a chiunque abbia accesso al lettore, il che è una considerazione reale se stai collaborando con parti di cui non ti fidi completamente.

newcamd (porte per CAID criptate in DES)

newcamd cripta la sessione con una chiave DES che definisci in[newcamd] — e quella chiave deve essere esattamente di 14 byte in esadecimale. Se sbagli la lunghezza, l'autenticazione fallisce silenziosamente senza un errore ovvio nel log oltre a una connessione rifiutata; controlla due volte la lunghezza della stringa della chiave prima di passare un'ora a fare debug altrove. newcamd è solido su WAN e di solito ha bisogno di una porta per gruppo CAID, quindi pianifica la tua allocazione di porte (15000, 15001 e così via) prima di configurare i client.

cs378x — camd35 su TCP

cs378x è camd35 che funziona su TCP invece di UDP, ed è la mia raccomandazione predefinita per i peer remoti. Basso overhead, amichevole con i firewall poiché è un flusso TCP standard, e tollera NAT senza gestione speciale. Le porte sono definite dall'utente, comunemente nella gamma 34000+ — nulla è fissato dal protocollo stesso, è qualunque cosa tu imposti in oscam.conf.

mgcamd / considerazioni UDP cs357x

cs357x di mgcamd funziona su UDP, il che significa un overhead inferiore per pacchetto ma una reale sensibilità alla perdita di pacchetti — non c'è ritrasmissione a livello di protocollo, quindi un collegamento WAN con perdita di pacchetti si traduce in scatti o ECM persi. Va bene su una LAN stabile, rischioso su Internet aperto. Se stai collegando due siti tramite una connessione consumer, non cercare prima mgcamd su UDP.

Come regola generale: client locale sulla stessa macchina → interno/dvbapi, nessun protocollo di rete necessario. Peer remoto su Internet → cs378x o newcamd. Client legacy che parla solo una cosa → CCcam, accettando il compromesso dell'albero di condivisione. Per il peering cacheex specificamente, la modalità 1 inoltra tutto (massima larghezza di banda, latenza più bassa per la prima decodifica), la modalità 2 inoltra solo CW richieste (larghezza di banda moderata), e la modalità 3 è push-only verso peer specifici (larghezza di banda più bassa, utilizzata per un fan-out controllato). La modalità 1 aumenterà notevolmente l'uso della tua larghezza di banda upstream con più di un paio di peer — l'ho visto raddoppiare il traffico in uscita rispetto alla modalità 2 su un lettore occupato.

Considerazioni hardware e prestazioni tra le configurazioni

Dove esegui OSCam è importante tanto quanto come lo hai configurato. Una scelta di protocollo che va bene su un server dedicato può soffocare su un ricevitore poco potente.

Ricevitori embedded (Enigma2 MIPS/ARM) vs server x86

Eseguire OSCam direttamente sulla tua box Enigma2 è comodo — nessun hardware extra, configurazione proprio lì sotto/etc/tuxbox/config/. Ma sei limitato da qualunque RAM e CPU abbia quella box, di solito molto meno di un PC di riserva, e OSCam muore ogni volta che riavvii il ricevitore per un aggiornamento del firmware. Se non esiste un binario precompilato per la tua immagine specifica, stai cross-compilando con una toolchain MIPS o ARM (come la toolchain OpenEmbedded che corrisponde al kernel del tuo ricevitore), il che è fattibile ma richiede tempo reale di configurazione. Un server x86 dedicato o un host Docker gestisce più client concorrenti, sopravvive ai riavvii del ricevitore in modo indipendente ed è la scelta migliore una volta che stai collaborando con cacheex o servendo più di un paio di client.

Interfacce lettore di smartcard (phoenix, smargo, interno)

I lettori Phoenix e smartmouse necessitano di impostazioni correttemhz ecardmhz in oscam.server — 357/357 è il classico default ISO7816, ma alcune schede vogliono 600 per cardmhz mentre rimangono a mhz=357. Se hai schede miste sulla stessa box — una che necessita di 357, un'altra che vuole 600 — imposta queste per lettore nei loro singoli[reader] blocchi, non globalmente; una discrepanza globale farà funzionare una scheda e l'altra darà costantemente errori CRC. I lettori Smargo sono generalmente più indulgenti qui ma necessitano della giusta regola udev affinché il nodo del dispositivo sia coerente.

CPU, tempo ECM e limiti di client concorrenti

Un tempo di risposta ECM sano dovrebbe essere ben al di sotto di 1000ms — se vedi regolarmente risposte di 2000ms+, qualcosa non va, che si tratti di una scheda sovraccarica, di una cattiva connessione del lettore o di troppi client che colpiscono un lettore. Impostamaxidle ereconnecttimeoutin modo sensato in oscam.server in modo che le connessioni morte vengano eliminate invece di accumularsi. I peer CS_CACHEEX aggiungono un carico CPU reale poiché ogni connessione peer significa elaborare e inoltrare continuamente il traffico CW — su un Raspberry Pi 3 terrei basso il numero di peer; su un moderno box x86 non è un problema fino a quando non si arriva a dozzine di peer.

Persistenza, registrazione e watchdog

Ruota il tuo logfile — OSCam riempirà felicemente un disco con registrazioni a livello di debug per settimane se lo lasci fare, usa logrotate con una rotazione settimanale e compressione. Esegui OSCam sotto un supervisore di processo (unità systemd conRestart=on-failureè il più semplice) piuttosto che fare affidamento esclusivamente sulla logica di riconnessione di OSCam, in modo che un crash ti riporti effettivamente online invece di un processo silenziosamente morto.

Come valutare genericamente una fonte di schede/server

Qualunque cosa tu stia collegando al tuo lettore dall'altra parte, giudicalo allo stesso modo in cui giudicheresti qualsiasi servizio tecnico — con criteri oggettivi e misurabili, non con affermazioni di marketing.

Uptime e latenza ECM come criteri oggettivi

Osserva i tuoi tempi di risposta ECM nell'interfaccia web di OSCam per alcuni giorni, specialmente durante le serate di punta. Una fonte che va bene alle 14:00 ma schizza a tempi ECM di 3000ms+ alle 21:00 ti sta mostrando un problema di sovrasvendita, non un errore di configurazione da parte tua — troppi clienti che condividono troppi pochi slot di lettura. Questo è diverso da una vera misconfigurazione, che tende a manifestarsi immediatamente e in modo coerente piuttosto che solo sotto carico.

Trasparenza del protocollo e CAID

Una fonte disposta a darti valori CAID e ident esatti, limiti di hop e i dettagli del protocollo di cui hai bisogno per il tuo blocco oscam.server si comporta in modo professionale. Risposte vaghe o rifiuto di specificare quali CAID siano effettivamente serviti è un segnale per cercare altrove.

Reattività del supporto e documentazione della configurazione

Quanto velocemente e chiaramente ricevi una risposta quando il tuo lettore mostra una connessione ma zero decodifica ti dice molto. La documentazione che corrisponde alla struttura effettiva del tuo file di configurazione — non screenshot generici — vale più di qualsiasi affermazione di uptime che non puoi verificare in modo indipendente.

Dovrei eseguire OSCam da un binario precompilato o compilare dal sorgente?

Il binario è il più veloce ed è ottimo se il pacchettizzatore ha abilitato i moduli di cui hai bisogno. Compila dal sorgente quando hai bisogno di flag specifici come cacheex, lettori extra o supporto webif, o quando stai costruendo per una CPU insolita. Controlla quali moduli sono abilitati conoscam -Vo la pagina delle informazioni sulla build webif prima di assumere che una funzionalità sia disponibile.

Quale protocollo è migliore per una connessione OSCam remota su Internet?

Per le connessioni WAN, cs378x (camd35 su TCP) o newcamd sono le scelte migliori — entrambi gestiscono NAT e firewall in modo pulito, e newcamd aggiunge crittografia DES. Evita mgcamd/cs357x basati su UDP su collegamenti con perdita o alta latenza poiché non c'è ritrasmissione. CCcam funziona ovunque ma espone i dettagli dell'albero di condivisione, quindi cambia le porte predefinite e usa chiavi forti indipendentemente dal protocollo che scegli.

Perché il mio lettore OSCam e l'utente si connettono ma nessun canale si decodifica?

Questo è quasi sempre un disallineamento di gruppo tra ilgroup=del lettore in oscam.server e ilgroup=dell'account in oscam.user, o un CAID/ident che non è autorizzato per quell'account. Conferma cheau=punta al nome del lettore corretto, verifica che i CAID corrispondano e controlla il log del lettore nell'interfaccia web per il motivo specifico del rifiuto ECM piuttosto che indovinare.

Quali sono le porte OSCam predefinite che devo aprire?

Webif funziona su 8888, CCcam su 12000, cs378x è tipicamente impostato nella fascia 34000+ a seconda della tua configurazione, e newcamd ha bisogno di una porta per gruppo CAID, spesso a partire da circa 15000. Nessuna di queste tranne CCcam e webif è hardcoded — sono quelle che hai definito in oscam.conf. Inoltra solo le porte che stai effettivamente utilizzando e metti l'autenticazione di base su webif prima che tocchi Internet.

Ho bisogno di una build OSCam-emu?

Solo se fai affidamento su chiavi emulatori o gestione constcw tramite softcam.key piuttosto che su una scheda fisica o condivisa. Per la lettura pura di schede o condivisione peer, OSCam standard è più leggero, ha una superficie di attacco più piccola e non ha bisogno di aggiornamenti frequenti delle chiavi. Le build Emu vengono aggiornate più spesso per un motivo — è una manutenzione extra di cui non hai bisogno se non le stai usando.

Posso eseguire OSCam sul mio ricevitore Enigma2 invece di un server separato?

Sì, tramite pacchetti feeds o SimpleBuild, con configurazione sotto/etc/tuxbox/config/. È il percorso più conveniente ma sei limitato dalla CPU e dalla RAM del ricevitore, e OSCam si arresta ogni volta che la box si riavvia per un aggiornamento del firmware. Un server x86 dedicato o un host Docker è la scelta migliore una volta che stai servendo più clienti o eseguendo il peer cacheex.