Loading...
Samouczek konfiguracji serwera CCcam: przewodnik krok po kroku

Samouczek konfiguracji serwera CCcam: przewodnik krok po kroku

Prawidłowa konfiguracja CCcam jest trudniejsza, niż się wydaje. Oprogramowanie uruchamia się bez błędów, pliki dziennika wyglądają na puste, a potem — nic nie działa. Kanały nie są odszyfrowywane, klienci nie mogą się połączyć lub wszystko działa przez 20 minut, zanim się zawiesi. Ten poradnik obejmuje pełną konfigurację, od struktury pliku ccccam.cfg po weryfikację po stronie klienta, w tym tryby awarii, o których większość poradników nie wspomina.

Czym jest CCcam i jak działa model serwer-klient

Przegląd protokołu CCcam

CCcam to protokół współdzielenia kart i aplikacja softcam. Komunikuje się z fizycznym czytnikiem kart inteligentnych w celu uzyskania słów kontrolnych (CW) – kluczy deszyfrujących, których odbiorniki satelitarne potrzebują do dekodowania zakodowanych kanałów telewizyjnych. Protokół obsługuje żądania ECM (Entitlement Control Message) między odbiornikiem a kartą, przekazując odszyfrowane odpowiedzi w czasie niemal rzeczywistym.

Protokół ten został szeroko przyjęty, ponieważ bezproblemowo integrował się z odbiornikami satelitarnymi opartymi na Enigma2 i mógł działać jako usługa w tle w systemie Linux. Działająca instancja CCcam wymaga dwóch rzeczy: ważnej karty inteligentnej z aktywną subskrypcją oraz czytnika kart, z którym oprogramowanie może się komunikować.

Wyjaśnienie ról serwera i klienta

Zrozumienie swojej roli determinuje całe podejście do konfiguracji.

Tryb serwera: Posiadasz fizyczną kartę inteligentną i czytnik kart. CCcam odczytuje kartę bezpośrednio, lokalnie obsługuje żądania ECM i może udostępniać odpowiedzi autoryzowanym kontom klienckim, które zdefiniujesz. Plik ccccam.cfg będzie zawierał linie B lub R wskazujące na sprzęt czytnika kart oraz linie F definiujące, kto może się z Tobą połączyć.

Tryb klienta: Nie masz karty lokalnej. Łączysz się z serwerem CCcam innej osoby za pomocą linii C, którą ona udostępnia. Twój odbiornik wysyła żądania ECM do jej serwera, a jej karta je przetwarza. Autoryzujesz się za pomocą nazwy użytkownika i hasła. W tym trybie Twoja konfiguracja zawiera linie C, ale nie ma linii B ani konfiguracji karty lokalnej.

Wiele konfiguracji łączy oba te podejścia – działając jako klient serwera nadrzędnego, jednocześnie obsługując klientów lokalnych. Nazywa się to kaskadowaniem, a liczba przeskoków kontroluje zasięg udostępniania karty.

Obsługiwane platformy sprzętowe i systemy operacyjne

CCcam działa na kilku platformach, z których każda ma nieco inne wymagania konfiguracyjne:

  • Odbiorniki satelitarne Enigma2 (DreamBox, Vu+, Zgemma, Gigablue) — najpopularniejsze rozwiązanie. CCcam instaluje się jako pakiet ipk lub deb.
  • Linux VPS lub serwer dedykowany — zazwyczaj Ubuntu lub Debian x86/x64. Wymaga czytnika kart inteligentnych USB w trybie serwera. Idealny do wdrożeń na serwerach centralnych.
  • Raspberry Pi — działa dobrze z czytnikiem USB. Wymaga skonfigurowania reguł udev, aby przyznać CCcam uprawnienia dostępu do /dev/ttyUSB0 lub podobnych ścieżek urządzeń. Bez poprawnej reguły udev usługa uruchamia się, ale nie otwiera czytnika.
  • Windows — brak natywnego wsparcia. Wymaga maszyny wirtualnej Linux lub WSL. Niezalecane do zastosowań produkcyjnych.

Rozważania prawne dotyczące użytku osobistego

Oprogramowanie CCcam samo w sobie jest narzędziem. Korzystanie z niego, aby umożliwić własnemu odbiornikowi dostęp do karty inteligentnej, którą posiadasz i na którą masz ważną subskrypcję, to zadanie techniczne związane z konfiguracją. Problemy prawne i związane z warunkami korzystania z usługi stwarza udostępnianie dostępu do jednej karty subskrypcji wielu niezwiązanym ze sobą użytkownikom lub uzyskiwanie dostępu współdzielonego do subskrypcji, za którą nie zapłaciłeś.

