Loading...
Przewodnik konfiguracyjny serwera CCcam + klienta OScam
\n\n

Przewodnik po konfiguracji serwera CCcam + klienta OScam

\n\n

Uzyskanie działającejkonfiguracji klienta oscam serwera cccam wymaga więcej niż tylko dodania bloku [reader] do pliku i liczenia na najlepsze. Istnieją szczegóły protokołu, routing grupowy, ciągi wersji i konfiguracja słuchacza downstream, które muszą być zgodne — a większość przewodników pomija połowę z tego. Ten nie. Poniżej znajduje się wszystko, czego potrzebujesz, od początkowego wyjaśnienia handshake TCP po uruchomienie OScam jako wzmocnionej usługi systemd.

\n\n

Jak działa komunikacja CCcam do OScam

\n\n

Zanim dotkniesz jakiegokolwiek pliku konfiguracyjnego, musisz mieć jasny model mentalny tego, co tak naprawdę dzieje się w sieci. CCcam i OScam to dwa oddzielne programy, które komunikują się za pomocą wspólnego protokołu. OScam łączy sięz serwerem CCcam — a nie odwrotnie.

\n\n

Przegląd handshake protokołu CCcam

\n\n

Gdy OScam otwiera połączenie z serwerem CCcam, pierwszą rzeczą, która się dzieje, jest handshake oparty na SHA1 z wyzwaniem/odpowiedzią. Serwer wysyła 16-bajtowe losowe ziarno, klient używa go razem z nazwą użytkownika i hasłem do obliczenia hasha, a ten hash uwierzytelnia sesję. Żadne hasła w postaci jawnej nie są przesyłane w sieci.

\n\n

Po uwierzytelnieniu serwer wysyła listę udostępnionych — wszystkie CAID-y i identyfikatory dostawców, do których ma dostęp. OScam przechowuje to wewnętrznie i używa do decydowania, do którego czytnika kierować żądania ECM. Połączenie pozostaje otwarte na stałe; żądania ECM wpływają, odszyfrowane odpowiedzi ECW wracają.

\n\n

Co tak naprawdę robi typ czytnika 'cccam' w OScam

\n\n

Moduł czytnika OScam zprotocol = cccam jest czystą implementacją klienta. Komunikuje się z serwerem za pomocą protokołu CCcam. OScam NIE udostępnia portu serwera CCcam, gdy jest skonfigurowany w ten sposób — nie ma zaangażowanego przychodzącego słuchacza CCcam. To zupełnie inna sprawa ([cccam] sekcja w oscam.conf, której tutaj nie używasz).

\n\n

Czytnik obsługuje zarządzanie połączeniami, ponowne łączenie po utracie, analizowanie listy udostępniania oraz przesyłanie ECM. Można to traktować jako sterownik dla zdalnej karty, która znajduje się na serwerze innej osoby.

\n\n

Port 12000 i wyjaśnienie niestandardowych portów CCcam

\n\n

Domyślny port serwera CCcam to12000/TCP. To port skompilowany w oryginalnym binarnym pliku CCcam i na którym działa większość serwerów. Jednak niestandardowe porty (13000, 16000, 10000 itd.) są powszechne — operatorzy zmieniają je, aby uniknąć automatycznych skanerów portów lub aby uruchomić wiele instancji.

\n\n

Jaki port poda ci operator serwera, taki wpisujesz wlinie urządzenia. Nigdy nie zakładaj 12000. Zawsze potwierdzaj. Połączenie z niewłaściwym portem natychmiast daje czysty komunikat "połączenie odrzucone", co jest w rzeczywistości łatwiejsze do debugowania niż błąd autoryzacji.

\n\n

Dlaczego OScam potrzebuje dedykowanego wpisu czytnika dla każdego serwera CCcam

\n\n

Każdyblok [reader] woscam.server reprezentuje jedno trwałe połączenie TCP z jednym serwerem CCcam. Jeśli masz dwa serwery CCcam, potrzebujesz dwóch bloków czytnika z unikalnymi etykietami. Balancer obciążenia OScam traktuje je jako oddzielne źródła i może kierować żądania ECM do tego, który odpowiada najszybciej.

\n\n

Próba upakowania dwóch adresów serwera w jednym bloku czytnika nie działa. Jeden czytnik, jedno połączenie, jeden serwer. To jest model.

\n\n

Konfiguracja OScam oscam.server dla czytnika CCcam

\n\n

Plikoscam.server znajduje się w/etc/oscam/oscam.server w większości instalacji Linux. W obrazach Enigma2 często znajduje się w/etc/tuxbox/config/oscam.server lub/usr/keys/oscam.server. Składnia jest identyczna niezależnie od lokalizacji.

\n\n

Minimalne wymagane dyrektywy dla działającego czytnika CCcam

