Loading...

CCcam.cfg Zeilenformat: C-Line, D-Line& F-Line erklärt

Wenn Sie gerade eine CCcam.cfg-Datei geöffnet haben und auf eine Zeile starren, die Ihnen jemand in einem Forum gegeben hat, und versuchen herauszufinden, welcher Teil das Passwort ist und welcher Teil ein Flag ist — das ist für Sie. Diese Aufschlüsselung des cccam.cfg-Zeilenformats: c-line d-line f-line erklärt deckt jedes Feld in der Reihenfolge ab, mit den Fehlerarten, die tatsächlich auftreten, wenn eines von ihnen falsch ist.

Ich habe viel Zeit mit diesen Konfigurationsdateien verbracht, meistens um 1 Uhr morgens, um herauszufinden, warum ein "verbundener" Peer null Karten bereitgestellt hat. Das ist also keine Theorie. Es sind die Dinge, die die Leute tatsächlich durcheinanderbringen, Feld für Feld.

Wie CCcam.cfg analysiert wird: Zeilentypen, Reihenfolge und Syntaxregeln

CCcam.cfg ist eine flache Textdatei. Keine Abschnitte, kein Verschachteln, keine JSON-ähnlichen Klammern, außer für die sharelimit-Blöcke, auf die wir noch kommen werden. Jede Zeile beginnt mit einem Buchstaben und einem Doppelpunkt, und dieser Buchstabe sagt dem Parser, welche Rolle die Zeile spielt: C für eine ausgehende Clientverbindung, F für ein eingehendes Konto, das Sie jemand anderem anbieten, N für newcamd, D für einen veralteten Zeilentyp, den Sie fast nie benötigen, und eine Handvoll globaler Optionen, die überhaupt kein Buchstabenpräfix haben, geschrieben als KEY : value./var/etc/CCcam.cfg. Auf generischen Linux-Bauten ist es oft einfach/etc/CCcam.cfg. Überprüfen Sie beide, bevor Sie annehmen, dass die Box Ihre Änderungen nicht liest — ich habe mehr als einmal Zeit verloren, weil ich die falsche Kopie bearbeitet habe.

Hier ist der Teil, den fast niemand Ihnen klar sagt: CCcam liest diese Datei genau einmal, beim Start. Es gibt kein Reload-Signal, keine SIGHUP-Behandlung, nichts. Wenn Sie die Datei bearbeiten, während CCcam läuft, passiert nichts, bis Sie den Prozess beenden und neu starten. Das Standardmuster ist:

killall -9 CCcam&& CCcam -C /var/etc/CCcam.cfg

Auf den meisten Images gibt es ein Softcam-Start-/Stopp-Skript, das dies für Sie umschließt — verwenden Sie es, wenn es existiert, aber wissen Sie, was es im Hintergrund tut.

Das Zeilentyp-Präfixsystem und warum der Doppelpunkt wichtig ist

Das Buchstaben-Doppelpunkt-Präfix ist nicht dekorativ.C:,F:,N:,D:,L:,M: — jeder entspricht einem bestimmten Parser-Zweig. Wenn SieC ohne den Doppelpunkt eingeben oder der Doppelpunkt irgendwie beschädigt wird, wirft der Parser keinen Fehler. Er erkennt die Zeile einfach nicht als irgendetwas und macht weiter. Das ist wirklich die größte Ursache für Berichte wie "Ich habe die Zeile hinzugefügt und es ist nichts passiert". Es gibt keine Protokollnachricht, keine Warnung. Die Zeile ist einfach unsichtbar für CCcam.# und der Parser toleriert sie gut, zusammen mit führenden Leerzeichen und Tabs zwischen den Feldern — CCcam trennt Felder generisch an Leerzeichen, sodass zusätzliche Leerzeichen zwischen den Feldern normalerweise nichts kaputt machen. Was die Dinge kaputt macht, sind Leerzeichen innerhalb eines Feldes, was mich zum nächsten Problem bringt.

Leerzeichen, unsichtbare Zeichen und die Copy-Paste-Falle