Niniejszy przewodnik omawia mechanizmy konfiguracji. Żadne z zawartych tu treści nie ma na celu ułatwienia nieautoryzowanej dystrybucji dostępu do subskrypcji. Przed udostępnieniem dostępu do karty w jakiejkolwiek formie, nawet w obrębie gospodarstwa domowego, należy sprawdzić warunki umowy z dostawcą subskrypcji.

Konfiguracja serwera CCcam: Wyjaśnienie pliku ccccam.cfg

Lokalizacja ścieżki pliku konfiguracyjnego

W odbiornikach Enigma2 plik znajduje się w katalogu /etc/CCcam.cfg . Na serwerach VPS z systemem Linux i usługą CCcam, zazwyczaj znajduje się on w katalogu /usr/local/etc/CCcam.cfg lub w dowolnym innym miejscu wskazanym przez skrypt startowy z flagą -c . W razie wątpliwości sprawdź skrypt init lub plik jednostki systemd.

Jeden krytyczny przypadek skrajny: jeśli edytowałeś plik konfiguracyjny na komputerze z systemem Windows i przesłałeś go przez FTP, prawie na pewno zawiera on zakończenia linii CRLF w stylu Windows. Parser Linuksa w CCcam blokuje się na nich bezgłośnie — linie są odczytywane niepoprawnie, a dyrektywy są ignorowane. Zawsze uruchamiaj plik dos2unix /etc/CCcam.cfg po każdej edycji w systemie Windows przed ponownym uruchomieniem CCcam.

Dyrektywy podstawowe: linia C, linia F, linia N, linia R

Oto przykład z opisami pokazujący podstawowe typy dyrektyw:

# Połącz się z serwerem nadrzędnym (linia C)
# Format: C: nazwa hosta port nazwa użytkownika hasło
C: upstream.example.com 12000 myclientuser mypassword
# Zdefiniuj użytkownika lokalnego, który może połączyć się z TYM serwerem (linia F)
# Format: F: nazwa użytkownika hasło reshare maxhops [IDENT:SID ...]
F: localclient1 hasło tajne 1 1
# Połączenie klienta Newcamd (linia N)
# Format: N: nazwa hosta port nazwa użytkownika hasło klucz DES
N: newcamd.example.com 15050 nuser npassword 0102030405060708091011121314
# Lokalny czytnik kart (linia B dla wbudowanego, linia R dla czytnika Phoenix/smartreader)
B: /dev/sci0
# Czytnik Phoenix/USB szeregowy
R: /dev/ttyUSB0 smartreader

Nieprawidłowo sformatowana linia F to jeden z najczęstszych trybów cichej awarii. Jeśli format jest nieprawidłowy — dodatkowa spacja, brakujące pole, tabulator zamiast spacji — CCcam odczytuje go bezbłędnie, ale konto użytkownika po prostu nie istnieje. Klienci otrzymują błędy uwierzytelniania, a w dzienniku nie ma nic, co by wyjaśniało przyczynę. Zawsze sprawdzaj formatowanie linii F znak po znaku.

Konfigurowanie portu nasłuchującego i nazwy hosta

Ustaw port, na którym nasłuchuje CCcam, w następujący sposób:

SERVERPORT 12000

Domyślnie jest to 12000. Jeśli Twój dostawca usług internetowych blokuje ten port (niektórzy tak robią, szczególnie w przypadku połączeń domowych), zmień go na 8080 lub nawet 443. Każda zmiana wymaga aktualizacji wszystkich linii C klienta skierowanych do tego serwera ORAZ otwarcia nowego portu w zaporze sieciowej. Nie pozostawiaj tego ustawienia domyślnego na publicznym serwerze VPS bez kontroli dostępu opartej na adresie IP — port 12000 jest stale skanowany.

Definiowanie kont użytkowników (linii F) z przeskokami i ponownym udostępnianiem

