Loading...
Guida di installazione e configurazione di OScam Trial 2026

Setup OScam Trial&Guida di configurazione 2026

Configurare un ambiente di provaoscar trialè uno dei compiti più pratici che affronterai se stai testando l'infrastruttura di cardsharing prima di andare online. Che tu stia convalidando la stabilità del server, testando le connessioni dei client o ruotando le credenziali attraverso account con accesso limitato, comprendere come funzionano le carte di prova a livello di protocollo è importante. Questa guida illustra la sintassi di configurazione effettiva, i percorsi dei file e i metodi di debug che la maggior parte della documentazione salta.

Che cosa è OScam Trial e come funziona

Unoscar trialè un meccanismo di test integrato in OScam che consente l'accesso temporaneo alla carta con una data di scadenza definita. Pensalo come una credenziale a tempo limitato che ti consente di convalidare l'intero stack, dalla configurazione del server alla logica di connessione del client, senza impegnarti in un accesso permanente alla carta. Le carte di prova seguono le stesse regole di protocollo delle credenziali permanenti ma includono un timestamp di scadenza che il server applica automaticamente.

Il sistemaoscar trialfunziona a livello di protocollo. Quando un client con una carta di prova si connette, il server controlla il timestamp di scadenza rispetto all'ora UNIX attuale. Se la carta è scaduta, il server rifiuta l'autenticazione prima che vengano elaborati gli ECM richiesti. Questo accade durante l'handshake iniziale, non durante lo streaming, quindi non stai sprecando larghezza di banda su credenziali morte.

Prova vs accesso permanente alle carte

Le carte di prova e l'accesso permanente differiscono nell'applicazione ma non nel metodo di connessione. Entrambi utilizzano la stessa porta, versione del protocollo (di solito CAS, Newcamd o mgcamd a seconda della configurazione), e flusso di autenticazione. La differenza è puramente basata su timestamp: una carta di prova ha un campo expiration_time impostato nei metadati della carta, mentre le carte permanenti non hanno scadenza o ce l'hanno impostata decenni nel futuro.

Alcuni setup implementano il rate limiting specificamente per le carte di prova. Questo non è obbligatorio nel protocollo, è una scelta di chi sta eseguendo il server. Le carte di prova potrebbero raggiungere i limiti delle richieste ECM prima di quelle permanenti, oppure potrebbero essere deprioritizzate durante il carico elevato. Vale la pena testarlo nella tua sandbox prima di presumere che le carte di prova e permanenti si comportino in modo identico.

Meccanica del periodo di prova e scadenza

I periodi di prova sono definiti in timestamp UNIX, non in date leggibili dall'uomo. Una prova di 30 giorni dal 1 gennaio 2026 00:00:00 UTC scadrebbe al timestamp 1767225600 (31 gennaio 2026 00:00:00 UTC). Il server lo memorizza come un numero intero, lo confronta con l'ora dell'epoca attuale ad ogni tentativo di connessione e rifiuta qualsiasi carta in cui current_time > expiration_timestamp.

Il controllo della scadenza avviene continuamente, non solo all'accesso iniziale. Se hai una prova di 30 giorni che scade domenica e un client rimane connesso attraverso la mezzanotte di domenica UTC, il server interromperà quella connessione durante una richiesta ECM una volta che la soglia del timestamp viene superata. Il protocollo non invia una notifica "carta scaduta", rifiuta semplicemente il frame di autenticazione successivo.

Differenze di protocollo tra prova e accesso completo

A livello di protocollo, le carte di prova e quelle permanenti sono identiche fino al controllo della scadenza. Entrambe inviano lo stesso handshake di autenticazione, entrambe analizzano ECM/EMM in modo identico, entrambi supportano gli stessi cipher suite. La gestione del server differisce solo nella logica condizionale: se il controllo di scadenza fallisce, chiudi la connessione.

Alcuni protocolli (determinate implementazioni Newcamd) includono le informazioni di scadenza nella risposta di autenticazione stessa. Ciò consente ai client di visualizzare "la tua prova scade tra X giorni" senza dover calcolare i timestamp. Altri protocolli non forniscono consapevolezza della scadenza lato client, il client sa solo che la carta è morta quando l'autenticazione fallisce.