Wenn Sie eine Zeile von einer Webseite oder aus einem PDF kopiert haben, besteht eine echte Chance, dass sie Müllzeichen enthält, die Sie nicht sehen können. Non-Breaking Spaces (U+00A0) sehen in den meisten Texteditoren identisch zu einem normalen Leerzeichen aus, aber der Parser behandelt sie nicht als Feldtrennzeichen, und wenn eines in Ihrem Passwortfeld landet, schlägt die Authentifizierung einfach fehl — still, ohne nützliche Fehlermeldung. Dasselbe gilt für CRLF-Zeilenenden aus einer Datei, die jemand auf Windows bearbeitet hat: das nachfolgende\r wird als Teil des vorhergehenden Feldes behandelt, normalerweise des Passworts.

cat -A /var/etc/CCcam.cfg | head

CRLF-Endungen erscheinen als^M am Ende jeder Zeile. Non-breaking Spaces und smarte Anführungszeichen von einer Webseite erscheinen typischerweise alsM-BM- Sequenzen. Wenn Sie eines davon sehen, führen Siedos2unix auf der Datei aus, oder tippen Sie die betroffene Zeile einfach von Hand neu ein, anstatt dem Einfügen zu vertrauen.

Groß- und Kleinschreibung und warum CCcam langfristig eine Sackgasse ist

Benutzernamen und Passwörter sind immer groß- und kleinschreibungsempfindlich. Es gibt keinen Zitiermechanismus im Dateiformat, sodass ein Benutzername oder Passwort mit einem Leerzeichen einfach nicht möglich ist — der Parser wird es in zwei Felder aufteilen und alles danach bricht.

Die C-Line: Verbinden Sie Ihre Box mit einem Remote-Server

Das ist wahrscheinlich der Grund, warum Sie hier sind, also lassen Sie uns richtig einsteigen. Die kanonische C-Line sieht so aus:

C: server.example.net 12000 myusername mypassword

Vier Pflichtfelder, durch Leerzeichen getrennt, in dieser genauen Reihenfolge.

Feld-für-Feld-Aufschlüsselung

Host — ein FQDN oder eine nackte IPv4-Adresse. Das ist der erste Ort, an dem die Leute auf die Nase fallen, und ich werde gleich erklären, warum.

Port — ein beliebiger TCP-Port, der von demjenigen gewählt wurde, der den Server betreibt. Es gibt keinen reservierten CCcam-Port. Sie werden sehen, dass 12000-13000 oft aus Gewohnheit verwendet wird, aber das ist nur eine Gewohnheit, kein Standard. Verwenden Sie, was der Serverbetreiber Ihnen sagt.

Benutzername undPasswort — groß- und kleinschreibungsempfindlich, Klartext, keine Anführungszeichen. Ein nachfolgendes Leerzeichen in einem der Felder, was ständig passiert, wenn Leute von einer Webseite einfügen, bricht die Authentifizierung und gibt Ihnen keinen nützlichen Hinweis, warum.

Optionale Felder 5 und 6: die EMU-Flags

Über die vier Pflichtfelder hinaus akzeptieren einige Builds ein fünftes Feld, das das Verhalten von EMU/wantemus steuert, und ein sechstes für ein verwandtes Flag. Ich sage es Ihnen direkt: Die genauen Semantiken dieser Felder haben zwischen den Builds 2.1.x, 2.2.x und 2.3.x geschwankt, und ich habe widersprüchliches Verhalten in verschiedenen Images gesehen. Es sei denn, der Serverbetreiber sagt Ihnen ausdrücklich, dass Sie eines setzen sollen, ist der sicherste Schritt, sie ganz wegzulassen und die Standardwerte anzuwenden. Das Raten dieser Felder verursacht mehr Probleme, als es löst.

Der sharelimit-Block

Sie werden oft eine C-Line sehen, an deren Ende ein geschweifte Klammerblock angehängt ist:

C: server.example.net 12000 myusername mypassword { 0100:000068:2, 0500:032830:1 }

Jeder Eintrag ist CAID:ident:sharelimit. Die Zahl am Ende ist die maximale Hop-Tiefe, die Sie für Karten akzeptieren, die zu diesem CAID/ident-Paar passen. Ein Wert von 0 bedeutet "nur lokale Karten auf diesem Server, leiten Sie nichts weiter, was sie von jemand anderem erhalten haben." Das ist sehr wichtig für die Linienqualität — ich werde später auf die Hop-Tiefe zurückkommen, aber die kurze Version ist, dass eine Hop-1-Karte grundsätzlich zuverlässiger ist als eine Hop-4-Karte, und dieser Block ist, wie Sie diese Obergrenze auf Ihrer Seite durchsetzen.