Wartość współdzielenia kart F-line kontroluje, co podłączony klient może zrobić z otrzymanymi kartami:

  • Udostępnianie 0 — klient nie może udostępniać dalej. Może odszyfrować kanały tylko dla siebie. Użyj tej opcji dla klientów końcowych.
  • Udostępnianie 1 — klient może udostępniać dalej na jednym dodatkowym poziomie. Używaj tylko dla zaufanych operatorów subserwerów.
  • Udostępnianie 2+ — klient udostępnia dalej w łańcuchu. Zwiększa opóźnienie. Unikaj tej opcji, chyba że potrzebujesz kaskadowania wielopoziomowego.
# Użytkownik końcowy — brak udostępniania, maks. 1 przeskok
F: widz1 pass123 0 1
# Operator podserwera — może udostępniać jeden poziom
F: podserwer1 pass456 1 2

Dodawanie lokalnych kart inteligentnych (linie B i R)

Linie B odnoszą się do wbudowanych czytników kart w sprzęcie Enigma2. Linie R obsługują czytniki zewnętrzne. Dla Raspberry Pi z czytnikiem kart inteligentnych USB:

R: /dev/ttyUSB0 smartreader

Ścieżka do urządzenia musi być czytelna dla użytkownika uruchamiającego CCcam. Na Pi dodaj regułę udev, aby przyznać dostęp:

# /etc/udev/rules.d/99-smartcard.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", MODE="0666", GROUP="użytkownicy"

Zastąp wartość idVendor rzeczywistym identyfikatorem dostawcy z lsusb . Przeładuj za pomocą udevadm control --reload-rules . Bez tego kroku CCcam uruchomi się poprawnie, ale czytnik kart nigdy nie zostanie otwarty — w panelu informacyjnym CCcam nie zobaczysz żadnej karty.

Ważne: CCcam nie może współpracować z modułem dostępu warunkowego (CAM) włożonym do gniazda CI odbiornika. Wymaga bezpośredniego połączenia z czytnikiem kart inteligentnych. Jeśli używasz modułu CAM, CCcam nie jest odpowiednim narzędziem do lokalnego dostępu za pomocą karty.

Kaskadowanie i liczba przeskoków: jakich wartości używać

MAXHOPS ogranicza liczbę przeskoków sieciowych, jakie może pokonać żądanie ECM. W przypadku prostej konfiguracji domowej — jeden serwer, dwa lub trzy lokalne odbiorniki — ustaw:

MAXHOPS 1

Każdy dodatkowy przeskok zwiększa opóźnienie. Przy ponad 3 przeskokach zauważysz powolne przełączanie kanałów — czasami 3–5 sekund na zmianę kanału zamiast poniżej 1 sekundy. Zwiększ wartość MAXHOPS tylko wtedy, gdy celowo uruchamiasz sieć wielowarstwową, w której podserwery muszą być dalej kaskadowane.

Zapisywanie i stosowanie zmian konfiguracji

CCcam nie wczytuje konfiguracji „na gorąco”. Po edycji pliku ccccam.cfg należy w pełni zrestartować usługę:

systemctl restart cccam
# lub na Enigmie2:
/etc/init.d/softcam restart

Zawsze wykonaj kopię zapasową konfiguracji roboczej przed wprowadzeniem zmian. Jeden błąd składniowy może spowodować awarię całej usługi.

Konfiguracja po stronie klienta: łączenie się z serwerem CCcam

Konfigurowanie linii C w odbiorniku Enigma2

W przypadku odbiornika Enigma2 działającego wyłącznie jako klient, w pliku CCcam.cfg wystarczy, że linia C będzie wskazywała na serwer:

C: 192.168.1.100 12000 widz1 pass123

W miarę możliwości należy używać adresu IP sieci LAN serwera zamiast nazwy hosta. Rozpoznawanie DNS tworzy punkt awarii — jeśli DNS działa wolno lub jest chwilowo niedostępny, linia C zostaje przerwana, a kanały przestają być odszyfrowywane okresowo. Jest to częsta przyczyna skarg typu „działa dobrze, a potem zrywa połączenie na 30 sekund”. Preferowany jest statyczny adres IP lub niezawodny lokalny wpis DNS.

Konfigurowanie CCcam na obrazach OpenPLi, OpenATV i DreamOS

Proces ten jest spójny we wszystkich popularnych obrazach Enigmy2, ale menedżer pakietów różni się nieznacznie:

  • OpenPLi / OpenATV: Zainstaluj CCcam za pomocą Menedżera Oprogramowania lub kopiując plik IPK do odbiornika i uruchamiając opkg install CCcam*.ipk . Plik konfiguracyjny znajduje się w katalogu /etc/CCcam.cfg .
  • DreamOS (natywny dla DreamBox): Użyj DreamBox App Market lub załaduj pakiet deb za pomocą apt install .