Configurazione di OScam per il supporto della carta di prova

Per configurare la funzionalitàoscar trialdevi modificare due file: oscam.conf (impostazioni globali) e oscam.user (impostazioni per scheda). I percorsi variano a seconda dell'immagine. Su OpenPli e la maggior parte dei build Enigma2, si trovano in /etc/oscam/. Su alcuni install minimi, si trovano in /config/oscam/. Controlla il tuo file di servizio systemd o script di avvio per confermare.

Ottieni i percorsi effettivi eseguendo:systemctl status oscamoservice oscam status. Cerca la riga ExecStart, mostrerà la directory di configurazione. Se questo non funziona, cerca il processo oscam:ps aux | grep oscame cerca un flag -c che specifica il percorso di configurazione.

Parametri di prova oscam.conf

Il tuo file oscam.conf deve abilitare esplicitamente il supporto delle carte di prova. Trova la sezione [general] o [oscam] e aggiungi queste righe:

[general]

La parte critica per i trial: assicurati che la sezione newcamd (o qualunque protocollo stai utilizzando) sia presente e che la porta stia ascoltando. L'imposizione della prova avviene a livello utente, non in oscam.conf stesso. Non c'è un'impostazione "trial_mode = on", la funzionalità di prova è sempre disponibile.

Se stai testando localmente prima di distribuire, mantieni debug = 127 in modo da vedere ogni tentativo di autenticazione nei log. Questo è prezioso per verificare che la scadenza della prova sia effettivamente controllata. Cambiala in debug = 0 prima della produzione.

Impostazioni di prova del file oscam.user

Qui è dove avviene laoscar trialconfigurazione. Apri /etc/oscam/oscam.user e aggiungi una voce di carta di prova:

[testuser_trial]

Il campo chiave èexpirydatetime. Questo è il timestamp UNIX quando la carta smette di funzionare. Nota che non c'è un parametro "trial_days=30", devi calcolare tu stesso il timestamp o usare uno script.

Il resto della configurazione (pwd, group, au, caid, ident) funziona identicamente per le carte di prova e permanenti. Non stai limitando i canali o la larghezza di banda qui. L'unica differenza è il timestamp di scadenza.

Impostazione delle date di scadenza della prova

Conversione di una data umana in timestamp UNIX per le tue carteoscar trial:

Su Linux, usa il comando date:

date -d "2026-02-28 00:00:00 UTC" +%s

Output: 1747881600

Oppure se devi calcolarlo a livello di programmazione (30 giorni da ora):

python3 -c "import time; print(int(time.time()) + (30 * 86400))"

La formula è semplice: current_unix_time + (days * 86400) = expiration_timestamp. Ci sono 86400 secondi in un giorno. Tutto qui.

Quando aggiungi expirydatetime a oscam.user, ricarica OScam senza riavviare:

systemctl reload oscam

Un reload rilegge il file utente senza interrompere le connessioni attive. Un riavvio uccide tutto. Usa reload per gli aggiornamenti degli utenti di prova.

Configurazione della porta per i server di prova

Le connessioni di prova utilizzano le stesse porte di quelle permanenti per impostazione predefinita. Se stai eseguendo newcamd sulla porta 12000, sia le carte di prova che quelle permanenti si connettono lì. Non esiste una porta di prova separata a meno che non la crei esplicitamente.

Tuttavia, se vuoi l'isolamento per i test, esegui due istanze oscam: una per il test di prova, una per la produzione. Ognuna ha il proprio intervallo di porte e directory di configurazione. Esempio di servizio systemd per un'istanza di prova:

[Unit]

Crea la directory di configurazione /etc/oscam-trial/ con file oscam.conf e oscam.user separati. L'istanza di prova ascolta su una porta newcamd diversa (ad es. 12001) mentre la tua istanza di produzione rimane sulla 12000. Questo mantiene il traffico di test completamente isolato.

Configurazione dei server di test di prova