Hostname vs IP und die DDNS-Falle, die niemand erwähnt

Hier ist das, was die Leute ständig in Schwierigkeiten bringt und was fast keine andere Seite zu diesem Thema richtig behandelt: CCcam löst den Hostnamen in einer C-Line genau einmal auf, beim Start. Wenn der Server Ihres Peers hinter einem dynamischen DNS-Hostnamen sitzt und sich seine IP ändert, nachdem Ihr CCcam-Prozess bereits gestartet wurde, wird Ihre Verbindung weiterhin fehlschlagen — unbegrenzt — bis Sie CCcam neu starten. Es wird sich niemals von selbst erneut auflösen, egal wie lange Sie warten. Wenn eine zuvor funktionierende C-Line plötzlich nicht mehr verbindet und Sie überprüft haben, dass die Anmeldeinformationen in Ordnung sind, ist es wert, dies vor allem anderen zu überprüfen. Starten Sie einfach CCcam neu und sehen Sie, ob es die neue IP aufnimmt.

Überprüfen, ob eine C-Line tatsächlich funktioniert

Fügen Sie nicht einfach eine Zeile ein und hoffen Sie. Arbeiten Sie schichtweise daran:

Überprüfen Sie zuerst, ob der Port überhaupt erreichbar ist, von der Box selbst — nicht von Ihrem Laptop in einem anderen Netzwerk, da Carrier-Grade NAT und ISP-Level-Blockaden einen Port in einem Netzwerk offen und in einem anderen geschlossen erscheinen lassen können:

nc -vz server.example.net 12000

Wenn das verbindet, öffnen Sie die CCcam-Weboberfläche, die standardmäßig auf Port 16001 läuft (konfigurierbar über die WEBINFO LISTEN PORT-Direktive) —http://<box-ip>:16001. Es zeigt, ob der Peer verbunden ist und kritisch, wie viele Karten er dir tatsächlich sendet. "Verbunden" und "Karten senden" sind zwei völlig unterschiedliche Zustände, und sie zu verwechseln, kostet viel Debugging-Zeit.

In den Protokollen wirst du einige unterschiedliche Nachrichten sehen, die jeweils etwas anderes bedeuten: "Verbindung fehlgeschlagen" ist ein Netzwerk-/Firewall-Problem, kein Problem mit den Anmeldedaten. "Verbindung vom Server geschlossen" bedeutet fast immer, dass der Server deine Authentifizierung abgelehnt hat oder das Konto deaktiviert ist. Und "keine Karten" bedeutet, dass die Authentifizierung erfolgreich war, aber der Server eine leere Freigabeliste zurückgeschickt hat — was ein völlig anderes Problem ist, das im Debugging-Abschnitt unten behandelt wird.

Eine Sache, die es wert ist, ausdrücklich erwähnt zu werden: Eine C-Line ist nur ausgehend. Sie öffnet keinen Lauscherport auf deiner Box, daher benötigt sie kein Port-Forwarding, keine NAT-Regel, nichts auf deinem Router. Wenn du keine Karten erhältst, liegt das Problem niemals daran, dass "ich vergessen habe, einen Port für meine C-Line weiterzuleiten" — das ist ein Anliegen der F-Line.

Mehrere C-Lines und Priorität

Du kannst so viele C-Lines haben, wie du möchtest, in einer Konfiguration. CCcam wird versuchen, sich mit allen zu verbinden und Karten von denjenigen abzurufen, die antworten, und die Freigabe-Pools zusammenzuführen. Es gibt kein striktes Prioritätsfeld — es ist nicht "versuche zuerst diese, falle auf die zweite zurück." Wenn zwei C-Lines denselben CAID/Ident anbieten, wählt CCcam basierend auf interner Routing-Logik (generell bevorzugt es eine niedrigere Hop-Anzahl und eine bessere ECM-Antwortzeit), nicht nach der Reihenfolge der Zeilen in der Datei.

Die F-Line: Karten an andere Personen von deiner Box bereitstellen

Wenn die C-Line du bist, der die Karten eines anderen konsumiert, ist die F-Line das Gegenteil: Es ist ein Konto auf deiner Box, das es der C-Line eines anderen ermöglicht, sich zu verbinden und Karten von dir abzurufen. Kanonische Form:

F: peeruser peerpass 1 0

Feld für Feld, und die beiden Zahlen, die jeder falsch hat