Po instalacji plik konfiguracyjny jest zazwyczaj pusty lub zawiera tylko komentarze. Dodaj linię C i uruchom ponownie softcam.

Korzystanie z CCcam z wtyczką Softcam Manager

Większość obrazów Enigma2 zawiera menedżera Softcam dostępnego z menu głównego. Umożliwia on uruchamianie/zatrzymywanie/przełączanie kamer Softcam bez dostępu SSH. CCcam powinien pojawić się na liście po instalacji. Wybierz go i uruchom — menedżer zajmie się skryptem inicjującym. Jeśli CCcam się nie pojawi, pakiet nie został zainstalowany poprawnie lub plik binarny nie jest wykonywalny.

Testowanie połączenia z panelem informacyjnym CCcam

Wtyczka CCcam Info (dostępna jako osobny pakiet o nazwie enigma2-plugin-extensions-cccaminfo ) wyświetla stan serwera w czasie rzeczywistym. Po zainstalowaniu i uruchomieniu:

  • Połączone karty z Twojej linii C powinny pojawić się w sekcji „Połączone serwery”
  • Aktywne żądania ECM pokazują, że odszyfrowanie kanału działa
  • Sekcja „Udostępnianie” pokazuje, które karty może zobaczyć Twój serwer

Brak podłączonych serwerów oznacza, że linia C jest nieprawidłowa lub serwer jest niedostępny. Karty wymienione, ale brak aktywności ECM oznacza, że karta nie obsługuje oglądanych kanałów. To rozróżnienie ma znaczenie przy rozwiązywaniu problemów.

Interpretacja kolorów i kodów statusu połączenia

W panelu Informacje CCcam wskaźniki stanu oznaczają:

  • Zielony: Połączeni i aktywnie udostępniający — odpowiedzi ECM działają
  • Żółty: Połączony, ale bezczynny — serwer jest dostępny, ale nie ma aktywnych żądań odszyfrowania
  • Czerwony: Połączenie nieudane lub utracone — sprawdź dane uwierzytelniające linii C, dostępność serwera i zaporę sieciową

Żółty kolor jest normalny, gdy nie oglądasz zakodowanego kanału. Czerwony, który nie wraca do normy po ponownym uruchomieniu usługi, wskazuje na problem z siecią lub uwierzytelnianiem, a nie na problem z plikiem konfiguracyjnym po stronie klienta.

Rozwiązywanie problemów z typowymi błędami serwera CCcam

Serwer nie uruchamia się: błędy uprawnień i ścieżki

Jeśli CCcam zamyka się natychmiast po uruchomieniu, sprawdź najpierw dwie rzeczy. Po pierwsze: plik binarny musi być wykonywalny — chmod +x /usr/local/bin/CCcam . Po drugie: ścieżka do pliku konfiguracyjnego w poleceniu startowym musi odpowiadać rzeczywistemu położeniu pliku. CCcam z brakującą konfiguracją nie wyświetla wyraźnego ostrzeżenia; po prostu zamyka się.

Uruchom CCcam ręcznie na pierwszym planie, aby zobaczyć surowy wynik: /usr/local/bin/CCcam -c /etc/CCcam.cfg . Wszelkie błędy uruchamiania są wyświetlane bezpośrednio w terminalu.

Klienci mogą się połączyć, ale kanały nie są odszyfrowywane

To jest tryb awarii, który większość samouczków całkowicie pomija. Klient uwierzytelnia się, CCcam Info wyświetla się na zielono, ale kanały pozostają czarne lub wyświetlają błąd deszyfrowania. Możliwe przyczyny:

  • Karta na serwerze nie posiada pakietu subskrypcji żądanego kanału
  • Liczba przeskoków na linii F jest ustawiona na 0, co oznacza, że karta nie jest w ogóle współdzielona
  • Połączenie czytnika kart jest zerwane — CCcam pokazuje, że karta była obecna podczas uruchamiania, ale od tego czasu została rozłączona
  • W konfiguracji ustawiono zbyt niski LIMIT UDOSTĘPNIANIA, co ogranicza odpowiedzi ECM