\n\n

W absolutnym minimum potrzebujesz:etykieta,protokół,urządzenie,użytkownik,hasło, igrupa. Wszystko inne jest opcjonalne, ale zdecydowanie zalecane dla stabilności. Minimalny blok połączenia zadziała, ale napotkasz problemy z czasem bezczynności i brakującymi kanałami bez dodatkowych dyrektyw.

\n\n

Pełny adnotowany blok oscam.server z każdą istotną kluczem

\n\n
[reader]\nlabel = mycccam_reader\nprotocol = cccam\ndevice = SERVER_IP,12000\nuser = YOUR_USER\npassword = YOUR_PASS\ncccversion = 2.3.0\nccckeepalive = 1\ninactivitytimeout = 30\nreconnecttimeout = 30\ngroup = 1\ncccmaxhops = 2\ncccwantemu = 0\ncccos = 0\nccchops = 0\n
\n\n

ZamieńSERVER_IP,YOUR_USER, iYOUR_PASS z tym, co dostarczył operator Twojego serwera. Każda inna wartość powyżej jest rozsądnym domyślnym ustawieniem produkcyjnym. Oto, co robi każda linia:

\n\n
    \n
  • etykieta — Unikalna nazwa dla tego czytnika. Pojawia się w webif i logach. Uczyń ją znaczącą, szczególnie jeśli masz wiele czytników.
  • \n
  • protokół — Informuje OScam, który sterownik połączenia użyć.cccam dla standardowych serwerów CCcam.
  • \n
  • urządzenie — IP/nazwa hosta i port, oddzielone przecinkiem. Bez spacji wokół przecinka.
  • \n
  • użytkownik / hasło — Poświadczenia dokładnie tak, jak zostały podane. Wrażliwe na wielkość liter.
  • \n
  • wersjacc — Ciąg wersji CCcam, który OScam prezentuje podczas handshake. Serwery mogą to sprawdzać.
  • \n
  • ccckeepalive — Wysyła okresowe pingi przez bezczynne połączenia. Ustaw na 1, chyba że Twój serwer wyraźnie odrzuca keepalives.
  • \n
  • timeoutbezczytania — Sekundy braku aktywności ECM, zanim OScam uzna połączenie za nieaktualne i spróbuje ponownie połączyć. 30 to rozsądna wartość.
  • \n
  • timeoutponownegołączenia — Sekundy oczekiwania przed próbą ponownego połączenia po zerwaniu. Utrzymuj to na poziomie 30 lub niżej.
  • \n
  • grupa — Numer grupy czytelników. Musi odpowiadać grupie w twoichoscam.user wpisach, inaczej ECM-y nie będą tutaj kierowane.
  • \n
  • cccmaxhops — Maksymalna liczba skoków udostępniania do zaakceptowania z listy udostępniania serwera. Więcej na ten temat poniżej.
  • \n
  • cccwantemu — Ustaw na 1 tylko wtedy, gdy chcesz, aby serwer udostępniał emulowane karty. Zwykle 0.
  • \n
  • cccos / ccchops — Nadpisz zgłoszony system operacyjny i liczbę skoków w handshake. Pozostaw na 0, chyba że serwer wymaga konkretnych wartości.
  • \n
\n\n

Ustawienie 'protocol = cccam' vs 'protocol = cccam2'

\n\n

cccam2 jest wewnętrzną rozszerzoną wersją protokołu CCcam w OScam. Dodaje funkcje negocjacji listy udostępniania oraz wymiany dodatkowych metadanych. Zasada: działa poprawnie tylko wtedy, gdyoba końce to OScam. Prawdziwy serwer CCcam (uruchamiający rzeczywisty plik binarny CCcam) nie zrozumie rozszerzeń cccam2 i albo odrzuci połączenie, albo będzie się zachowywał w sposób nieprzewidywalny.

\n\n

Zasada ogólna: używajprotocol = cccam dla wszystkiego, co uruchamia rzeczywiste oprogramowanie serwera CCcam. Używajcccam2 tylko w konfiguracjach OScam do OScam. W razie wątpliwości, zacznij odcccam.

\n\n

Dyrektywa 'device': składnia nazwy hosta i portu

\n\n

Standardowy IPv4 lub nazwa hosta:urządzenie = myserver.example.com,12000

\n\n

Adresy IPv6 wymagają notacji w nawiasach:urządzenie = [2001:db8::1],12000. Pomiń nawiasy w IPv6, a OScam nie zdoła poprawnie zinterpretować adresu — to powszechny błąd w konfiguracjach VPS tylko z IPv6.

\n\n