Felder 1 und 2 sind der Benutzername und das Passwort, die dieser Peer in seiner eigenen C-Line verwenden wird, um dich zu erreichen. Felder 3 und 4 sind die, bei denen die Leute konsequent Fehler machen, also lass uns sehr direkt darüber sein:

Feld 3 — uphops. Das regelt, was du gibst. Es bestimmt, wie tief dieser Peer in deinen eigenen Kartenbaum eindringen darf. 0 bedeutet, dass sie nur Karten sehen, die lokal zu deiner Box sind. 1 bedeutet, dass sie auch Karten sehen, die du von einem Hop entfernt abziehst — d.h. Karten von deinen eigenen C-Line-Verbindungen. 2 und höher kaskadiert weiter, und genau hier verwandeln sich Freigabebäume in Schleifen, wenn zwei Peers auch jeweils die Quelle des anderen sind.

Feld 4 — downhops. Das regelt, was du nimmst. Es bestimmt, wie viele Hops der eigenen Karten des Peers du bereit bist, von ihnen zurückzunehmen.

Sag es klar: uphops ist das, was du gibst, downhops ist das, was du nimmst. Der klassische Anfängerfehler ist, uphops auf 5 einzustellen, "um großzügig" gegenüber einem neuen Peer zu sein. Das macht dich nicht großzügig, es überschwemmt den gesamten downstream Freigabebaum mit Karten, die mehrere Hops von ihrem Ursprung entfernt sind, und es ist die Art von Dingen, die einen Peer leise von allen anderen im Netzwerk wegen der Verschlechterung der Freigabequalität verbannen.

Per-Peer-Freigabefilterung

Die gleiche geschweifte Klammer-Syntax wie die C-Line, aber hier wird eingeschränkt, was dieser spezifische Peer empfangen darf:

F: peeruser peerpass 1 0 { 0100:000068, 0500:032830 }

Es gibt keine explizite "verweigern"-Syntax in CCcam.cfg — das Modell ist erlauben durch Auflistung. Wenn ein CAID/Ident nicht im Block ist, erhält dieser Peer es nicht. Lass den Block ganz weg, und sie bekommen alles, was deine uphops-Einstellung erlaubt.

F-Lines benötigen einen Lauscherport — hier bleiben die Leute stecken

Eine F-Line tut nichts für sich allein, wenn deine Box tatsächlich keine eingehenden Verbindungen akzeptiert. Du benötigst die globale Direktive in derselben Konfiguration:

SERVER LISTEN PORT : 12000

Und dieser Port muss tatsächlich offen sein — durch die NAT-Tabelle deines Routers weitergeleitet, wenn du hinter einem sitzt, und nicht durch eine Firewall-Regel auf der Box selbst blockiert. Dein Peer benötigt auch einen Weg, um dich zu erreichen: eine statische IP oder einen DDNS-Hostnamen, den sie in ihre eigene C-Line einfügen. Wenn eine Seite dieses Paares hinter einem Carrier-Grade NAT sitzt — was zunehmend bei mobilen Verbindungen und einigen Glasfaser-ISPs üblich ist — ist die F-Line des Peers unerreichbar, egal was du am Router tust, weil es keine öffentliche IP gibt, um einen Port überhaupt weiterzuleiten.

Eine F-Line pro Peer, oder du bekommst eine Disconnect-Schleife

Gib nicht dieselben F-Line-Anmeldeinformationen an zwei verschiedene Personen weiter. CCcam erlaubt standardmäßig eine aktive Sitzung pro Benutzername, also wenn zwei Geräte versuchen, gleichzeitig dasselbe Konto zu verwenden, kickt jede neue Verbindung die vorherige ab. Das Ergebnis sieht aus wie eine unzuverlässige, ständig abfallende Leitung, wenn die tatsächliche Ursache zwei Personen sind, die um ein Login kämpfen. Es ist ein wirklich häufiger Fehler und leicht zu übersehen, weil beide Personen schwören werden, dass ihre eigene Einrichtung in Ordnung ist — und einzeln ist sie das auch.

Die globalen Optionen ALLOW TIMEOUT und ALLOW CONNECT können weiter steuern, wann F-Lines akzeptiert werden (Zeitbeschränkungen, Verbindungswiederholungsgrenzen), und das genaue Verhalten rund um MAXCONNECTIONS variiert ein wenig je nach Build, also überprüfe, was deine spezifische Version unterstützt, bevor du annimmst, dass eine Einstellung funktioniert.