Sprawdź plik /tmp/cccam.log pod kątem wierszy zawierających „can't decode” lub „no provider” w odniesieniu do CAID/ID dostawcy kanału. Prawidłowe dekodowanie pokazuje czas odpowiedzi ECM w milisekundach. Brak odpowiedzi ECM oznacza, że karta nie przetworzyła żądania.

Naprawa przekroczenia limitu czasu ECM i długiego czasu zappingu

Przełączanie kanałów trwające ponad 3 sekundy zazwyczaj oznacza: zbyt wiele przeskoków wydłużających czas transmisji, przeciążenie sieci między klientem a serwerem lub powolną reakcję karty (częste w niektórych systemach dostępu warunkowego). Zacznij od zmniejszenia MAXHOPS do 1 i przetestowania lokalnego, zanim obwinisz kartę.

Zbyt wiele połączeń / osiągnięto maksymalną liczbę użytkowników

Jeśli klienci są odrzucani z powodu błędu limitu połączeń, sprawdź linię F — możesz w niej określić maksymalną liczbę połączeń na użytkownika:

# Format: F: użytkownik udostępnia ponownie przeskoki maxcon
F: widz1 pass123 0 1 1

Ostatni parametr ogranicza użytkownikowi możliwość jednego jednoczesnego połączenia. Należy go usunąć lub zwiększyć, jeśli blokowane są prawidłowe połączenia.

CCcam zawiesza się po kilku godzinach

Starsze wersje CCcam (2.1.x i starsze) mają dobrze udokumentowany wyciek pamięci. Proces ten trwa godzinami, aż systemowy OOM-killer go zakończy. Dwie poprawki: aktualizacja do CCcam 2.3.x, który oferuje lepsze zarządzanie pamięcią, oraz skonfigurowanie usługi systemd z Restart=always , aby automatycznie się odzyskiwała. Sama awaria może być nieunikniona w bardzo starych wersjach, ale usługa powinna odzyskać sprawność w ciągu kilku sekund.

Port zablokowany przez zaporę: reguły UFW i iptables

Na serwerze VPS z uruchomioną usługą UFW:

ufw zezwala na 12000/tcp
przeładowanie ufw

Bezpośrednio za pomocą iptables:

iptables -A WEJŚCIE -p tcp --dport 12000 -j AKCEPTUJ
# Zasady zapisywania:
iptables-save > /etc/iptables/rules.v4

Jeśli korzystasz z hostingu współdzielonego, gdzie zaporą sieciową zarządza dostawca, nie możesz samodzielnie otwierać portów — skontaktuj się z jego pomocą techniczną. Jeśli Twój dostawca internetu blokuje port 12000 na połączeniach domowych, zmień SERVERPORT na 8080 lub 443 i odpowiednio zaktualizuj wszystkie linie C klienta. Użytkownicy korzystający z CGNAT (NAT klasy operatorskiej) napotykają trudniejszy problem: standardowe przekierowanie portów na router nie działa, ponieważ nie mają dedykowanego publicznego adresu IP. Rozwiązaniem jest tunel VPN lub odwrotny serwer proxy na serwerze VPS — serwer VPS ma publiczny port i tuneluje ruch do domowego serwera CCcam.

Błędy składni pliku konfiguracyjnego: jak je sprawdzić

CCcam nie ma wbudowanego walidatora konfiguracji, ale szybkie polecenie grep pozwala wykryć typowe problemy z formatowaniem:

# Sprawdź zakończenia linii systemu Windows
cat -A /etc/CCcam.cfg | grep '\^M'
# Wypisz wszystkie linie F, aby zweryfikować format
grep '^F:' /etc/CCcam.cfg
# Sprawdź, czy w trakcie konfiguracji nie ma pustych linii, które mogłyby zakłócić analizę
grep -n '^$' /etc/CCcam.cfg

Jeżeli cat -A pokazuje ^M na końcach wierszy, należy natychmiast uruchomić dos2unix /etc/CCcam.cfg .

Optymalizacja wydajności i bezpieczeństwa serwera CCcam

Wybór odpowiedniej wersji CCcam (2.3.x vs. 2.1.x)

CCcam 2.3.x to ostatnia stabilna wersja i oferuje znaczące ulepszenia w stosunku do wersji 2.1.x: lepsze zarządzanie pamięcią, ulepszoną obsługę wielu kart i bardziej niezawodne odzyskiwanie połączeń upstream. Nie ma aktywnych prac rozwojowych nad wersją 2.3.x. Jeśli instalujesz nową wersję, użyj 2.3.x. Jeśli korzystasz z wersji 2.1.x i występują awarie, pierwszym krokiem jest aktualizacja, a nie rekonfiguracja.