Jeśli twój serwer znajduje się za odwrotnym proxy lub równoważnikiem obciążenia, adres IP, który widzi serwer CCcam, może nie być twoim rzeczywistym adresem IP klienta. Jeśli serwer korzysta z białej listy adresów IP, autoryzacja zakończy się niepowodzeniem, nawet przy poprawnych danych uwierzytelniających. To problem z konfiguracją po stronie serwera — skontaktuj się z operatorem.

\n\n

Pola Nazwa użytkownika, Hasło i cccversion

\n\n

Dane uwierzytelniające są wrażliwe na wielkość liter i muszą dokładnie odpowiadać temu, co jest skonfigurowane na serwerze. Zakończenie spacji w polu hasła spowoduje cichą awarię autoryzacji — uważaj podczas kopiowania i wklejania.

\n\n

Ciągcccversion to informacja, którą OScam przekazuje serwerowi podczas handshake. Powszechne wartości, których oczekują serwery:2.3.0,2.1.4,2.2.1. Jeśli serwer wymusza określoną wersję, a twoja nie pasuje, po autoryzacji połączenie zostaje natychmiast przerwane — nie ma komunikatu o błędzie, który wyraźnie mówi "niezgodność wersji". Po prostu widzisz rozłączenie. Spróbuj2.3.0 najpierw; jeśli to zawiedzie, zapytaj swojego operatora serwera, jakiego ciągu wersji oczekują.

\n\n

Ustawienia inactivitytimeout i Reconnect

\n\n

inactivitytimeout = 30 oznacza, że OScam połączy się ponownie, jeśli przez 30 sekund nie będzie aktywności ECM. To dobre — odzyskuje nieaktywne połączenia bez czekania na wykrycie martwego gniazda przez system operacyjny. W bardzo stratnych sieciach możesz obniżyć tę wartość do 20.

\n\n

reconnecttimeout = 30 to opóźnienie między rozłączeniem a następną próbą ponownego połączenia. Utrzymanie go na poziomie 30 oznacza około 30 sekund potencjalnego czarnego ekranu po utracie serwera. Dla krytycznych konfiguracji z wieloma serwerami, posiadanie niższej wartości (15–20) oraz wielu wpisów czytników jest lepsze niż bombardowanie jednego serwera szybkim ponownym połączeniem.

\n\n

Przypisanie grupy i dlaczego ma znaczenie dla routingu

\n\n

Wartośćgrupy to wewnętrzny mechanizm routingu OScam. Żądanie ECM od klienta downstream (twojego STB) jest przekazywane do czytników, które mają ten sam numer grupy co użytkownik składający żądanie. Jeśli twój czytnik jest w grupie 1, ale wpis użytkownika twojego STB określa grupę 2, ECM nigdy nie dotrze do tego czytnika. Kropka. To najczęstsza błędna konfiguracja w całym procesie konfiguracji klienta cccam serwera oscam i prawie żaden inny przewodnik nie wyjaśnia tego jasno.

\n\n

Ustawienia oscam.conf i oscam.user, które wpływają na klientów CCcam

\n\n

Sekcja Globalna [global]: logfile, nice, maxlogsize

\n\n

Plikoscam.conf w/etc/oscam/oscam.conf kontroluje globalne zachowanie. Minimalny działający[global] blok:

\n\n
[global]\nlogfile = /var/log/oscam/oscam.log\nmaxlogsize = 512\nnice = -1\nWaitForCards = 1\nlb_mode = 1\nlb_save = 1\n
\n\n

maxlogsize jest w KB — 512 KB utrzymuje logi w zarządzalnym stanie bez utraty przydatnej historii.WaitForCards = 1 mówi OScam, aby wstrzymał żądania ECM, aż przynajmniej jeden czytnik będzie gotowy, zamiast natychmiast zwracać "nie znaleziono."nice = -1 nadaje OScamowi nieco podwyższony priorytet planowania CPU, co ma znaczenie na urządzeniach wbudowanych pod obciążeniem.

\n\n

Włączanie interfejsu sieciowego do monitorowania statusu czytnika na żywo

\n\n

Dodaj to dooscam.conf aby włączyć monitor HTTP na porcie 8888:

\n\n
[webif]\nhttpport = 8888\nhttpuser = admin\nhttppwd = twojehasło\nhttprefresh = 10\nhttpallowed = 127.0.0.1,192.168.0.0-192.168.255.255\n
\n\n

Ograniczhttpallowed do swojej lokalnej sieci. Nigdy nie wystawiaj portu 8888 na internet bez uwierzytelnienia, a nawet wtedy to ryzykowne. Interfejs webif to miejsce, w którym będziesz obserwować status czytnika w czasie rzeczywistym — czy połączenie CCcam jest aktywne, liczba skoków, ostatni czas ECM i opóźnienie odpowiedzi. Będziesz to używać nieustannie podczas debugowania.

\n\n