Prima di distribuire le carteoscar trialin produzione, convalida l'intera configurazione in un ambiente di test. Ciò significa creare un'istanza OScam separata che imita la tua configurazione di produzione ma viene eseguita su porte diverse con log isolati.

Creazione di un ambiente di prova isolato

Inizia copiando il tuo oscam.conf di produzione in una directory di prova:

sudo cp -r /etc/oscam /etc/oscam-trial

Modifica /etc/oscam-trial/oscam.conf e cambia le porte:

[newcamd]

Crea un file utente specifico per la prova con solo carte di test:

sudo nano /etc/oscam-trial/oscam.user

Aggiungi voci di prova con date di scadenza variabili in modo da poter testare diversi scenari:

[trial_expired]

Ora avvia l'istanza di prova:

sudo /usr/bin/oscam -c /etc/oscam-trial/

Verifica che sia in esecuzione sulla porta corretta:

netstat -an | grep 12001

Dovresti vedere:tcp 0 0 0.0.0.0:12001 0.0.0.0:* LISTEN

Test di carte di prova multiple

Crea almeno tre carte di test per la tua convalidaoscar trial:

  1. Già scaduto — Timestamp nel passato (ad es. 2025-12-31). Questo testa che il blocco della scadenza funziona.
  2. Scadenza imminente — 7 giorni da ora. Questo testa il caso edge in cui una carta scade durante i test attivi.
  3. Lunga durata — 90 giorni da ora. Questa è la tua carta di test principale per la convalida completa.

Connetti ognuna alla tua istanza di prova e registra i risultati. La carta scaduta dovrebbe non riuscire immediatamente durante l'autenticazione. La carta in scadenza imminente dovrebbe funzionare ma consentirti di testare il comportamento di riconnessione man mano che la scadenza si avvicina. La carta di lunga durata è il tuo cavallo di battaglia per il test ECM.

Monitoraggio dell'attività della carta di prova

Guarda i log dell'istanza di prova in tempo reale:

tail -f /var/log/oscam-trial.log

Quando il tuo client di test si connette con una carta di prova, vedrai frame di autenticazione. Cerca linee come:

01/15 12:34:56 d34d8f91 [newcamd] login ok (trial_30days)

Quando la carta di prova è scaduta, vedrai:

01/15 12:35:00 d34d8f92 [newcamd] card expired (trial_expired)

Analizza i log per l'attività specifica della prova:

grep -i "trial\|expir" /var/log/oscam-trial.log | tail -20

Questo filtra per mostrare solo le righe che menzionano prove o scadenza, rendendo più facile individuare i problemi nei log dettagliati.

Analisi dei log di prova e debug

I log di OScam sono densi. Concentrati su questi schemi per la convalidaoscar trial:

Accesso di prova riuscito:

login ok (username) - seguito da richieste ECM

Carta di prova scaduta:

card expired O authentication failed - nessun ECM segue

Mancata corrispondenza di protocollo:

protocol version mismatch O unsupported protocol

Rate limiting sulla prova:

ECM requests too frequent O quota exceeded

Abilita livelli di debug più elevati temporaneamente per vedere più dettagli. In oscam.conf, imposta debug = 255 (massima verbosità), riconnetti, quindi abbassalo immediatamente a debug = 0 o 127. Debug = 255 riempie i log molto velocemente.

Esporta i tuoi log di prova dopo ogni sessione di test:

cp /var/log/oscam-trial.log ~/logs/trial-test-$(date +%Y%m%d-%H%M%S).log

Questo archivio ti permette di confrontare il comportamento tra più prove e identificare i modelli.

Risoluzione dei problemi comuni di OScam Trial

I problemi della carta di prova rientrano in pochi schemi. Affrontali sistematicamente.

Carte di prova che si connettono ma non decodificano

La carta si autentica ma le richieste ECM non riescono o non restituiscono CW. Per prima cosa, verifica che la carta non sia effettivamente scaduta:

python3<< 'EOF'

Se la carta è valida, controlla tre cose:

1. I CAID e ident corrispondono a quelli richiesti dal client. Se il tuo oscam.user dicecaid = 0100,0500 ma stai cercando di decifrare un canale 0604, non riesce. Verifica che l'elenco CAID della tua carta copra i canali che stai testando.

2. Il server ha effettivamente CW da restituire. Una carta di prova potrebbe autenticarsi bene ma se non è configurata nessuna fonte CW (un altro server, un lettore di schede locali, ecc.), le richieste ECM timeout. Controlla oscam.servers per assicurarti di avere almeno un provider CW.

3. La versione del protocollo del client corrisponde a quella del server. Se stai usando un client vecchio (ad es. Newcamd 5.0) ma il server richiede il protocollo 5.1, l'autenticazione potrebbe riuscire con un handshake legacy, ma l'analisi ECM non riesce. Le righe di log dovrebbero mostrare la versione del protocollo negoziata.

Se tutti e tre i controlli passano, aumenta il debug ed esegui una singola richiesta ECM:

tail -f /var/log/oscam-trial.log&

Data di scadenza che non applica

La tua carta di prova dovrebbe scadere in una data specifica, ma continua a funzionare. La causa è quasi sempre un problema di formato del timestamp.

Controlla la voce oscam.user:

grep -A 5 "testuser_trial" /etc/oscam/oscam.user

Verifica che expirydatetime sia impostato (non mancante o commentato). Quindi verifica il timestamp stesso:

date -d @1747881600# L'output dovrebbe mostrare la data e l'ora previste

Se la data è sbagliata, hai utilizzato il timestamp sbagliato. Ricalcola:

date -d "2026-02-28 23:59:59 UTC" +%s

Se il timestamp è giusto ma la carta comunque non scade, il reload potrebbe non avere avuto effetto. Forza un riavvio completo:

systemctl stop oscam

Controlla che la nuova configurazione sia caricata:

grep "expirydatetime" /etc/oscam/oscam.user

Un altro caso limite: fuso orario. Se imposti expirydatetime a 1747881600 pensando che sia l'ora locale, ma il server è in esecuzione in UTC, la scadenza è spenta di ore. Utilizza sempre esplicitamente i timestamp UTC:

date -d "2026-02-28 00:00:00 UTC" +%s

Accesso di prova che cade a metà sessione

La carta funziona per 10 minuti, poi improvvisamente si disconnette. Ciò di solito significa che il periodo di prova è terminato mentre il client era connesso.

Controlla il momento esatto della disconnessione nei log:

grep "trial_30days\|connection closed\|client disconnect" /var/log/oscam.log | tail -20

Nota il timestamp. Se corrisponde alla data di scadenza della prova, quella è la tua risposta. Il server stava controllando la scadenza e ha interrotto la connessione una volta che il timestamp è stato superato.

Se la disconnessione avviene in un momento casuale (non scadenza), è un problema diverso:

  • Timeout di rete: Controlla oscam.conf persocket_timeout. L'impostazione predefinita è 5 secondi. Se le richieste ECM sono lente, aumentala a 15 o 30.
  • Rate limiting: Le carte di prova potrebbero raggiungere i limiti delle richieste. Cerca "quota exceeded" nei log.
  • Arresto anomalo del server: Controlla se oscam è andato in crash e riavviato. Cerca righe di avvio nel log.

Timeout della porta sulle connessioni di prova

Il client non riesce a raggiungere il server di prova. Per prima cosa, testa la connettività della porta:

nc -zv 192.168.1.100 12000

Se rifiutato, verifica che oscam stia ascoltando:

netstat -an | grep 12000

Se non viene visualizzato nulla, oscam non è in esecuzione o non sta ascoltando su quella porta. Controlla la porta corretta in oscam.conf e riavvia:

systemctl restart oscam

Se la porta è aperta ma la connessione timeout (non rifiutata), è un problema di firewall. Controlla iptables:

sudo iptables -L -n | grep 12000

Aggiungi una regola se necessario:

sudo iptables -A INPUT -p tcp --dport 12000 -j ACCEPT

Se stai testando in remoto e hai ancora timeout, controlla il tuo elenco di autorizzazione oscam.conf:

[newcamd]

L'IP del tuo client deve rientrare in uno degli intervalli consentiti. Se è una connessione WAN, aggiungila esplicitamente o usa una VPN.

Miscelazione di carte di prova e permanenti sullo stesso server

L'esecuzione di carte di prova e permanenti su una singola istanza OScam va bene, ma guarda due problemi:

Problema 1: Differenze nella versione del protocollo. Se le tue carte permanenti sono tutte il protocollo 5.1 ma aggiungi una carta di prova da una fonte legacy (protocollo 5.0), il client potrebbe dover cambiare versioni a metà sessione. Questo causa brevi disconnessioni. Testa la compatibilità del protocollo delle tue carte di prova prima di distribuire.

Problema 2: Conflitti di priorità CW. Se hai più server configurati in oscam.servers e alcuni servono carte di prova mentre altri servono carte permanenti, le richieste potrebbero instradare verso la sorgente sbagliata. Una carta di prova che richiede un CW da un server che gestisce solo carte permanenti timeout.

Soluzione: Utilizzare definizioni di gruppo separate in oscam.user:

[trial_card]

Quindi in oscam.servers, definisci quali sorgenti servono quali gruppi. Questo assicura che le carte di prova non intasino le sorgenti solo permanenti.

Durata della carta di prova e gestione del rinnovo

Gestione delle durate della cartaoscar trialsu larga scala richiede automazione. Gli aggiornamenti manuali funzionano per 2-3 carte ma si interrompono rapidamente.

Calcolo della scadenza della prova

La formula è sempre: current_unix_timestamp + (days * 86400) = expiration_timestamp

Una rapida riga Python per qualsiasi durata della prova:

python3 -c "import time; days=30; print(int(time.time()) + (days * 86400))"

Oppure come funzione per uno script:

#!/bin/bash

Utilizzo:

./calc_expiry.sh 30

Usa questo negli aggiornamenti di oscam.user:

expirydatetime = $(./calc_expiry.sh 30)

Estensione dei periodi di prova a livello di programmazione

Script per rinnovare la scadenza di una carta di prova aggiungendo giorni al timestamp corrente:

#!/bin/bash

Eseguilo:

./renew_trial.sh trial_30days 30

Monitoraggio delle carte in scadenza

Crea uno script di monitoraggio che ti avverte prima che le carte di prova scadano:

#!/bin/bash&& [ $time_until -gt 0 ]; then

Eseguilo come processo cron giornaliero:

0 9 * * * /root/check_expiring_trials.sh >> /var/log/trial_check.log 2>&1

Questo viene eseguito ogni mattina alle 9 e registra eventuali carte di prova in scadenza o scadute.

Script di rotazione della prova automatizzati

Per ambienti di produzione con molte carte di prova, automatizza la rotazione. Questo script cicla attraverso un elenco di utenti di prova e estende le loro date di scadenza:

#!/bin/bash

Programmalo mensilmente:

0 0 1 * * /root/auto_rotate_trials.sh >> /var/log/trial_rotation.log 2>&1

Il primo di ogni mese, tutte le carte di prova ricevono una nuova finestra di 30 giorni. Questo mantiene la sandbox di test sempre verde.

Per la rotazione per scheda (date di scadenza diverse per schede diverse), utilizza un input CSV:

cat > /root/trial_schedule.csv<< 'EOF'< /root/trial_schedule.csv
systemctl reload oscam

This lets you stagger expirations so you're not managing all trials at once.

FAQ

Can I run a trial server on the same machine as my permanent OScam instance?

Yes, but you need to isolate them properly. Run two separate oscam processes, each with its own config directory (/etc/oscam/ and /etc/oscam-trial/), listening on different ports (12000 and 12001). Create separate systemd services so they restart independently. If trial testing crashes, it won't take down production. Isolation also prevents port conflicts and keeps logs separate. The trade-off is slightly higher CPU and memory usage—negligible on modern hardware. Ensure file permissions are set correctly: chown -R oscam:oscam /etc/oscam-trial/ so the trial process can read its config without privilege issues.