Die D-Line und N-Line: DVN, Newcamd und die Zeilen, die die Leute verwechseln

Ich möchte ehrlich mit dir über die D-Line sein, denn die meisten Seiten, die dieses Thema behandeln, erfinden einfach Felddefinitionen, um Platz zu füllen, und ich werde das nicht tun.

Was eine D-Line tatsächlich ist

Im CCcam-Ökosystem war die D-Line eine veraltete DVN-Protokoll-Clientlinie. Sie ist effektiv obsolet. In den 2.3.x-Bauten, die praktisch alles ausmachen, was heute noch läuft, wirst du fast nie eine schreiben, und modernes CCcam verwendet sie nicht sinnvoll. Wenn dir jemand etwas gibt, das er eine "D-Line" nennt, ist es höchstwahrscheinlich eines von zwei Dingen: eine falsch beschriftete C-Line oder eine Linie, die für eine ganz andere Softcam-Anwendung gedacht ist, die zufällig den Buchstaben D für etwas Unrelated wiederverwendet. Ich werde keine Feld-für-Feld-Semantik für einen Zeilentyp erfinden, der nicht aktiv genutzt wird — wenn du wirklich mit einer arbeiten musst, überprüfe gegen die spezifische Softcam und den Build, der tatsächlich deine Datei analysiert, denn hier zu raten wird deine Zeit verschwenden.

Die N-Line: was du tatsächlich für Newcamd-Server benötigst

Diese ist echt, aktuell und es wert, richtig zu wissen, denn es ist die Linie, die du benötigst, wenn der Server auf der anderen Seite Newcamd spricht, anstatt das CCcam-Protokoll. Vollständige Form:

N: server.example.net 34000 benutzername passwort 01 02 03 04 05 06 07 08 09 10 11 12 13 14

Host, Port, Benutzername, Passwort — bisher die gleiche Idee wie eine C-Line. Dann eine nachfolgende Reihe von vierzehn hexadezimalen Byte-Paaren, durch Leerzeichen getrennt. Das ist der DES-Konfigurationsschlüssel. Er muss genau vierzehn Bytes lang sein. Wenn er kurz ist — dreizehn Bytes oder fünfzehn — wird CCcam die Linie trotzdem ohne Beschwerde akzeptieren, aber die Sitzung wird sich verbinden und dann sofort abbrechen. Das sieht genau wie eine Authentifizierungsablehnung in den Protokollen aus, und es ist leicht, Zeit damit zu verschwenden, einen korrekten Benutzernamen und ein korrektes Passwort zu überprüfen, wenn das tatsächliche Problem ein Schlüssel mit der falschen Byte-Anzahl ist.

Newcamd hat auch keinen offiziellen Portstandard, aber 34000-35000 taucht oft aus Gewohnheit auf. Und im Gegensatz zu einer C-Line, die ein ganzes Kartenportfolio durch ein Login tragen kann, entspricht eine N-Line genau einer Karte oder einem Profil auf der Serverseite — das ist in die Art und Weise eingebaut, wie Newcamd das Reader-Mapping behandelt.

L-Line und M-Line: alte Präfixe, die immer noch herumschwirren

Du wirst gelegentlich L: und M: präfixierte Zeilen in älteren Konfigurationen sehen, die aus Legacy-Images gezogen wurden. Diese beziehen sich auf lokale Kartenleser und Multi-CAM-Verwaltung aus früheren CCcam-Epochen. Sie sind selten in allem, was heute aktiv gewartet wird — wenn du eine in einer Konfiguration findest, die du geerbt hast, ist es sinnvoll zu überprüfen, ob sie in deinem aktuellen Build noch etwas tut, bevor du annimmst, dass sie wichtig ist.

Mapping zu OScam, da die meisten Leute irgendwann hier landenWenn du von CCcam migrierst — und das solltest du wahrscheinlich irgendwann tun — lassen sich die Konzepte sauber übertragen, nur in eine andere Dateistruktur. OScam teilt die Dinge auf,oscam.server, undoscam.userstatt einer flachen Datei.

CCcam.cfgOScam-Äquivalent
C-Line[reader] Block in oscam.server mit Protokoll = cccam
F-Line[account] Block in oscam.user, plus passende cccam-Einträge in oscam.conf
N-Line[reader] Block in oscam.server mit Protokoll = newcamd und einem Schlüssel = line

