CCcam Server + OScam Client Konfigurationsleitfaden
Um eine funktionierende CCCam-Server-OSCam-Client-Konfiguration zu erhalten, reicht es nicht aus, einfach einen [reader]-Block in eine Datei einzufügen und auf das Beste zu hoffen. Protokolldetails, Gruppenrouting, Versionszeichenfolgen und die Konfiguration des Downstream-Listeners müssen alle korrekt eingestellt sein – und die meisten Anleitungen lassen die Hälfte davon aus. Diese hier nicht. Im Folgenden finden Sie alles, was Sie benötigen, von der Erklärung des TCP-Handshakes bis hin zum Betrieb von OScam als gehärtetem Systemd-Dienst.
Wie die CCcam-zu-OScam-Kommunikation funktioniert
Bevor Sie Konfigurationsdateien bearbeiten, müssen Sie genau verstehen, was über die Netzwerkverbindung abläuft. CCcam und OScam sind zwei separate Softwareprogramme, die ein gemeinsames Protokoll verwenden. OScam verbindet sich mit dem CCcam-Server – nicht umgekehrt.
Überblick über den CCcam-Protokoll-Handshake
Wenn OScam eine Verbindung zu einem CCcam-Server herstellt, findet zunächst ein SHA1-basierter Challenge-Response-Handshake statt. Der Server sendet einen 16 Byte großen Zufallswert (Seed), der Client berechnet daraus zusammen mit Benutzername und Passwort einen Hashwert. Dieser Hashwert dient der Authentifizierung der Sitzung. Passwörter werden niemals im Klartext übertragen.
Nach der Authentifizierung sendet der Server eine Freigabeliste – alle CAIDs und Provider-IDs, auf die er Zugriff hat. OScam speichert diese intern und verwendet sie, um zu entscheiden, an welches Lesegerät ECM-Anfragen weitergeleitet werden. Die Verbindung bleibt dauerhaft bestehen; ECM-Anfragen werden empfangen, entschlüsselte ECW-Antworten werden zurückgesendet.
Was der Lesetyp „cccam“ von OScam tatsächlich bewirkt
Das OScam-Reader-Modul mit protocol = cccam ist eine reine Client-Implementierung. Es kommuniziert ausgehend mit einem Server über das CCcam-Protokoll. OScam stellt in dieser Konfiguration keinen CCcam-Server-Port bereit – es ist kein eingehender CCcam-Listener vorhanden. Dieser ist eine völlig separate Angelegenheit (Abschnitt [cccam] in der oscam.conf, den Sie hier nicht verwenden).
Der Reader übernimmt die Verbindungsverwaltung, die Wiederherstellung der Verbindung bei Verbindungsabbrüchen, das Parsen der Freigabeliste und die ECM-Weiterleitung. Man kann ihn sich als Treiber für eine Remote-Karte vorstellen, die sich zufällig auf einem fremden Server befindet.
Port 12000 und nicht standardmäßige CCcam-Ports erklärt
Der Standard-Serverport von CCcam ist 12000/TCP . Dieser Port ist in die ursprüngliche CCcam-Binärdatei einkompiliert und wird von den meisten Servern verwendet. Häufig werden jedoch auch nicht standardmäßige Ports (13000, 16000, 10000 usw.) genutzt – Betreiber ändern diese, um automatische Portscanner zu umgehen oder mehrere Instanzen gleichzeitig zu betreiben.
Der Port, den Ihnen Ihr Serverbetreiber zuweist, wird in die device Eingabezeile eingetragen. Gehen Sie niemals von Port 12000 aus. Überprüfen Sie dies immer. Eine Verbindung zum falschen Port führt sofort zu einer eindeutigen Fehlermeldung „Verbindung abgelehnt“, die tatsächlich einfacher zu debuggen ist als ein Authentifizierungsfehler.
Warum OScam einen dedizierten Reader-Eintrag pro CCcam-Server benötigt
Jeder [reader] -Block in oscam.server repräsentiert eine persistente TCP-Verbindung zu einem CCcam-Server. Bei zwei CCcam-Servern benötigen Sie zwei Reader-Blöcke mit eindeutigen Bezeichnungen. Der Load Balancer von OScam behandelt diese dann als separate Quellen und leitet ECM-Anfragen an den Server weiter, der am schnellsten antwortet.
Der Versuch, zwei Serveradressen in einen Leseblock zu quetschen, funktioniert nicht. Ein Lesegerät, eine Verbindung, ein Server. Das ist das Prinzip.
OScam oscam.server-Konfiguration für einen CCcam-Leser
Die Datei oscam.server befindet sich bei den meisten Linux-Installationen unter /etc/oscam/oscam.server . Bei Enigma2-Images liegt sie häufig unter /etc/tuxbox/config/oscam.server oder /usr/keys/oscam.server . Die Syntax ist unabhängig vom Speicherort identisch.
Mindestanforderungen an die Anweisungen für einen funktionierenden CCcam-Leser
Sie benötigen mindestens: label , protocol , device , user , password und group . Alles andere ist optional, aber für die Stabilität dringend empfohlen. Ein minimaler Block stellt zwar eine Verbindung her, ohne die zusätzlichen Anweisungen treten jedoch Probleme mit Leerlauf-Timeouts und fehlenden Kanälen auf.
Vollständig annotierter oscam.server-Block mit allen relevanten Schlüsseln
[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 = 0Ersetzen[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
Ersetzen SERVER_IP , YOUR_USER und YOUR_PASS durch die Werte, die Ihnen Ihr Serverbetreiber mitgeteilt hat. Alle anderen Werte sind sinnvolle Standardwerte für den Produktivbetrieb. Die einzelnen Zeilen bewirken Folgendes:
- Bezeichnung – Eindeutiger Name für diesen Reader. Wird in Webif und Protokollen angezeigt. Wählen Sie einen aussagekräftigen Namen, insbesondere wenn Sie mehrere Reader verwenden.
- Protokoll – Gibt OScam an, welcher Verbindungstreiber verwendet werden soll.
cccamfür Standard-CCcam-Server. - Gerät – IP-Adresse/Hostname und Port, durch Komma getrennt. Keine Leerzeichen um das Komma herum.
- Benutzername/Passwort – Anmeldedaten genau wie angegeben. Groß-/Kleinschreibung beachten.
- cccversion – Die CCcam-Versionszeichenfolge, die OScam während des Handshakes übermittelt. Server können diese überprüfen.
- ccckeepalive – Sendet periodische Pings über inaktive Verbindungen. Auf 1 setzen, es sei denn, Ihr Server lehnt Keepalives explizit ab.
- Inaktivitätstimeout – Sekunden ohne ECM-Aktivität, bevor OScam die Verbindung als veraltet betrachtet und wiederherstellt. 30 Sekunden sind sinnvoll.
- reconnecttimeout – Sekunden, die nach einem Verbindungsabbruch gewartet wird, bevor ein erneuter Verbindungsversuch unternommen wird. Dieser Wert sollte auf 30 oder niedriger eingestellt sein.
- Gruppe – Lesergruppennummer. Muss mit der Gruppe in Ihren
oscam.user-Einträgen übereinstimmen, sonst werden ECMs hier nicht weitergeleitet. - cccmaxhops – Maximale Anzahl an Hops, die von der Share-Liste des Servers akzeptiert werden. Mehr dazu weiter unten.
- cccwantemu – Nur auf 1 setzen, wenn der Server emulierte Karten freigeben soll. Normalerweise 0.
- cccos / ccchops – Überschreiben des gemeldeten Betriebssystems und der Hop-Anzahl im Handshake. Auf 0 belassen, es sei denn, der Server erfordert bestimmte Werte.
Einstellung 'protocol = cccam' vs 'protocol = cccam2'
cccam2 ist eine interne, erweiterte Variante des CCcam-Protokolls, die in OScam implementiert ist. Sie bietet Funktionen zur Aushandlung von Freigabelisten und zusätzlichen Metadatenaustausch. Der Haken: Sie funktioniert nur korrekt, wenn beide Endpunkte OScam verwenden. Ein echter CCcam-Server (auf dem die eigentliche CCcam-Binärdatei ausgeführt wird) versteht die cccam2-Erweiterungen nicht und lehnt die Verbindung entweder ab oder verhält sich unvorhersehbar.
Faustregel: Verwenden Sie protocol = cccam für alle Systeme, die die CCcam-Serversoftware nutzen. Verwenden Sie cccam2 nur in OScam-zu-OScam-Konfigurationen. Im Zweifelsfall beginnen Sie mit cccam .
Die 'device'-Direktive: Hostname- und Port-Syntax
Standard-IPv4 oder Hostname: device = myserver.example.com,12000
IPv6-Adressen erfordern die Schreibweise mit eckigen Klammern: device = [2001:db8::1],12000 . Werden die eckigen Klammern bei IPv6 weggelassen, kann OScam die Adresse nicht korrekt analysieren – dies ist ein häufiger Fehler bei reinen IPv6-VPS-Konfigurationen.
Befindet sich Ihr Server hinter einem Reverse-Proxy oder Load Balancer, entspricht die vom CCcam-Server angezeigte IP-Adresse möglicherweise nicht Ihrer tatsächlichen Client-IP-Adresse. Verwendet der Server eine IP-Whitelist, schlägt die Authentifizierung selbst mit korrekten Anmeldedaten fehl. Dies ist ein serverseitiges Konfigurationsproblem – wenden Sie sich an den Betreiber.
Felder für Benutzername, Passwort und CCC-Version
Die Anmeldedaten unterscheiden zwischen Groß- und Kleinschreibung und müssen exakt mit den Servereinstellungen übereinstimmen. Ein Leerzeichen am Ende des Passwortfelds führt zu einem stillen Authentifizierungsfehler – achten Sie daher beim Kopieren und Einfügen darauf.
Die Zeichenkette cccversion ist die Versionsangabe, die OScam dem Server während des Handshakes übermittelt. Gängige Serverwerte sind: 2.3.0 , 2.1.4 , 2.2.1 . Wenn der Server eine bestimmte Version erzwingt und Ihre nicht übereinstimmt, wird die Verbindung direkt nach der Authentifizierung getrennt – ohne Fehlermeldung, die eindeutig auf einen Versionskonflikt hinweist. Es kommt lediglich zu einer Verbindungsunterbrechung. Versuchen Sie es zunächst mit 2.3.0 . Sollte dies fehlschlagen, fragen Sie Ihren Serverbetreiber, welche Versionszeichenkette er erwartet.
Inaktivitäts-Timeout und Einstellungen für die Wiederverbindung
inactivitytimeout = 30 bedeutet, dass OScam die Verbindung wiederherstellt, wenn 30 Sekunden lang keine ECM-Aktivität stattfindet. Das ist vorteilhaft, da so inaktive Verbindungen wiederhergestellt werden, ohne dass das Betriebssystem eine unterbrochene Verbindung erkennt. In Netzwerken mit sehr hoher Paketverlustrate empfiehlt es sich, diesen Wert auf 20 zu reduzieren.
reconnecttimeout = 30 legt die Verzögerung zwischen einer Verbindungsunterbrechung und dem nächsten Verbindungsversuch fest. Bei einem Wert von 30 kann es nach einem Serverausfall zu einem potenziell 30 Sekunden andauernden schwarzen Bildschirm kommen. In kritischen Umgebungen mit mehreren Servern ist ein niedrigerer Wert (15–20) in Kombination mit mehreren Lesezugriffen besser geeignet, als einen einzelnen Server mit schnellen Verbindungsversuchen zu überlasten.
Gruppenzuordnung und warum sie für die Routenplanung wichtig ist
Der group ist der interne Routing-Mechanismus von OScam. Eine ECM-Anfrage von einem nachgelagerten Client (Ihrer Set-Top-Box) wird an Lesegeräte weitergeleitet, die dieselbe Gruppennummer wie der anfragende Benutzer haben. Befindet sich Ihr Lesegerät in Gruppe 1, die Benutzerkonfiguration Ihrer Set-Top-Box jedoch in Gruppe 2, erreicht die ECM-Anfrage dieses Lesegerät nicht. Punkt. Dies ist die häufigste Fehlkonfiguration im gesamten Konfigurationsprozess von CCCam-Server und OScam-Client, und kaum eine andere Anleitung erklärt sie verständlich.
oscam.conf- und oscam.user-Einstellungen, die CCcam-Clients beeinflussen
Globaler Abschnitt: Logdatei, nett, maximale Loggröße
Die Datei oscam.conf unter /etc/oscam/oscam.conf steuert das globale Verhalten. Ein minimaler funktionierender [global] Block:
[global] logfile = /var/log/oscam/oscam.log maxlogsize = 512 nice = -1 WaitForCards = 1 lb_mode = 1 lb_save = 1maxlogsize[global] logfile = /var/log/oscam/oscam.log maxlogsize = 512 nice = -1 WaitForCards = 1 lb_mode = 1 lb_save = 1
Die Größe wird in KB angegeben – 512 KB sorgen für überschaubare Protokolle, ohne dass wichtige Verlaufsdaten verloren gehen. WaitForCards = 1 weist OScam an, ECM-Anfragen zurückzuhalten, bis mindestens ein Lesegerät bereit ist, anstatt sofort „Nicht gefunden“ zurückzugeben. nice = -1 erhöht die CPU-Priorität von OScam leicht, was insbesondere auf stark ausgelasteten Embedded-Geräten relevant ist.
Aktivierung der Weboberfläche zur Live-Statusüberwachung des Lesegeräts
Fügen Sie Folgendes zu oscam.conf hinzu, um den HTTP-Monitor auf Port 8888 zu aktivieren:
[webif] httpport = 8888 httpuser = admin httppwd = yourpassword httprefresh = 10 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255Beschränken[webif] httpport = 8888 httpuser = admin httppwd = yourpassword httprefresh = 10 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
httpallowed auf Port 8888 in Ihrem lokalen Netzwerk ist nur mit HTTP erlaubt. Geben Sie Port 8888 niemals ohne Authentifizierung im Internet frei, selbst dann ist es riskant. Im Webinterface können Sie den Status des Lesegeräts in Echtzeit überwachen – ob die CCcam-Verbindung besteht, die Anzahl der Hops, die letzte ECM-Zeit und die Antwortlatenz. Dies ist für die Fehlersuche unerlässlich.
oscam.user: Erstellen eines lokalen Benutzers zum Weiterleiten entschlüsselter ECWs an Ihre Set-Top-Box
Dateispeicherort: /etc/oscam/oscam.user . Sie benötigen mindestens einen Benutzereintrag für das Gerät, das sich mit OScam verbindet (Ihre Set-Top-Box, Dreambox, VU+-Box usw.):
[account] user = stbuser pwd = stbpassword group = 1 au = 1Der[account] user = stbuser pwd = stbpassword group = 1 au = 1
group = 1 muss hier mit der group = 1 in Ihrem Lesegerätblock übereinstimmen. Das ist die Verbindung. OScam empfängt die ECM-Anfrage vom STB-Server (Gruppe 1), sucht nach Lesegeräten in Gruppe 1, findet Ihr CCcam-Lesegerät, sendet die ECM-Anfrage dorthin, empfängt die ECW-Daten zurück und sendet sie an die Set-Top-Box. Wenn die Gruppenübereinstimmung nicht stimmt, funktioniert nichts mehr, selbst wenn die CCcam-Verbindung einwandfrei ist.
Verknüpfung von Benutzern mit Lesergruppen mithilfe der „Gruppen“-Direktive
Gruppen bestehen aus ganzen Zahlen. Sie können jede Zahl von 1 bis 64 verwenden. Sie können sowohl Lesern als auch Benutzern mehrere Gruppen zuweisen, indem Sie diese durch Kommas trennen: group = 1,2,3 . Dies ist nützlich, wenn Sie mehrere CCcam-Leser in verschiedenen Gruppen haben und ein Benutzer Zugriff auf alle haben soll. Der Load Balancer von OScam wählt dann den besten Leser aus allen zugewiesenen Gruppen aus.
'au' (Auto-Update) für Kartenlesegeräte korrekt einstellen
Die Einstellung au = 1 im Benutzerkonto aktiviert die automatische Aktualisierung von Berechtigungsverwaltungsnachrichten (EMM) für diesen Benutzer. Bei einer Kartenfreigabeumgebung, in der ausschließlich ECM-Antworten empfangen werden, ist au = 1 auf dem Lesegerät selbst in der Regel unnötig und kann zu unnötigen Benachrichtigungen führen. Aktivieren Sie diese Einstellung im nachgelagerten Benutzerkonto, wenn Abonnementverlängerungen weitergeleitet werden sollen; lassen Sie sie auf dem Lesegerät deaktiviert, es sei denn, Ihr Server unterstützt und erfordert dies.
Verbinden Ihrer Set-Top-Box oder Softcam mit OScam nach CCcam-Authentifizierung
Hier scheitern die meisten Anleitungen zur Konfiguration von CCCam-Server und OSCam-Client. Sie stellen zwar die Verbindung zwischen OSCam und CCCam-Server her, aber das löst nur die halbe Miete: Die verschlüsselten ECMs sind zwar am richtigen Ort, aber die entschlüsselten ECWs müssen noch an die TV-Box übertragen werden.
Verwendung von OScam als newcamd-Listener für Dreambox/VU+-Boxen
Newcamd ist das am weitesten verbreitete Protokoll auf Enigma2-Set-Top-Boxen. Fügen Sie einen Abschnitt [newcamd] zur oscam.conf hinzu:
[newcamd] key = 0102030405060708091011121314 port = 15050@1702:000000Der[newcamd] key = 0102030405060708091011121314 port = 15050@1702:000000
key ist der DES-Schlüssel von newcamd – er muss mit dem in der Set-Top-Box (STB) konfigurierten Wert übereinstimmen. Der oben genannte Wert ist ein üblicher Standardwert; Sie können eine beliebige 14-Byte-Hexadezimalzeichenfolge verwenden. Das Format port lautet: port@CAID:ProviderID . Verwenden Sie 000000 als Provider-ID, um alle Provider für diese CAID zu akzeptieren, oder geben Sie eine konkrete Provider-ID an (z. B. 000000 für einen Platzhalter, 000001 für einen bestimmten Provider). Bei mehreren CAIDs fügen Sie mehrere Port-Einträge durch Semikolons getrennt hinzu: port = 15050@1702:000000;15051@0D00:000000 .
Konfiguration des Listener-Blocks in oscam.conf [newcamd].
Fügen Sie auf Ihrer Dreambox oder VU+ Box einen Eintrag für den newcamd-Server hinzu, der auf die IP-Adresse des Rechners verweist, auf dem OScam läuft, Port 15050, und denselben DES-Schlüssel verwendet. Die Set-Top-Box sendet ECM-Anfragen an den newcamd-Listener von OScam. OScam leitet diese über den CCcam-Reader an den Server weiter, empfängt das ECW-Signal und sendet es zurück an die Set-Top-Box. Das ist die vollständige Kette.
Verwendung des camd35/cs357x Listeners von OScam für andere Clients
Manche Kunden bevorzugen camd35 (auch cs357x genannt). Fügen Sie Folgendes zu oscam.conf hinzu:
[cs357x] port = 15000Die Benutzerdaten für camd35 stammen von[cs357x] port = 15000
oscam.user ist ähnlich wie newcamd. Das Protokoll ist einfacher als newcamd, aber auf modernen Set-Top-Boxen weniger verbreitet. Verwenden Sie newcamd, es sei denn, Ihr Kunde benötigt ausdrücklich camd35.
oscam.user-Eintrag für die Set-Top-Box: Pflichtfelder
[account] user = stbuser pwd = stbpassword group = 1 au = 1 uniq = 0uniq = 0[account] user = stbuser pwd = stbpassword group = 1 au = 1 uniq = 0
Ermöglicht die gleichzeitige Verbindung mehrerer Clients mit denselben Anmeldeinformationen. Setzen Sie den Wert auf 1 , um nur eine Verbindung pro Benutzer zuzulassen. In einem Haushalt mit einer Set-Top-Box (STB) funktionieren beide Werte. Bei gemeinsam genutzten Geräten setzen Sie den Wert auf 0, um eine automatische Sperrung während des Wiederverbindungsvorgangs zu vermeiden.
Überprüfung der Kartenfreigabe durch ECMs über Webif Reader Stats
Öffnen Sie http://OSCAM_IP:8888 in einem Browser. Klicken Sie auf den Namen Ihres Lesegeräts. Sie sehen dann: Verbindungsstatus, letzte ECM-Zeit, ECM-Anzahl, Antwortzeit in Millisekunden und Hop-Anzahl. Wenn das Lesegerät „Verbunden“ anzeigt, die ECM-Anzahl aber nach dem Versuch, einen Kanal einzustellen, bei null bleibt, liegt das Problem im nachgelagerten System – überprüfen Sie die Verbindung der Set-Top-Box zu OScam oder die Gruppenzuordnungen.
Wenn der ECM-Zähler steigt, aber weiterhin ein schwarzer Bildschirm angezeigt wird, verfügt der CCcam-Server möglicherweise nicht über die Karte für diese CAID. Überprüfen Sie die Freigabeliste in der Detailansicht des Lesegeräts, um sicherzustellen, dass die benötigte CAID tatsächlich aufgeführt ist.
Behebung von Verbindungsproblemen mit dem CCcam-Lesegerät in OScam
Leser, der in 'CACHEEX' oder 'CARDOK' feststeckt, erscheint nie — Ursachen
Die Meldung „CACHEEX“ im Leserstatus bedeutet in der Regel, dass OScam im Cache-Austauschmodus und nicht im direkten CCcam-Lesemodus arbeitet. Prüfen Sie, ob Sie versehentlich cacheex = 1 am Leser eingestellt haben. Ein korrekt konfigurierter CCcam-Leser sollte nach erfolgreicher Authentifizierung und dem Senden einer Freigabeliste mit den tatsächlichen Karten durch den Server „VERBUNDEN“ oder „KARTE OK“ anzeigen.
Wenn der Status niemals CARDOK erreicht, befinden sich wahrscheinlich keine aktiven Karten in der Freigabeliste des Servers, oder cccmaxhops filtert alles heraus.
Authentifizierung fehlgeschlagen: Falsche cccversion-Zeichenfolge
Im OScam-Protokoll ( /var/log/oscam/oscam.log ) sieht eine fehlgeschlagene Authentifizierung wie folgt aus:
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 Sie sehen eine Verbindung, die sofort wieder getrennt wird. Bevor Sie die Zugangsdaten als Ursache vermuten, versuchen Sie, cccversion zu ändern. Wechseln Sie von 2.3.0 zu 2.1.4 oder umgekehrt. Manche Server sind so kompiliert, dass sie unbekannte Versionszeichenfolgen ablehnen. Dies ist ein stiller Fehler – es erscheint kein expliziter Fehler wegen falscher Version im Protokoll, sondern lediglich eine Verbindungsunterbrechung.
Um vorübergehend eine ausführliche Ausgabe des Lesegeräts zu erhalten, fügen Sie in der Datei oscam.conf unter [global] loglevel = 512 hinzu, starten Sie OScam neu, überprüfen Sie die Protokolle und entfernen Sie die Zeile anschließend wieder. Die Protokollmenge bei Stufe 512 ist beträchtlich – lassen Sie diese Einstellung nicht dauerhaft aktiviert.
Verbindungsabbruch vs. Verbindungstimeout – Was bedeuten die einzelnen Begriffe?
Verbindung abgelehnt : Das TCP-Paket hat den Server erreicht, aber an diesem Port lauscht kein Dienst. Entweder ist die Portnummer falsch, der CCcam-Server läuft nicht oder ein lokaler Prozess blockiert den Port (bei Enigma2 könnte ein CCcam-Plugin, das neben OScam läuft, Port 12000 belegt haben – beenden Sie es).
Verbindungstimeout : Das TCP-SYN-Paket wurde nicht beantwortet. Möglicherweise blockiert eine Firewall Pakete, die IP-Adresse ist falsch oder das Routing ist fehlerhaft. Testen Sie mit: nc -zv SERVER_IP 12000 . Bleibt der Befehl hängen, liegt ein Netzwerk-/Firewallproblem vor. Wird sofort „refused“ zurückgegeben, ist der Port auf dem Server geschlossen.
OScam-Protokollzeilen, nach denen gesucht werden sollte
Eine erfolgreiche Verbindungssequenz im Protokoll sieht wie folgt aus:
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)Wenn die Meldung „Empfangene Freigabeliste (0 Karten)“ angezeigt wird, ist der Server erreichbar und Ihre Anmeldedaten funktionieren, aber es sind keine aktiven Karten für dieses Konto vorhanden. Wenden Sie sich an den Serverbetreiber.
Firewall und NAT: Sicherstellen, dass Port 12000 erreichbar ist
OScam stellt eine ausgehende Verbindung über Port 12000 her. Die meisten Heimnetzwerke mit NAT erlauben ausgehende Verbindungen ohne spezielle Konfiguration. Probleme treten auf, wenn eine Firewall auf dem Client-Rechner ausgehende Verbindungen blockiert (selten, aber bei strengen iptables-Regeln möglich) oder wenn die Server-Firewall eine IP-Whitelist verwendet und Ihre öffentliche IP-Adresse nicht darauf steht.
Beachten Sie außerdem: In einer Umgebung mit gemeinsam genutztem NAT, in der mehrere OScam-Clients dieselbe öffentliche IP-Adresse verwenden, kann der CCcam-Server ein Verbindungslimit pro IP-Adresse festlegen und Verbindungen, die dieses Limit überschreiten, ablehnen. Jeder Client benötigt ein eigenes, eindeutiges Benutzername/Passwort-Paar. Die Verwendung derselben Anmeldedaten von derselben IP-Adresse aus funktioniert manchmal, die gleichzeitige Verwendung derselben Anmeldedaten von derselben IP-Adresse führt jedoch fast immer zu einem Fehler.
cccmaxhops zu niedrig eingestellt — Erklärung fehlender Kanäle
CCcam-Karten haben eine „Hop-Anzahl“ – die Anzahl der Relays, die die Karte durchlaufen hat, um Ihren Server zu erreichen. Eine direkt im Server verbaute Karte hat Hop 0. Eine Karte, die von einem anderen CCcam-Server mit Ihrem Server geteilt wird, hat Hop 1. Bei erneuter Weitergabe Hop 2 usw.
cccmaxhops = 1 bedeutet, dass OScam nur Karten mit Hop-Anzahl 0 oder 1 verwendet. Karten mit Hop-Anzahl 2 oder höher befinden sich zwar in der Freigabeliste, werden aber von OScam ignoriert. Falls der benötigte Kanal von einer Karte mit Hop-Anzahl 2 stammt, wird die Verbindung hergestellt und der Reader als betriebsbereit angezeigt, der betreffende Kanal kann jedoch nicht entschlüsselt werden. Setzen Sie cccmaxhops = 2 oder höher, falls einzelne Kanäle fehlen. Beachten Sie, dass sehr hohe Werte (8+) dazu führen können, dass OScam auf stark ausgelasteten Servern extrem große Freigabelisten empfängt, was viel Speicherplatz belegt – ein echtes Problem bei Dreambox-Hardware mit 256 MB RAM.
Doppelte Lesereinträge verursachen Schleifenverbindungen
Zwei Reader-Einträge mit derselben Bezeichnung in oscam.server können zu unerwartetem Verhalten führen: OScam lädt möglicherweise beide Einträge und erzeugt so doppelte Verbindungsversuche zum selben Server. Im Protokoll werden dann häufige Verbindungs- und Trennungszyklen angezeigt. Verwenden Sie für jeden Reader eine eindeutige Bezeichnung. Prüfen Sie auf versehentliche Duplikate, wenn ein Reader im Webinterface häufig neu startet.
Härtung und Leistungsoptimierung für den OScam CCcam Reader
Einstellung des Reconnect-Timeouts zur Vermeidung von Zap-Verzögerungen
Bei nur einem CCcam-Reader führt ein Serverausfall zu einem schwarzen Bildschirm, bis OScam die Verbindung wiederherstellt. Der Standardwert ist reconnecttimeout = 30 , was bis zu 30 Sekunden Schwarzbild bedeutet. Eine Reduzierung auf 15 verringert dieses Zeitfenster, erhöht aber die Wiederverbindungshäufigkeit bei instabilen Verbindungen. Für den Produktivbetrieb ist der Betrieb von zwei Reader-Einträgen, die auf unterschiedliche Server mit lb_mode = 1 verweisen, besser geeignet als die alleinige Optimierung der Wiederverbindungszeiten.
ccckeepalive und seine Auswirkungen auf Leerlaufverbindungen
ccckeepalive = 1 sendet in Leerlaufphasen regelmäßig Ping-ähnliche Nachrichten über die CCcam-TCP-Verbindung. Ohne diese Option laufen NAT-Zuordnungen auf Routern typischerweise nach 60–300 Sekunden Leerlauf ab, wodurch die TCP-Sitzung stillschweigend beendet wird. OScam erkennt den Verbindungsabbruch erst, wenn die nächste ECM-Anfrage fehlschlägt. Mit aktiviertem Keepalive bleibt die NAT-Zuordnung aktiv und OScam erkennt Verbindungsabbrüche schneller. Lassen Sie diese Option aktiviert.
Verwendung des lb_mode (Lastverteilung) bei der Verbindung zu mehreren CCcam-Servern
In oscam.conf [global] festlegen:
- lb_mode = 0 : Kein Lastausgleich. OScam verwendet den ersten verfügbaren Reader in der Liste. Simpel, aber ohne Leistungsvorteil.
- lb_mode = 1 : Der schnellste Leser gewinnt. OScam überwacht die ECM-Antwortzeiten jedes Lesers und leitet zukünftige Anfragen an den Leser mit der besten durchschnittlichen Antwortzeit weiter. Dies ist die optimale Konfiguration für eine Multi-Server-Umgebung.
- lb_mode = 5 : Gewichtete Zufallsverteilung. Berücksichtigt die Antwortzeit und verteilt die Last durch Zufallsverteilung. Nützlich, wenn viele Server ähnlicher Qualität vorhanden sind und nicht ein einzelner Server den gesamten Datenverkehr abbekommen soll.
Für die meisten Konfigurationen mit 2–4 CCcam-Lesegeräten ist lb_mode = 1 mit lb_save = 1 (speichert die gelernten Statistiken auf der Festplatte, damit OScam nach einem Neustart nicht blind startet) die richtige Wahl.
Logrotate-Konfiguration für OScam-Protokolle zur Vermeidung von Festplattenüberlauf
Erstelle /etc/logrotate.d/oscam :
/var/log/oscam/oscam.log { daily rotate 7 compress missingok notifempty copytruncate } copytruncate ist hier wichtig: OScam hält den Handle der Protokolldatei geöffnet, daher funktioniert die Standardmethode `rotate-and-signal` nicht ohne ein SIGHUP-Signal an OScam. `copytruncate` kopiert die Datei und kürzt anschließend das Original direkt, ohne den OScam-Prozess zu beeinträchtigen. Auf eingebetteten Enigma2-Geräten mit kleinem Flash-Speicher empfiehlt sich eine aggressivere Rotation: rotate 3 und erwägen Sie maxsize 1M .
OScam als systemd-Dienst ohne Root-Rechte ausführen
Benutzer und Verzeichnis erstellen:
useradd -r -s /sbin/nologin oscam mkdir -p /var/log/oscam chown oscam:oscam /var/log/oscam chown -R oscam:oscam /etc/oscamErstellenuseradd -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.targetAktivieren und starten:[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 oscamDie Ausführung als Nicht-Root-Benutzer bedeutet, dass ein kompromittierter OScam-Prozess das System nicht beschädigen kann.systemctl daemon-reload systemctl enable oscam systemctl start oscam
Die Direktive Restart=on-failure behandelt unerwartete Abstürze automatisch. Dies ist gängige Praxis und die Einrichtung dauert etwa 5 Minuten – wird sie übersprungen, läuft ein netzwerkseitiger Dienst dauerhaft mit Root-Rechten.
Bevor Sie davon ausgehen, dass Ihre CCCam-Server-OSCam-Client-Konfiguration vollständig ist, führen Sie bitte folgenden Befehl aus: oscam --version und überprüfen Sie die Modulliste in der Ausgabe. Einige Minimal- oder abgespeckte Versionen, die für bestimmte Embedded-Systeme kompiliert wurden, schließen das CCCam-Reader-Modul vollständig aus. Falls „cccam“ nicht in der Liste der kompilierten Module aufgeführt ist, helfen auch Konfigurationsänderungen nicht weiter – Sie benötigen eine vollständige OSCam-Version.
Häufig gestellte Fragen
Welcher Port wird standardmäßig für einen CCcam-Server verwendet, mit dem OScam eine Verbindung herstellt?
Der Standard-CCcam-Serverport ist 12000/TCP . Viele Betreiber verwenden jedoch andere Ports – vergewissern Sie sich daher immer bei der Person, die Ihnen die Serverzugangsdaten gegeben hat. Der Port wird in der device der Datei oscam.server als hostname,port ohne Leerzeichen festgelegt. Gehen Sie niemals von Port 12000 aus, wenn Ihnen der Port nicht explizit mitgeteilt wurde.
Worin besteht der Unterschied zwischen 'protocol = cccam' und 'protocol = cccam2' in OScam?
cccam2 ist eine interne, erweiterte Protokollvariante von OScam mit zusätzlichen Funktionen zur Ressourcenverteilung. Es funktioniert nur korrekt, wenn sowohl Client als auch Server OScam ausführen. Eine echte CCcam-Server-Software versteht cccam2-Erweiterungen nicht – sie lehnt die Verbindung entweder ab oder verhält sich unvorhersehbar. Verwenden Sie für alle Systeme, die eine echte CCcam-Server-Software ausführen, protocol = cccam und reservieren Sie cccam2 ausschließlich für OScam-zu-OScam-Verbindungen.
Warum zeigt mein OScam-Lesegerät „Verbunden“ an, aber die Kanäle werden trotzdem nicht entschlüsselt?
„Verbunden“ bedeutet lediglich, dass die TCP-Verbindung besteht – die Verfügbarkeit der Karten ist nicht garantiert. Gehen Sie diese Checkliste durch: (1) Ist die maximale Anzahl an cccmaxhops hoch genug, um die benötigten Karten zu erreichen? (2) Sind die benötigte CAID und Provider-ID in der Freigabeliste des Servers enthalten? (3) Stimmt die Benutzergruppe oscam.user “ Ihrer Set-Top-Box mit der Benutzergruppe des Lesegeräts überein? (4) Überprüfen Sie die Anzahl der ECM-Anfragen in den Details des Lesegeräts im Webinterface. Ist diese null, erreicht die Anfrage OScam von der Set-Top-Box gar nicht.
Kann OScam gleichzeitig Verbindungen zu mehreren CCcam-Servern herstellen?
Ja. Fügen Sie in oscam.server mehrere [reader] -Blöcke hinzu, jeder mit einer eindeutigen label . Weisen Sie allen dieselbe Gruppe zu, wenn Sie einheitliches Routing wünschen, oder unterschiedliche Gruppen für separate Zugriffsebenen. Setzen Sie lb_mode = 1 in oscam.conf [global] , damit OScam jede ECM-Anfrage automatisch an den schnellsten Reader weiterleitet. Fügen Sie lb_save = 1 hinzu, damit diese ermittelten Laufzeiten auch nach Neustarts erhalten bleiben.
Worauf sollte ich bei der Beurteilung der Zuverlässigkeit eines CCcam-Servers vor dessen Konfiguration achten?
Wichtige Punkte, die Sie prüfen sollten: Veröffentlicht der Anbieter Verfügbarkeitsstatistiken oder eine Statusseite? Wo befindet sich der Server geografisch in Bezug auf Ihren Standort? Der Serverstandort beeinflusst die Antwortzeit des ECM direkt. Wie viele gleichzeitige Verbindungen sind mit dem Konto möglich? Stellt der Anbieter eine Testleitung vor der endgültigen Konfiguration bereit? Gibt es eine technische Dokumentation zur Serverkonfiguration? Vermeiden Sie Server ohne Testzugang und ohne Möglichkeit, die Funktionsfähigkeit der Konfiguration vor der vollständigen Einrichtung zu überprüfen.
Wie kann ich die OScam-Protokolle überprüfen, um sicherzustellen, dass ein CCcam-Lesegerät erfolgreich authentifiziert wurde?
In der /var/log/oscam/oscam.log oscam.log` oder der Webinterface-Logansicht werden bei erfolgreicher Authentifizierung Zeilen mit Ihrer Reader-Bezeichnung, gefolgt von „cccam: login successful“ und anschließend „received share list“, angezeigt. Bei fehlgeschlagener Authentifizierung erscheint „login failed“ oder eine sofortige Trennung direkt nach der TCP-Verbindungszeile. Für detailliertere Informationen fügen Sie vorübergehend loglevel = 512 unter [global] in der oscam.conf hinzu und starten Sie das System neu. Dadurch erhalten Sie eine ausführliche Ausgabe pro Reader. Entfernen Sie diese Zeile nach der Fehlersuche wieder; die Logdatei ist sehr groß.
Unterstützt OScam CCcam-Kartenteilung sowohl auf Linux- als auch auf Embedded-Plattformen (Enigma2)?
Ja, und die Konfigurationssyntax oscam.server ist auf beiden Systemen identisch. Auf Enigma2 (Dreambox, VU+) wird OScam als IPK- oder OPK-Plugin installiert. Die Konfigurationsdateien befinden sich üblicherweise unter /etc/tuxbox/config/ oder /usr/keys/ abhängig vom verwendeten Image. Wichtig bei Enigma2: Falls ein CCcam-Plugin ebenfalls installiert ist und läuft, lauscht dieses möglicherweise bereits lokal auf Port 12000. Dies führt zu einer Verbindungsunterbrechung, wenn der OScam-Reader versucht, eine Verbindung zum Server herzustellen. Beenden Sie in diesem Fall das CCcam-Plugin und stellen Sie die Verbindung ausschließlich über OScam her.