oscam.user: Tworzenie lokalnego użytkownika do przesyłania zdeszyfrowanych ECW do Twojego STB

\n\n

Lokalizacja pliku:/etc/oscam/oscam.user. Potrzebujesz przynajmniej jednego wpisu użytkownika dla urządzenia łączącego się z OScam (Twojego STB, Dreambox, VU+ itp.):

\n\n
[account]\nuser = stbuser\npwd = stbpassword\ngroup = 1\nau = 1\n
\n\n

Grupagroup = 1 tutaj musi odpowiadaćgroup = 1 w bloku czytnika. To jest połączenie. OScam widzi żądanie ECM od stbuser (grupa 1), szuka czytników w grupie 1, znajduje Twój czytnik CCcam, wysyła tam ECM, otrzymuje z powrotem ECW i zwraca go do STB. Zerwanie dopasowania grupy powoduje, że nic nie działa, nawet jeśli połączenie CCcam jest w pełni sprawne.

\n\n

Łączenie użytkowników z grupami czytników za pomocą dyrektywy 'group'

\n\n

Grupy to po prostu liczby całkowite. Możesz używać dowolnej liczby od 1 do 64. Możesz przypisać wiele grup zarówno do czytników, jak i użytkowników, używając przecinków jako separatorów:grupa = 1,2,3. To jest przydatne, gdy masz wiele czytników CCcam w różnych grupach i chcesz, aby użytkownik miał dostęp do wszystkich z nich. Balansator obciążenia OScam wybierze wtedy najlepszego czytnika spośród wszystkich przypisanych grup.

\n\n

Ustawienie 'au' (Auto-Update) poprawnie dla czytników Card Sharing

\n\n

au = 1 w koncie użytkownika włącza automatyczne aktualizacje wiadomości zarządzania uprawnieniami (EMM) dla tego użytkownika. W konfiguracji card sharing, gdzie otrzymujesz tylko odpowiedzi ECM,au = 1 na samym czytniku jest zazwyczaj niepotrzebne i może wprowadzać szumy. Ustaw to na koncie użytkownika downstream, jeśli potrzebujesz przekazywać odnowienia subskrypcji; pozostaw to wyłączone na czytniku, chyba że twój serwer to obsługuje i wymaga.

\n\n

Podłączenie Twojego STB lub Softcam do OScam po autoryzacji CCcam

\n\n

Tutaj większość przewodników konfiguracyjnych klienta OScam dla serwera cccam całkowicie się załamuje. Udało się połączyć OScam z serwerem CCcam i na tym koniec. Ale to połączenie rozwiązuje tylko połowę problemu — udało ci się dostarczyć zaszyfrowane ECM do właściwego miejsca, ale nadal musisz zwrócić odszyfrowane ECW do swojego dekodera.

\n\n

Używanie OScam jako nasłuchiwacza newcamd dla dekoderów Dreambox/VU+

\n\n

Newcamd jest najczęściej obsługiwanym protokołem na dekoderach Enigma2. Dodaj sekcję[newcamd] dooscam.conf:

\n\n
[newcamd]\nklucz = 0102030405060708091011121314\nport = 15050@1702:000000\n
\n\n

Klucz to klucz DES newcamd — musi odpowiadać temu, co skonfigurujesz w kliencie newcamd dekodera. Wartość powyżej to powszechny domyślny; możesz użyć dowolnego 14-bajtowego ciągu szesnastkowego. Liniaport ma formatport@CAID:ProviderIDport@CAID:ProviderID. Użyj000000 jako identyfikatora dostawcy, aby zaakceptować wszystkich dostawców dla tego CAID, lub określ prawdziwy identyfikator dostawcy (np.000000 dla wildcard,000001 dla konkretnego dostawcy). Dla wielu CAID-ów dodaj wiele wpisów portów oddzielonych średnikami:port = 15050@1702:000000;15051@0D00:000000.

\n\n

Konfiguracja oscam.conf [newcamd] Blok Słuchacza

\n\n

Na swoim Dreamboxie lub boxie VU+ dodaj wpis serwera newcamd wskazujący na IP maszyny uruchamiającej OScam, port 15050, z tym samym kluczem DES. STB wysyła żądania ECM do słuchacza newcamd OScam, OScam kieruje je przez czytnik CCcam do serwera, otrzymuje z powrotem ECW i zwraca je do STB. To jest pełny łańcuch.

\n\n

Używanie słuchacza camd35/cs357x OScam dla innych klientów

\n\n

Niektórzy klienci preferują camd35 (nazywany również cs357x). Dodaj dooscam.conf:

\n\n
[cs357x]\nport = 15000\n
\n\n