What's the difference between oscam.conf trial settings and oscam.user trial parameters?

oscam.conf contains global protocol settings and port configuration. oscam.user contains per-card credentials and expiration dates. There's no "trial mode" flag in oscam.conf—trial functionality is always enabled. All the trial-specific behavior lives in oscam.user's expirydatetime field. If a card has an expirydatetime set, it's a trial card. If it's missing or set to a far-future date, it's permanent access. The precedence rule is simple: oscam.conf defines how connections work (ports, protocols, debug levels), oscam.user defines who can connect and for how long. You can't enable or disable trials globally in oscam.conf—you control trials purely by setting expiration timestamps per user.

How do I enforce trial expiration without manually kicking users?

OScam checks expiration automatically on every authentication attempt. When a client connects, the server compares the card's expirydatetime against the current UNIX timestamp. If current_time > expirydatetime, the server rejects authentication before any ECM is processed. This happens without manual intervention. The check runs continuously, not just at initial login. If a card expires while a client is actively decoding, the next ECM request after the expiration timestamp triggers the rejection and the connection drops. You don't need to do anything—the protocol enforces it. To verify expiration checking is working, watch the logs: grep -i "expir" /var/log/oscam.log and trigger authentication after the expiration date passes. You should see "card expired" or "authentication failed" messages.

Why do trial cards sometimes skip ECM requests or decode intermittently?

Three common causes: (1) Rate limiting—servers often restrict ECM request frequency for trial cards more aggressively than permanent ones. If you're sending requests faster than the server allows, some get dropped. Check oscam.conf for request rate limits and increase them for testing. (2) Load balancing—if you have multiple CW sources, some might be configured to prioritize permanent cards. ECM requests from trial cards might queue longer or timeout. (3) Protocol prioritization—certain protocol implementations deprioritize trial frames. This isn't a bug; it's intentional. Trial cards might not have the same bandwidth guarantees as permanent ones. The fix is usually to reduce load during testing, use a dedicated trial-only CW source, or adjust rate limiting in oscam.conf: increase socket_timeout from 5 to 15+ seconds to give requests more time to complete.

What's the proper way to migrate trial users to permanent access without disconnecting them?

Edit oscam.user to change the trial user's expirydatetime to a far-future value (e.g., 2050). Then reload (not restart) the config: systemctl reload oscam. The reload re-reads oscam.user while keeping active connections alive. The upgraded user won't see any disconnection. You can also create a new permanent user and have the client switch credentials at the next scheduled reconnect, but reload-based upgrade is cleaner. Test this on a dummy trial card first to ensure you're not disconnecting real users. If something goes wrong, reload again with the old settings and the trial card reverts. Do NOT use systemctl restart oscam during this—that kills all active connections and forces clients to reconnect from scratch, defeating the purpose of seamless migration. After reload, wait a few seconds and check logs to confirm the user's status updated: grep "username" /var/log/oscam.log | tail -5.

Can I monitor which trial cards are actually being used vs abandoned?

Yes. Parse oscam.log for the last authentication timestamp of each trial user. A card that hasn't logged in for 30 days is abandoned. Example grep:

grep "trial_" /var/log/oscam.log | grep "login ok" | tail -1
# Output: 01/20 14:32:10 d34d8f91 [newcamd] login ok (trial_30days)

That timestamp shows the most recent successful login for trial_30days. If it's old, the card is unused. Build a script to extract and compare:

#!/bin/bash
for card in $(grep "^\[trial_" /etc/oscam/oscam.user | sed 's/\[//;s/\]//' ); do last_login=$(grep "$card" /var/log/oscam.log | grep "login ok" | tail -1 | awk '{print $1, $2}') if [ -z "$last_login" ]; then echo "$card: NEVER USED" else echo "$card: Last login at $last_login" fi
done

If you're using oscam's built-in stats database, query it directly (oscam saves stats to /var/log/ or a database depending on config). Check activity in the monitor interface (port 988 by default, accessible via telnet) for real-time connection counts. Cards with zero connection history are abandoned.