Po aktualizacji należy całkowicie usunąć stary plik binarny przed zainstalowaniem nowego. Jednoczesne uruchomienie dwóch plików binarnych CCcam powoduje konflikt portów, w którym druga instancja nie może połączyć się z portem 12000 i kończy działanie bez powiadomienia, pozostawiając debuggera z „uszkodzoną” nową wersją, która w rzeczywistości działała prawidłowo.

Uruchamianie CCcam jako usługi Systemd w celu automatycznego ponownego uruchomienia

Utwórz /etc/systemd/system/cccam.service :

[Jednostka]
Opis=Serwer udostępniania kart CCcam
After=network.target
[Praca]
Typ=prosty
ExecStart=/usr/local/bin/CCcam -c /etc/CCcam.cfg
Restart=zawsze
RestartSec=5
Użytkownik=cccam
StandardOutput=dziennik
StandardError=dziennik
[Zainstalować]
WantedBy=multi-user.target

Włącz i uruchom:

systemctl daemon-reload
systemctl włącz cccam
systemctl start cccam

Dyrektywa Restart=always oznacza, że CCcam automatycznie odzyskuje dane po awarii w ciągu 5 sekund. To największa poprawa niezawodności, jaką można wprowadzić na serwerze produkcyjnym — samouczki konkurencji rzadko o tym wspominają.

Ograniczanie przepustowości użytkownika i równoczesnych połączeń

W ccccam.cfg ustaw limity połączeń dla każdego użytkownika w wierszu F (jak pokazano w sekcji rozwiązywania problemów) i użyj parametru SHARE LIMIT, aby kontrolować ogólną przepustowość. Nie ustawiaj parametru SHARE LIMIT poniżej liczby jednoczesnych kanałów, których Twoi klienci faktycznie potrzebują — powoduje to spadki ECM, które wyglądają identycznie jak problemy z kartami.

Blokowanie nieautoryzowanych zakresów adresów IP

CCcam obsługuje dyrektywy ALLOW i DENY dotyczące kontroli dostępu opartej na protokole IP:

# Zezwalaj na połączenia tylko z sieci lokalnej i jednego zaufanego adresu IP
ZEZWÓL 192.168.1.0/24
ZEZWÓL 203.0.113.45
ODMÓW 0.0.0.0/0

Po regułach DENY po ALLOW powstaje lista dozwolonych. Bez niej każdy, kto posiada prawidłowe dane uwierzytelniające, może połączyć się z dowolnego miejsca. Na publicznym serwerze VPS ograniczenie oparte na adresie IP jest niezbędne — port 12000 jest aktywnie skanowany.

Monitorowanie obciążenia serwera za pomocą plików dziennika CCcam

CCcam domyślnie zapisuje do pliku /tmp/cccam.log . Na obciążonym serwerze ten plik szybko rośnie. Dodaj rotację logów:

# /etc/logrotate.d/cccam
/tmp/cccam.log { codziennie obróć o 7 kompres brakuje ok powiadomienie puste postrotować systemctl restart cccam napis końcowy
}

Bez rotacji serwer działający przez tygodnie zapełni /tmp i spowoduje awarię programu CCcam, gdy nie będzie mógł zapisywać wpisów w dzienniku.

Najlepsze praktyki dotyczące konfiguracji kopii zapasowych i przywracania

Przed wprowadzeniem jakichkolwiek zmian skopiuj działającą konfigurację: cp /etc/CCcam.cfg /etc/CCcam.cfg.backup.$(date +%Y%m%d) . Przechowuj kopie zapasowe z wersjonowanymi wersjami przez co najmniej 7 dni. Jeśli zarządzasz wieloma odbiornikami, przechowuj konfiguracje w repozytorium git — będziesz mógł porównać zmiany i dokładnie zidentyfikować, co spowodowało błąd.

Co nie działa: błędy, których należy unikać podczas konfiguracji CCcam

Nieprawidłowy format wiersza powodujący ciche awarie