Dane uwierzytelniające użytkownika dla camd35 pochodzą zoscam.user tak jak w przypadku newcamd. Protokół jest prostszy niż newcamd, ale mniej powszechny w nowoczesnych STB. Użyj newcamd, chyba że twój klient wyraźnie potrzebuje camd35.

\n\n

Wpis oscam.user dla STB: Wymagane pola

\n\n
[account]\nuser = stbuser\npwd = stbpassword\ngroup = 1\nau = 1\nuniq = 0\n
\n\n

uniq = 0 pozwala na jednoczesne łączenie się z tymi samymi poświadczeniami z wielu klientów. Ustaw na1 jeśli chcesz wymusić pojedyncze połączenie na użytkownika. Dla gospodarstwa domowego z jednym STB, obie opcje działają. Dla wspólnych konfiguracji, ustaw na 0, aby uniknąć zablokowania podczas ponownych połączeń.

\n\n

Weryfikacja, czy Card Share przekazuje ECM-y za pomocą statystyk czytnika Webif

\n\n

Otwórzhttp://OSCAM_IP:8888 w przeglądarce. Kliknij na nazwę swojego czytnika. Zobaczysz: status połączenia, ostatni czas ECM, liczbę ECM, czas odpowiedzi w milisekundach i liczbę skoków. Jeśli czytnik pokazuje "połączony", ale liczba ECM pozostaje na zero po próbie dostrojenia kanału, problem leży w dolnym strumieniu — sprawdź połączenie STB z OScam lub sprawdź przypisania grup.

\n\n

Jeśli liczba ECM wzrasta, ale nadal widzisz czarny ekran, serwer CCcam może nie mieć karty dla tego CAID. Sprawdź listę udostępniania w szczegółach czytnika, aby potwierdzić, że potrzebny CAID jest rzeczywiście wymieniony.

\n\n

Rozwiązywanie problemów z połączeniem czytnika CCcam w OScam

\n\n

Czytnik utknął w 'CACHEEX' lub 'CARDOK' nigdy się nie pojawia — przyczyny

\n\n

"CACHEEX" w statusie czytnika zazwyczaj oznacza, że OScam jest w trybie wymiany pamięci podręcznej, a nie w trybie bezpośredniego czytnika CCcam. Sprawdź, czy przypadkowo nie ustawiłeścacheex = 1 w czytniku. Czysty czytnik CCcam powinien pokazywać jako "POŁĄCZONY" lub "CARDOK" po zakończeniu autoryzacji i wysłaniu przez serwer listy udostępniania z rzeczywistymi kartami.

\n\n

Jeśli status nigdy nie osiągnie CARDOK, serwer prawdopodobnie nie ma aktywnych kart na swojej liście udostępniania, lubcccmaxhops filtruje wszystko.

\n\n

AUTORYZACJA NIEUDANA: Zły ciąg cccversion

\n\n

W dzienniku OScam (/var/log/oscam/oscam.log), nieudana autoryzacja wygląda jak:

\n\n
2024/01/15 14:23:01 9876 r mycccam_reader cccam: logowanie nie powiodło się dla użytkownika YOUR_USER\n2024/01/15 14:23:01 9876 r mycccam_reader cccam: połączenie zamknięte
\n\n

Widzisz połączenie, które natychmiast kończy się rozłączeniem. Zanim obwinisz dane logowania, spróbuj zmienićcccversion. Przejdź z2.3.0 na2.1.4 lub odwrotnie. Niektóre serwery są skompilowane tak, aby odrzucać ciągi wersji, których nie rozpoznają. To jest tryb cichej awarii — w logach nie ma wyraźnego błędu "zła wersja", tylko rozłączenie.

\n\n

Aby tymczasowo uzyskać szczegółowy wynik czytnika, dodajloglevel = 512 do[global] w oscam.conf, zrestartuj OScam, sprawdź logi, a następnie usuń to. Ilość logów na poziomie 512 jest znaczna — nie zostawiaj tego na stałe.

\n\n

Odmowa połączenia vs Przekroczenie czasu połączenia — Co oznaczają

\n\n

Odmowa połączenia: Pakiet TCP dotarł do serwera, ale nic nie nasłuchuje na tym porcie. Albo numer portu jest błędny, serwer CCcam nie działa, albo lokalny proces blokuje port (na Enigma2, wtyczka CCcam działająca obok OScam mogła zająć port 12000 — zakończ ją).

\n\n

Przekroczenie czasu połączenia: Pakiet TCP SYN nigdy nie otrzymał odpowiedzi. Albo zapora ogniowa odrzuca pakiety, adres IP jest błędny, albo routowanie jest uszkodzone. Przetestuj za pomocą:nc -zv SERVER_IP 12000. Jeśli się zawiesza, to problem z siecią/zaporą ogniową. Jeśli natychmiast zwraca "odmowa", port jest zamknięty na serwerze.

\n\n