OScam bietet Ihnen tatsächlich strukturierte Protokollierung pro Reader, was — nach Jahren fast stummer Fehler von CCcam — beim ersten Mal, wenn Sie es sehen, wirklich eine Erleichterung ist.

Debugging einer Linie, die sich nicht verbindet: Ein Entscheidungsbaum

Arbeiten Sie dies der Reihe nach durch. Überspringen Sie nicht — jede Ebene schließt eine Kategorie von Problemen aus, bevor Sie Zeit mit der nächsten verschwenden.

Ebene 1: Ist der Port überhaupt erreichbar?

Vom Gerät selbst, nicht von Ihrem Laptop:

nc -vz server.example.net 12000

Wenn dies fehlschlägt, stoppen Sie. Der Inhalt der Linie ist irrelevant — Sie haben ein Netzwerkproblem, kein Konfigurationsproblem. Überprüfen Sie die Firewall-Regeln, Portweiterleitungen und ob der Server tatsächlich läuft. tcpdump auf dem Gerät kann bestätigen, ob Pakete überhaupt gesendet werden, wenn das Ergebnis von nc inkonsistent erscheint.

Ebene 2: Sieht der Peer überhaupt Ihren Versuch?

Wenn der Port erreichbar ist, die Verbindung jedoch weiterhin fehlschlägt, bitten Sie den Peer, sein eigenes Protokoll auf Ihren Verbindungsversuch zu überprüfen. Wenn es auf deren Seite überhaupt nicht angezeigt wird, haben Sie wahrscheinlich einen anderen Port oder eine andere IP als Sie denken — überprüfen Sie Tippfehler und schließen Sie DDNS aus, das auf eine veraltete IP auflöst, wenn Ihre C-Line schon eine Weile läuft (denken Sie daran, CCcam löst nur beim Start auf).

Ebene 3: Verbunden, aber null Karten

Das ist die verwirrende, und es ist die häufigste Supportfrage, die ich gesehen habe. Die Weboberfläche zeigt Verbunden, aber Sie erhalten nichts. In der Reihenfolge der Wahrscheinlichkeit:

Der F-Line-Eintrag des Peers für Ihr Konto hat uphops auf 0 gesetzt, und sie haben einfach keine lokalen Karten, um sie Ihnen zu senden — nichts falsch auf Ihrer Seite. Oder Ihre eigene C-Line hat einen sharelimit-Block, der auf einen CAID filtert, den der Server nicht einmal führt, sodass alles stillschweigend von Ihrem eigenen Filter abgelehnt wird. Oder, weniger häufig, der Server hat tatsächlich nichts, das den CAIDs entspricht, die er bereit ist zu senden. Überprüfen Sie zuerst den sharelimit-Block auf Ihrer C-Line — es ist das, was Sie kontrollieren, und es ist ein einfacher Tippfehler.

Ebene 4: Karten vorhanden, aber der Kanal ist immer noch schwarz

Karten werden in der Weboberfläche angezeigt, die Verbindung ist gesund, und Sie erhalten immer noch einen schwarzen Bildschirm. Vergleichen Sie den CAID und die Anbieter-ID, die Ihr Receiver für diesen Kanal meldet, mit dem, was tatsächlich in der Kartenliste der Weboberfläche aufgeführt ist. Eine Karte für CAID 0500 ident 032830 wird niemals einen Kanal entschlüsseln, der CAID 0100 ident 000068 benötigt — die Verbindung, die "gesund" ist, sagt Ihnen nichts darüber, ob es die richtige Karte ist. Dies passiert auch mit übereinstimmendem CAID/ident, aber einer anderen Anbieter-Untergruppe darunter, die in der Kartenliste identisch aussieht, aber trotzdem nicht entschlüsseln wird.

Es ist auch wert, hier zu überprüfen: ECM-Antwortzeit. Wenn die ECM-Antwort einer Karte über etwa 800 ms liegt, werden Sie sichtbare Ruckler bei Kanalwechseln sehen, obwohl die Karte technisch funktioniert. Die Weboberfläche zeigt die ECM-Zeit pro Karte — es lohnt sich, auch bei einem "funktionierenden" Setup einen Blick darauf zu werfen.

Die tatsächlichen Protokolle lesen