Nieprawidłowo sformatowana linia F nie powoduje błędu. Użytkownik po prostu nie istnieje. Klienci łączący się z tymi danymi są odrzucani, a w logu pojawia się błąd uwierzytelnienia bez żadnej wskazówki, że konto nigdy nie zostało utworzone. Każda linia F wymaga dokładnie tych elementów w kolejności: F: prefiks, spacja, nazwa użytkownika, spacja, hasło, spacja, wartość reshare, spacja, wartość maxhops. Dodatkowe spacje, tabulatory lub brakujące wartości powodują ciche odrzucenie.

Korzystanie z CCcam w NAT bez przekierowania portów

Jeśli serwer CCcam znajduje się za routerem domowym, klienci spoza sieci nie będą mogli się z nim połączyć, chyba że przekierujesz port serwera z routera na komputer z zainstalowanym CCcam. Przejdź do panelu administracyjnego routera i utwórz regułę przekierowania portów: port zewnętrzny 12000, wewnętrzny adres IP komputera CCcam, port wewnętrzny 12000. Klienci będą się wtedy łączyć, używając publicznego adresu IP routera w sieci WAN, a nie adresu IP sieci LAN.

Użytkownicy korzystający z CGNAT nie otrzymują w ogóle publicznego adresu IP — przekierowanie portów nie ma żadnego punktu odniesienia. Rozwiązaniem jest uruchomienie taniego serwera VPS jako przekaźnika. Podłącz WireGuard między serwerem VPS a serwerem domowym, a następnie pozwól klientom połączyć się z serwerem VPS. To wydłuża opóźnienie o 20–40 ms, ale całkowicie rozwiązuje problem CGNAT.

Mieszanie plików konfiguracyjnych CCcam i OSCam

OSCam używa zupełnie innych plików konfiguracyjnych i składni dyrektyw. CCcam używa CCcam.cfg z prefiksami linii C:/F:/B:. OSCam używa oscam.conf , oscam.server , oscam.user , każdy z nagłówkami sekcji w stylu INI. Wklejenie bloków konfiguracyjnych OSCam do pliku konfiguracyjnego CCcam lub odwrotnie, automatycznie przerywa działanie obu. Jeśli migrujesz z OSCam do CCcam, zacznij od czystego pliku konfiguracyjnego — nie próbuj adaptować istniejącego.

Nieprawidłowe wartości przeskoków, które przerywają łańcuch współdzielenia

Ustawienie parametru MAXHOPS na 0 oznacza całkowity brak współdzielenia — tylko lokalne odszyfrowywanie. Serwer z parametrem MAXHOPS na 0 akceptuje połączenia klienckie, ale nic im nie wysyła. Ustawienie na 1 oznacza, że karty są współdzielone na jednym poziomie. Jeśli masz konfigurację trzypoziomową (upstream → Twój serwer → Twoi klienci → ich klienci) i chcesz, aby cały łańcuch działał, potrzebujesz parametru MAXHOPS 3. Każdy poziom, w którym liczba przeskoków jest zbyt niska, automatycznie obcina łańcuch współdzielenia poniżej.

Jednoczesne uruchamianie CCcam i OSCam na tym samym porcie

Niektórzy użytkownicy próbują uruchamiać obie kamery softcam, aby zapewnić elastyczność protokołu. Na tym samym odbiorniku Enigma2 z jednym czytnikiem kart, obie kamery softcam konkurują o kartę fizyczną. Wygrywa ta, która pierwsza przechwyci czytnik; druga nie pojawia się automatycznie lub generuje sporadyczne błędy. Na komputerze z jednym czytnikiem kart uruchamiaj jedną kamerę softcam naraz. Jeśli potrzebujesz obu protokołów, uruchom CCcam na jednym porcie, a OSCam na drugim, ale upewnij się, że tylko jedna z nich ma bezpośredni dostęp do fizycznego czytnika kart. Druga musi działać wyłącznie jako klient.

Jakiego portu CCcam używa domyślnie i czy mogę go zmienić?

CCcam domyślnie nasłuchuje na porcie 12000. Zmień to, dodając SERVERPORT 8080 (lub dowolny inny port) do ccccam.cfg . Po wprowadzeniu zmian musisz zaktualizować wszystkie linie C klienta, aby używały nowego numeru portu ORAZ otworzyć nowy port w zaporze sieciowej. Pamiętaj, aby zamknąć stary port 12000, jeśli już go nie używasz. Jeśli Twój dostawca usług internetowych blokuje port 12000 na łączach domowych, przełączenie na port 8080 lub 443 często stanowi rozwiązanie.

Ile przeskoków powinienem ustawić w konfiguracji CCcam?