Linie logów OScam, na które warto zwrócić uwagę

\n\n

Sekwencja udanego połączenia w logu wygląda następująco:

\n
r mycccam_reader cccam: rozwiązano SERVER_IP na x.x.x.x\nr mycccam_reader cccam: połączono z x.x.x.x:12000\nr mycccam_reader cccam: logowanie zakończone sukcesem dla użytkownika YOUR_USER\nr mycccam_reader cccam: otrzymano listę udostępnionych kart (47 kart)
\n\n

Jeśli widzisz "otrzymano listę udostępnionych kart (0 kart)" — serwer działa, a twoje dane logowania są poprawne, ale na tym koncie nie ma aktywnych kart. Skontaktuj się z operatorem serwera.

\n\n

Zapora sieciowa i NAT: Upewnij się, że port 12000 jest osiągalny

\n\n

OScam łączy sięwychodząco z portem 12000. Większość domowych konfiguracji NAT pozwala na wychodzące połączenia bez specjalnej konfiguracji. Problemy pojawiają się, gdy zapora sieciowa na samym kliencie blokuje wychodzące połączenia (rzadkie, ale możliwe przy surowych regułach iptables), lub gdy zapora serwera ma białą listę IP, a twój publiczny adres IP nie znajduje się na liście.

\n\n

Sprawdź również: jeśli jesteś w środowisku współdzielonym NAT, gdzie wiele klientów OScam dzieli ten sam publiczny adres IP, serwer CCcam może mieć limit połączeń na IP i odrzucać połączenia przekraczające ten limit. Każdy klient potrzebuje swojej unikalnej pary nazwa użytkownika/hasło — te same dane logowania z tego samego IP czasami działają, ale te same dane logowania z tego samego IP jednocześnie prawie zawsze zawodzą.

\n\n

cccmaxhops ustawione zbyt nisko — wyjaśnienie brakujących kanałów

\n\n

Karty CCcam mają "licznik skoków" — ile przekaźników karta przeszła, aby dotrzeć do twojego serwera. Karta bezpośrednio w sprzęcie serwera to skok 0. Karta udostępniona z innego serwera CCcam do twojego to skok 1. Udostępniona ponownie, skok 2. I tak dalej.

\n\n

cccmaxhops = 1 oznacza, że OScam będzie używać tylko kart z licznikiem skoków 0 lub 1. Karty na skoku 2+ są w liście udostępnionych, ale OScam je ignoruje. Jeśli kanał, którego potrzebujesz, pochodzi z karty na skoku 2, będziesz połączony, czytnik będzie pokazywał jako zdrowy, ale ten konkretny kanał nie zostanie odszyfrowany. Ustawcccmaxhops = 2 lub wyżej, jeśli masz problemy z brakującymi kanałami. Pamiętaj, że bardzo wysokie wartości (8+) mogą spowodować, że OScam otrzyma ogromne listy udostępnionych na zajętych serwerach, co zużywa pamięć — realny problem na sprzęcie Dreambox z 256MB RAM.

\n\n

Duplikaty wpisów czytnika powodujące pętle ponownych połączeń

\n\n

Dwa wpisy czytnika z tym samym etykietą woscam.server powodują mylące zachowanie — OScam może załadować oba, tworząc duplikaty prób połączeń z tym samym serwerem. Dziennik pokaże szybkie cykle łączenia/rozłączania. Używaj unikalnych etykiet dla każdego czytnika. Sprawdź przypadkowe duplikaty, jeśli widzisz, że czytnik skacze w webif.

\n\n

Wzmacnianie i optymalizacja wydajności dla czytnika OScam CCcam

\n\n

Ustawienie reconnecttimeout, aby uniknąć opóźnień Zap

\n\n

Przy tylko jednym czytniku CCcam, utrata serwera oznacza czarny ekran, aż OScam się połączy ponownie.reconnecttimeout = 30 jest domyślną wartością, co oznacza do 30 sekund czerni. Obniżenie do 15 skraca ten czas, ale zwiększa częstotliwość ponownych połączeń w przypadku niestabilnych połączeń. Dla produkcji lepszym rozwiązaniem jest uruchomienie dwóch wpisów czytnika wskazujących na różne serwery zlb_mode = 1 niż dostosowywanie samego czasu ponownego połączenia.

\n\n

ccckeepalive i jego wpływ na bezczynne połączenia

\n\n

ccckeepalive = 1 wysyła okresowe wiadomości typu ping przez połączenie TCP CCcam w czasie bezczynności. Bez tego, mapowania NAT na routerach zazwyczaj wygasają po 60–300 sekundach bezczynności, cicho zabijając sesję TCP. OScam nie będzie wiedział, że połączenie jest martwe, aż do momentu, gdy następne żądanie ECM się nie powiedzie. Z włączonym keepalive, mapowanie NAT pozostaje aktywne, a OScam szybciej wykrywa utraty połączenia. Zostaw to włączone.