CCcam schreibt standardmäßig auf stdout. Je nach Image könnte das an/tmp/CCcam.logweitergeleitet werden, oder es könnte überhaupt nirgendwo hingehen, wenn das Startskript der Softcam es nicht umleitet. Wenn Sie feststecken, ist der schnellste Weg, um zu sehen, was tatsächlich passiert, den laufenden Prozess zu beenden und ihn im Vordergrund über SSH mit Debug-Ausgabe zu starten:

CCcam -d

Sie werden das Echtzeitverhalten des Parsers sehen, einschließlich der Zeilen, die er stillschweigend überspringt — was oft der schnellste Weg ist, um eine fehlerhafte Zeile zu fangen, die Sie sonst nie bemerken würden.

Eine Linienquelle wählen, ohne sich verbrennen zu lassen

Ich werde Sie hier nicht auf eine bestimmte Quelle hinweisen — dafür ist dieser Artikel nicht gedacht, und ehrlich gesagt könnte ein Name, den ich heute empfehle, nächsten Monat verschwunden sein. Was ich Ihnen geben kann, ist, was Sie tatsächlich überprüfen sollten, bevor Sie einer Linie vertrauen.

Was eine legitime Quelle im Voraus offenlegt

Eine Quelle, die Vertrauen in das hat, was sie anbietet, wird Ihnen die spezifische CAID- und Anbieter-ID-Liste mitteilen, nicht nur "wie viele Karten." Sie werden die Hop-Tiefe klar angeben — und wenn eine Quelle Ihnen die Hop-Tiefe nicht mitteilt, ist das ein echtes Signal, dass etwas nicht stimmt, denn die Hop-Tiefe ist das tatsächliche Kriterium, das bestimmt, ob die Linie unter realer Nutzung standhält. Sie geben Ihnen normalerweise auch ein Gefühl für die ECM-Antwortzeit, und die meisten legitimen Setups bieten eine Art Testfenster, bevor Sie sich zu irgendetwas verpflichten.

Warnsignale

„Unbegrenzt“ irgendetwas. Kartenanzahlen in den Tausenden — das ist nicht ein Server mit einem riesigen Karteninventar, das ist eine Reshare-Aggregation, die mehrere Hops zusammenstapelt, was genau die Art von Setup ist, das unter Last auseinanderfällt. Keine CAID-Liste überhaupt. Und jeder Druck, zu zahlen, bevor Sie testen dürfen.

Warum die Hop-Zahl das Maß ist, das tatsächlich zählt

Jeder Hop zwischen Ihnen und der physischen Karte fügt Latenz und einen weiteren Ausfallpunkt hinzu. Eine Karte, die drei Hops hinter zwei Resellern sitzt, wird bei schnellen Kanalwechseln einfrieren, egal wie gut Ihr eigenes Netzwerk und Ihre Box sind — es gibt nichts, was Sie lokal konfigurieren können, um ein Problem zu beheben, das drei Server flussaufwärts auftritt. Deshalb sind die Felder sharelimit und uphops, die wir zuvor behandelt haben, nicht nur abstrakte Syntax — sie sind der tatsächliche Mechanismus, um die Hop-Tiefe bei den Linien, die Sie konsumieren oder bereitstellen, unter Kontrolle zu halten.

Das rechtliche Bild, kurz

Das Teilen einer Karte, die Sie rechtmäßig besitzen, über Ihre eigenen Geräte in Ihrem eigenen Netzwerk steht dem ursprünglichen Zweck des Kartenteilens als Technologie nahe. Es ist in den meisten Rechtsordnungen unrechtmäßig, es zu verwenden, um die Entschlüsselung für Kanäle zu erhalten, für die Sie nicht bezahlt haben, und keine Menge korrekter C-Line- oder F-Line-Syntax ändert das. Dieser Artikel dokumentiert das Protokoll — wie die Felder funktionieren, warum Linien fehlschlagen, wie man sie debuggt — nicht einen Weg, um ein Abonnement zu umgehen, das Sie nicht haben.

Was ist der Unterschied zwischen einer C-Line und einer F-Line in CCcam.cfg?

Eine C-Line ist ausgehend: Sie weist Ihre Box auf den Server eines anderen hin und konsumiert dessen Karten. Eine F-Line ist eingehend: Sie erstellt ein Konto auf IHRER Box, in das die C-Line eines anderen einloggt. Sie sind zwei Hälften derselben Beziehung — ein gegenseitiges Peering benötigt eine C-Line und eine F-Line auf beiden Boxen, insgesamt vier Linien. Eine C-Line benötigt keinen offenen Port auf Ihrer Seite; eine F-Line schon.