W przypadku prostej konfiguracji domowej z jednym serwerem i kilkoma odbiornikami, MAXHOPS 1 jest wystarczający i optymalny. Większa liczba przeskoków wydłuża czas reakcji ECM — przy 3 przeskokach można dodać 500 ms lub więcej na przełącznik kanału, co sprawia, że przełączanie jest powolne. Zwiększ wartość MAXHOPS tylko wtedy, gdy celowo uruchamiasz kaskadową sieć wielowarstwową, w której podserwery muszą dystrybuować karty dalej w łańcuchu.

Dlaczego moje kanały odszyfrowują się przez kilka minut, a potem przestają działać?

Trzy najbardziej prawdopodobne przyczyny: wyciek pamięci w starszych wersjach CCcam powodujący awarię procesu (rozwiązanie: aktualizacja do wersji 2.3.x i skonfigurowanie automatycznego restartu systemd), zerwanie połączenia przez serwer C-line z powodu braku aktywności lub niestabilności lub odświeżanie CW karty w sposób, którego CCcam nie obsługuje poprawnie. Sprawdź plik /tmp/cccam.log pod kątem wpisów „can't decode”, „disconnect” lub „timeout” w czasie zrywania kanałów. Konfiguracja jednostki systemd Restart=always to najpewniejsze rozwiązanie w przypadku zrywania połączeń związanych z awariami.

Czy mogę uruchomić CCcam na serwerze VPS bez fizycznej karty inteligentnej?

Nie. CCcam wymaga fizycznego czytnika kart inteligentnych z ważną kartą abonamentową do wykonania lokalnego odszyfrowania. Bez karty VPS może uruchomić CCcam tylko w trybie klienta — łącząc się z serwerem innej osoby za pomocą linii C i przekazując dostęp do swoich odbiorników. Używanie VPS wyłącznie jako przekaźnika jest technicznie możliwe, ale należy pamiętać, że redystrybucja dostępu innej osoby za pomocą linii C bez autoryzacji narusza warunki użytkowania serwera źródłowego.

Jaka jest różnica pomiędzy linią C i linią F w CCcam?

Wyglądają podobnie, ale działają w przeciwnych kierunkach. Linia C definiuje serwer nadrzędny, z którym łączy się CCcam, jako klienta — to Ty się uwierzytelniasz. Linia F definiuje lokalne konto użytkownika, które łączy się z serwerem CCcam — uwierzytelnia się na Twoim serwerze. Linia C = połączenie wychodzące, które inicjujesz. Linia F = połączenie przychodzące, które ktoś inny nawiązuje z Tobą. Czysta konfiguracja klienta zawiera tylko linie C. Czysta konfiguracja serwera zawiera tylko linie F. Większość konfiguracji zawiera obie.

Jak sprawdzić czy mój serwer CCcam działa prawidłowo?

Trzy metody, w kolejności od najprostszej do najprostszej: Po pierwsze, zainstaluj wtyczkę CCcam Info na odbiorniku Enigma2 i sprawdź, czy połączone serwery są oznaczone na zielono, a karty są wymienione w sekcji Udostępnień. Po drugie, połącz się z serwerem przez SSH i zapisz dziennik: tail -f /tmp/cccam.log — działający serwer wyświetla linie odpowiedzi ECM z czasem milisekundowym podczas przełączania kanałów. Po trzecie, z dowolnego komputera z systemem Linux uruchom telnet yourserverip 12000 — jeśli się połączy, usługa działa, a port jest otwarty. Jeśli odmówi połączenia, CCcam nie działa lub port jest zablokowany.

Czy CCcam jest nadal obsługiwany czy powinienem przejść na OSCam?

Rozwój CCcam zakończył się na wersji 2.3.x. OSCam jest aktywnie utrzymywany, obsługuje więcej systemów dostępu warunkowego, więcej protokołów i posiada internetowy interfejs zarządzania. W przypadku nowych konfiguracji OSCam jest lepszym wyborem długoterminowym. Niemniej jednak, CCcam 2.3.x jest stabilny i nadal niezawodnie działa w przypadku podstawowego udostępniania kart na obsługiwanych identyfikatorach CAID. Jeśli Twoja obecna konfiguracja CCcam działa, nie ma pilnego powodu do migracji. Jeśli zaczynasz od zera lub doświadczasz problemów ze stabilnością, których nie rozwiązują aktualizacje, warto poznać OSCam.