\n\n

Używanie lb_mode (Równoważenie obciążenia) przy łączeniu z wieloma serwerami CCcam

\n\n

Ustaw woscam.conf [global]:

\n
    \n
  • lb_mode = 0: Brak równoważenia obciążenia. OScam używa pierwszego dostępnego czytnika na liście. Proste, ale nie przynosi korzyści wydajnościowych.
  • \n
  • lb_mode = 1: Najszybszy czytnik wygrywa. OScam śledzi czasy odpowiedzi ECM dla każdego czytnika i kieruje przyszłe żądania do czytnika z najlepszym średnim czasem odpowiedzi. To jest to, czego chcesz w konfiguracji z wieloma serwerami.
  • \n
  • lb_mode = 5: Ważony losowy. Uwzględnia czas odpowiedzi, ale dodaje losowość, aby rozłożyć obciążenie. Przydatne, gdy masz wiele serwerów o podobnej jakości i nie chcesz, aby jeden z nich otrzymywał cały ruch.
  • \n
\n\n

Dla większości konfiguracji z 2–4 czytnikami CCcam,lb_mode = 1 zlb_save = 1 (zapisuje nauczone statystyki na dysku, aby OScam nie startował w trybie ślepym po restarcie) jest właściwym wyborem.

\n\n

Konfiguracja Logrotate dla logów OScam, aby zapobiec zapełnieniu dysku

\n\n

Utwórz/etc/logrotate.d/oscam:

\n\n
/var/log/oscam/oscam.log {\n codziennie\n rotuj 7\n kompresuj\n brakok\n niepusty\n kopiuj i skróć\n}
\n\n

kopiuj i skróć jest tutaj ważne — OScam trzyma uchwyt do pliku logu otwarty, więc standardowe rotowanie i sygnalizowanie nie zadziała bez wysłania OScam sygnału SIGHUP. Kopiuj i skróć kopiuje plik, a następnie skraca oryginał w miejscu, co działa bez dotykania procesu OScam. Na wbudowanych urządzeniach Enigma2 z małą pamięcią flash, rotuj bardziej agresywnie:rotuj 3 i rozważmaksymalny rozmiar 1M.

\n\n

Uruchamianie OScam jako usługi systemd bez uprawnień roota

\n\n

Utwórz użytkownika i katalog:

\n
useradd -r -s /sbin/nologin oscam\nmkdir -p /var/log/oscam\nchown oscam:oscam /var/log/oscam\nchown -R oscam:oscam /etc/oscam\n
\n\n

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

\n\n
[Jednostka]\nOpis=OScam Softcam\nPo=network-online.target\nChce=network-online.target\n\n[Usługa]\nTyp=prosty\nUżytkownik=oscam\nGrupa=oscam\nExecStart=/usr/bin/oscam -B /var/run/oscam.pid -c /etc/oscam\nPIDFile=/var/run/oscam.pid\nRestart=przy-błędzie\nRestartSec=10\nStandardOutput=null\n\n[Instalacja]\nChcianePrzez=multi-user.target\n
\n\n

Włącz i uruchom:

\n
systemctl daemon-reload\nsystemctl enable oscam\nsystemctl start oscam\n
\n\n

Uruchamianie jako użytkownik nie-root oznacza, że skompromitowany proces OScam nie może zniszczyć systemu. DyrektywaRestart=przy-błędzie automatycznie obsługuje niespodziewane awarie. To standardowa praktyka i zajmuje około 5 minut, aby skonfigurować — pomiń to, a uruchamiasz usługę dostępną w sieci jako root na czas nieokreślony.

\n\n

Ostatnia kontrola przed założeniem, że konfiguracja klienta oscam serwera cccam jest kompletna: uruchomoscam --version i sprawdź listę modułów w wyjściu. Niektóre minimalne lub okrojone wersje skompilowane dla konkretnych celów wbudowanych całkowicie wykluczają moduł czytnika CCcam. Jeśli nie widzisz "cccam" na liście skompilowanych modułów, żadne zmiany w konfiguracji nie sprawią, że to zadziała — potrzebujesz pełnowartościowej wersji OScam.

\n\n
\n

Najczęściej Zadawane Pytania

\n\n
\n

Jaki jest domyślny port dla serwera CCcam, do którego łączy się OScam?

\n

Domyślny port serwera CCcam to12000/TCP. Wielu operatorów działa na niestandardowych portach — zawsze potwierdź z kimkolwiek, kto dał ci dane logowania do serwera. Port jest ustawiony wlinijce urządzenia woscam.server jakohostname,portbez spacji. Nigdy nie zakładaj 12000, jeśli nie zostało to wyraźnie powiedziane dla portu.