Was bedeuten die beiden Zahlen am Ende einer F-Line?

F: Benutzerpasswort<uphops> <downhops>Uphops ist, wie tief der Peer in Ihren Kartenbaum gelangen kann (0 = nur Ihre lokalen Karten, 1 = Ihre lokalen Karten plus Karten, die einen Hop entfernt sind). Downhops ist, wie viele Hops der Karten des Peers Sie zurück akzeptieren werden. Der häufige Fehler besteht darin, sie als eine einzige "Qualität"-Einstellung zu behandeln und beide auf 5 zu erhöhen, was den Sharing-Baum überflutet und dazu führt, dass Sie ausgeschlossen werden.

Existiert eine D-Line noch in modernem CCcam?

Effektiv nein. Die D-Line ist eine veraltete DVN-Protokoll-Clientlinie, die aktuelle 2.3.x-Bauten nicht sinnvoll nutzen. Wenn Ihnen jemand eine "D-Line" gibt, ist es fast immer eine falsch beschriftete C-Line oder eine Linie, die für ein anderes Softcam gedacht ist. Kopieren Sie keine Felddefinitionen dafür aus Foren — verifizieren Sie gegen das Linien-Typ-Präfix, das Ihr Softcam tatsächlich analysiert.

Meine C-Line zeigt als verbunden an, aber ich bekomme null Karten. Warum?

Auth erfolgreich, der Austausch von Shares hat nichts zurückgegeben. Drei Ursachen in der Reihenfolge: Die F-Line des Servers für Ihr Konto hat Uphops auf 0 gesetzt und keine lokalen Karten; Ihre C-Line trägt eine sharelimit-Blockade, die alles herausfiltert; oder der Server hat tatsächlich keine Karten auf den CAIDs, die er bereit ist, Ihnen zu senden. Überprüfen Sie die Weboberfläche am Port 16001 — sie unterscheidet "Verbunden, 0 Karten" von "Verbindet".

Welchen Port verwendet CCcam?

Es gibt keinen festen Port. Ausgehende C-Lines verbinden sich mit welchem TCP-Port auch immer der Serverbetreiber gewählt hat — 12000-13000 ist eine gängige Konvention, nicht mehr. Ihr eigener eingehender Port für F-Lines wird durch SERVER LISTEN PORT in CCcam.cfg festgelegt und muss auf Ihrem Router weitergeleitet werden. Die Weboberfläche hat standardmäßig 16001. Newcamd (N-Lines) läuft häufig im Bereich von 34000-35000.

Wo befindet sich CCcam.cfg und wie lade ich es nach der Bearbeitung neu?

/var/etc/CCcam.cfg auf den meisten Enigma2-Images, manchmal /etc/CCcam.cfg auf generischem Linux. CCcam analysiert die Datei nur beim Start — es gibt kein Reload-Signal. Starten Sie die Binärdatei neu (killall -9 CCcam und dann neu starten oder verwenden Sie das Softcam-Skript des Images). Überprüfen Sie immer auf CRLF-Zeilenenden und nicht brechende Leerzeichen, nachdem Sie Zeilen von einer Webseite eingefügt haben; cat -A wird sie offenbaren.

Sollte ich 2026 weiterhin CCcam verwenden oder zu OScam wechseln?

CCcam ist Closed-Source-Abandonware; OScam wird aktiv gewartet, unterstützt das CCcam-Protokoll sowohl als Client als auch als Server und bietet echtes Logging und Kontrolle pro Leser. Die ehrliche Antwort: Verwenden Sie OScam für neue Setups, behalten Sie CCcam nur dort, wo ein altes Image oder ein Peer es erfordert. C-Line entspricht einem OScam [reader] mit protocol=cccam; F-Line entspricht einem oscam.user [account].

Warum funktioniert meine Linie ein paar Minuten und trennt sich dann wiederholt?

In der Regel eine Benutzernamenkollision — zwei Geräte verwenden dieselben F-Line-Anmeldeinformationen, und CCcam erlaubt eine aktive Sitzung pro Konto, sodass jede Verbindung die andere kickt. Überprüfen Sie auch einen dynamischen DNS-Host, der die IP geändert hat (CCcam löst nur beim Start auf) und ob ein ISP oder Router-Idle-Timeout die langfristige TCP-Sitzung trennt.