\n
\n\n
\n

Jaka jest różnica między 'protocol = cccam' a 'protocol = cccam2' w OScam?

\n

cccam2 to wewnętrzna, rozszerzona wersja protokołu OScam z dodatkowymi funkcjami negocjacji udziału. Działa poprawnie tylko wtedy, gdy zarówno klient, jak i serwer działają na OScam. Prawdziwy binarny serwer CCcam nie zrozumie rozszerzeń cccam2 — odrzuci połączenie lub będzie się zachowywał w sposób nieprzewidywalny. Użyjprotocol = cccam dla wszystkiego, co działa na rzeczywistym oprogramowaniu serwera CCcam, acccam2 zarezerwuj wyłącznie dla konfiguracji OScam-do-OScam.

\n
\n\n
\n

Dlaczego mój czytnik OScam pokazuje 'połączony', ale kanały nadal się nie deszyfrują?

\n

"Połączony" oznacza tylko, że połączenie TCP jest aktywne — nie gwarantuje dostępności karty. Przejdź przez tę listę kontrolną: (1) Czycccmaxhops jest wystarczająco wysokie, aby dotrzeć do potrzebnych kart? (2) Czy CAID i identyfikator dostawcy, których potrzebujesz, są faktycznie na liście udziałów serwera? (3) Czy grupaoscam.user twojego STB pasuje do grupy czytnika? (4) Sprawdź liczby żądań ECM w szczegółach czytnika w webif — jeśli są na zero, żądanie nawet nie dociera do OScam z STB.

\n
\n\n
\n

Czy OScam może łączyć się z wieloma serwerami CCcam jednocześnie?

\n

Tak. Dodaj wiele[reader] bloków woscam.server, każdy z unikalnymetykieta. Przypisz tę samą grupę do wszystkich, jeśli chcesz zjednoczonego routingu, lub różne grupy dla oddzielnych poziomów dostępu. Ustawlb_mode = 1 woscam.conf [global] aby OScam automatycznie kierował każde żądanie ECM do najszybciej odpowiadającego czytnika. Dodajlb_save = 1 aby te nauczone czasy utrzymywały się po restarcie.

\n
\n\n
\n

Na co powinienem zwrócić uwagę oceniając niezawodność serwera CCcam przed jego skonfigurowaniem?

\n

Kluczowe rzeczy do sprawdzenia: Czy operator publikuje statystyki dostępności lub ma stronę statusu? Gdzie serwer znajduje się geograficznie w stosunku do Ciebie — lokalizacja serwera bezpośrednio wpływa na opóźnienie odpowiedzi ECM. Ile jednoczesnych połączeń pozwala konto? Czy operator zapewnia linię testową przed pełnym zobowiązaniem? Czy istnieje jakakolwiek dokumentacja techniczna dotycząca konfiguracji serwera? Unikaj serwerów bez dostępu próbnego i bez możliwości weryfikacji, że konfiguracja działa przed skonfigurowaniem wszystkiego wokół niej.

\n
\n\n
\n

Jak mogę sprawdzić logi OScam, aby potwierdzić, że czytnik CCcam uwierzytelnił się pomyślnie?

\n

W/var/log/oscam/oscam.log lub w widoku logu webif, pomyślne uwierzytelnienie pokazuje linie z etykietą Twojego czytnika, po których następuje "cccam: logowanie udane" a następnie "otrzymano listę udostępnionych". Nieudane uwierzytelnienie pokazuje "logowanie nieudane" lub natychmiastowe rozłączenie tuż po linii połączenia TCP. Jeśli potrzebujesz więcej szczegółów, tymczasowo dodajloglevel = 512 do[global] woscam.conf i zrestartuj — to generuje szczegółowe dane wyjściowe dla każdego czytnika. Usuń to po debugowaniu; objętość logu jest duża.

\n
\n\n
\n

Czy OScam obsługuje udostępnianie kart CCcam zarówno na platformach Linux, jak i wbudowanych (Enigma2)?

\n

Tak, a składnia konfiguracjioscam.server jest identyczna w obu przypadkach. Na Enigma2 (Dreambox, VU+) OScam jest instalowany jako wtyczka ipk lub opk. Pliki konfiguracyjne zazwyczaj znajdują się w/etc/tuxbox/config/ lub/usr/keys/ w zależności od obrazu. Uwaga na Enigma2: jeśli wtyczka CCcam jest również zainstalowana i działa, może już nasłuchiwać na porcie 12000 lokalnie. To powoduje "połączenie odrzucone", gdy czytnik OScam próbuje połączyć się z serwerem — zabij wtyczkę CCcam, która powoduje konflikt, i łącz się tylko przez OScam.

\n
\n\n