Loading...
Instalacja serwera CCcam na Ubuntu: Kompletny przewodnik
```html

Zainstaluj serwer CCcam na Ubuntu: Kompletny przewodnik konfiguracji

Jeśli próbujesz zainstalować serwer cccam na ubuntu i napotykasz przeszkody — brakujące biblioteki, ciche awarie, klienty, które się nie łączą — nie jesteś sam. To jedna z tych konfiguracji, gdzie dokumentacja jest rozproszona, przestarzała lub napisana dla Debiana Lenny'ego. Ten przewodnik obejmuje cały proces od początku: zależności, umieszczenie pliku binarnego, usługę systemd, składnię pliku konfiguracji, reguły zapory i wzmacnianie bezpieczeństwa. Prawdziwe polecenia, rzeczywiste ścieżki plików, bez wykrętów.

Wymagania wstępne przed zainstalowaniem CCcam na Ubuntu

Zanim dotkniesz pliku binarnego, przygotuj swój system. Pominięcie tej części to powód, dla którego większość instalacji kończy się cichą awarią.

Obsługiwane wersje Ubuntu (18.04, 20.04, 22.04)

Ubuntu 20.04 LTS to w tej chwili najlepszy wybór. 18.04 osiągnęło koniec wsparcia w kwietniu 2023, więc nie używaj go do niczego, na czym Ci zależy. 22.04 działa, ale wprowadza problem multiarch z libssl — więcej poniżej. Jeśli jesteś na 22.04, spodziewaj się spędzenia dodatkowego czasu na zgodności bibliotek. Wszystko starsze niż 18.04 to ślepa uliczka.

Wymagany sprzęt: czytniki kart inteligentnych i karty CAM

Potrzebujesz fizycznego czytnika kart inteligentnych, który Linux rozpoznaje. Czytniki USB (takie jak Omnikey 3121 lub Gemalto PC Twin) to najłatwiejsza droga. Wewnętrzne sloty CI+ pojawiają się jako /dev/ci0 lub podobnie — ścieżka urządzenia się różni i będziesz musiał ją ręcznie zweryfikować za pomocą ls /dev/ci*. Jeśli masz podłączonych wiele czytników, CCcam spróbuje przejąć pierwszy, który znajdzie, więc wiedz, która ścieżka urządzenia odpowiada któremu czytnikowi, zanim skonfigurujesz cokolwiek.

Działasz na Raspberry Pi? Stop tutaj. CCcam to plik binarny x86 — nie będzie działać na ARM. Zamiast tego użyj OScam, który ma natywne kompilacje ARM.

Wymagane pakiety: libssl, libpcsclite, pcscd

Najpierw dodaj obsługę architektury i386. Na 64-bitowym systemie Ubuntu jest to nieuniknione:

sudo dpkg --add-architecture i386
sudo apt update

Następnie zainstaluj wymagane pakiety:

sudo apt install pcscd libpcsclite1 libpcsclite-dev \ libssl-dev libc6:i386 libstdc++6:i386 libpcsclite1:i386

Na Ubuntu 22.04 libssl1.0 zniknął. Zamiast tego potrzebujesz libssl1.1:i386. Jeśli to również nie jest dostępne w repozytoriach, możesz być zmuszony pobrać .deb z puli Ubuntu 20.04 i zainstalować go ręcznie za pomocą dpkg -i. To irytujące, ale działa.

Sprawdzanie modułu jądra dla czytnika kart inteligentnych (pcsc_scan)

Zainstaluj i uruchom pcsc_scan zanim zrobisz cokolwiek innego z CCcam:

sudo apt install pcsc-tools
sudo systemctl start pcscd
pcsc_scan

Jeśli Twój czytnik kart się pojawi i karta zostanie wykryta, jesteś w porządku. Jeśli pcsc_scan zawiesza się lub zgłasza brak czytników, problem jest na poziomie systemu operacyjnego i CCcam nie może go naprawić. Sprawdź dmesg | grep -i usb, aby zobaczyć, czy czytnik został w ogóle rozpoznany po podłączeniu. The p

```cscd daemon musi być uruchomiony przed uruchomieniem CCcam — jeśli nie, CCcam zaloguje can't open /dev/pcsc i twoja karta nie będzie działać.

Pobieranie i instalacja binarka CCcam na Ubuntu

CCcam nie ma oficjalnego kanału dystrybucji — deweloperzy zamknęli projekt wiele lat temu. Popularne wersje to 2.1.4, 2.2.1 i 2.3.0. Wersja 2.3.0 ma najlepszą kompatybilność z klientami. Pobierz binarny ze źródła, któremu ufasz (forum satelitarne, archiwa społeczności). Nie linkuj i nie polegaj na losowych stronach sprzedawców — niektóre rozpowszechniają zmienione binarne.

Gdzie uzyskać binarny CCcam (wersja 2.1.4, 2.2.1, 2.3.0)

Różnice wersji mają znaczenie dla kompatybilności klientów. Niektóre starsze dekodery obsługują tylko protokół w wersji 2.1.x. Jeśli klienci się rozłączają lub uwierzytelnianie zawodzi bez oczywistego powodu, sprawdź, czy oprogramowanie klienta oczekuje konkretnej wersji CCcam. Wersja 2.3.0 jest ogólnie najbardziej permisywna i wstecznie kompatybilna.

Uczynienie binarka wykonywalnym: chmod i umieszczenie w /usr/local/bin

Gdy masz już binarny:

chmod +x CCcam
sudo mv CCcam /usr/local/bin/CCcam

To wszystko dla umieszczenia. /usr/local/bin utrzymuje to czyste i w ścieżce systemowej PATH.

Obsługiwanie 32-bitowych zależności na 64-bitowym Ubuntu

To jest najczęstszy punkt awarii instalacji i większość przewodników nawet o tym nie wspomina. CCcam jest 32-bitowym binarnym. Na 64-bitowym Ubuntu uruchomienie go bez bibliotek i386 daje ci to:

bash: /usr/local/bin/CCcam: No such file or directory

Plik istnieje. Błąd jest wprowadzający w błąd. To, co naprawdę brakuje, to 32-bitowy interpreter ELF. Napraw to:

sudo apt install libc6:i386 libstdc++6:i386 libssl1.1:i386 libpcsclite1:i386

Jeśli korzystasz z 22.04 i libssl1.1:i386 nie instaluje się prawidłowo, pobierz pakiet bezpośrednio:

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_i386.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_i386.deb

Weryfikacja uruchamiania binarka: ./CCcam --version

Przetestuj to przed zbudowaniem usługi wokół niego:

CCcam --version

Powinieneś zobaczyć ciąg znaków wersji. Jeśli segfault natychmiast, masz jeszcze brakujące 32-bitowe biblioteki. Uruchom ldd /usr/local/bin/CCcam i szukaj dowolnej linii mówiącej not found — to są twoje brakujące zależności.

Konfiguracja CCcam jako usługi systemd

Zapomnij o starych skryptach init.d. Utwórz właściwą jednostkę systemd w /etc/systemd/system/cccam.service:

[Unit]
Description=CCcam Card Sharing Server
After=network.target pcscd.service
Requires=pcscd.service
[Service]
Type=simple
User=cccam
Group=cccam
WorkingDirectory=/etc/cccam
ExecStart=/usr/local/bin/CCcam
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

```html

Następnie włącz i uruchom:

sudo systemctl daemon-reload
sudo systemctl enable cccam
sudo systemctl start cccam

Linia Requires=pcscd.service zapewnia, że pcscd jest uruchomiony zanim CCcam spróbuje uzyskać dostęp do czytnika kart. Bez tego otrzymasz warunek wyścigu podczas uruchamiania, gdzie CCcam uruchamia się jako pierwszy i nic nie znajduje.

Konfiguracja CCcam: Wyjaśnienie pliku CCcam.cfg

Plik konfiguracyjny to miejsce, w którym większość ludzi spędza najwięcej czasu. Składnia jest nieubłagana, a komunikaty błędów nie są pomocne.

Domyślna lokalizacja pliku konfiguracyjnego: /etc/CCcam.cfg i ~/.CCcam/CCcam.cfg

CCcam domyślnie szuka swojej konfiguracji w /etc/CCcam.cfg podczas uruchamiania jako usługa systemowa. Jeśli uruchomiony jako użytkownik, sprawdza ~/.CCcam/CCcam.cfg. W przypadku usługi systemd uruchamianej jako użytkownik cccam, umieść konfigurację w /etc/CCcam.cfg i upewnij się, że uprawnienia pliku pozwalają użytkownikowi cccam na jego odczyt. Również: nie czyń tego pliku zapisywalnym dla wszystkich. CCcam odmówi uruchomienia, jeśli /etc/CCcam.cfg ma uprawnienia szersze niż 640.

Główne dyrektywy: PORT, SERVERIP, LOGFILE, CLIENTMAXHOPS

Oto pełny, adnotowany przykład konfiguracji:

# CCcam.cfg - Główny plik konfiguracyjny
# Port, na którym CCcam nasłuchuje połączeń klientów (domyślnie 12000)
PORT = 12000
# Powiąż ze wszystkimi interfejsami (użyj określonego IP dla bezpieczeństwa)
SERVERIP = 0.0.0.0
# Ustawienia rejestrowania
LOGFILE = /var/log/cccam.log
LOG LEVEL = 1
# Ogranicz liczę przeskoków, aby zmniejszyć opóźnienie i nadużycia
CLIENTMAXHOPS = 1
# Poziom ponownego udostępniania: 0 = brak ponownego udostępniania, 1 = ponowne udostępnianie klientom, 2 = ponowne udostępnianie otrzymanych kart
RESHARE = 1
# Buforuj odpowiedzi ECM (milisekundy)
CACHEEX = 0

LOG LEVEL 0 to cisza, 1 to normalnie, 3 to szczegółowe debugowanie. W produkcji użyj 1. Poziom 3 szybko zapełni dysk gigabajtami danych i zniszczy wydajność I/O.

Definiowanie lokalnych czytników kart: linie DEVICE i SMARTCARD

Dla czytnika USB:

DEVICE = /dev/ttyUSB0

Dla czytnika opartego na pcsc:

DEVICE = /dev/pcsc/1

Jeśli masz wielu czytelników, określ każdy w osobnej linii DEVICE. CCcam będzie je inicjalizować w kolejności. Dla wewnętrznego gniazda CI+, użyj /dev/ci0. Zweryfikuj rzeczywistą ścieżkę urządzenia za pomocą ls -la /dev/pcsc/ lub pcsc_scan przed umieszczeniem jej w konfiguracji.

Dodawanie użytkowników klientów: składnia linii C: i F:

To miejsce, w którym prawie każdy przewodnik robi to źle lub wcale tego nie wyjaśnia. Istnieją dwa zupełnie różne typy linii i pełnią one przeciwne role.

Linie F: definiują użytkowników, którzy łączą się z Twoim serwerem. To są Twoi klienci:

# F: nazwa_użytkownika hasło {ponowne_udostępnianie} {ignoruj_ponowne_udostępnianie} {ukryte}
F: client1 secretpass1 1 0 0
F: client2 anotherpass 0 0 0

Linie C: definiują serwery upstream, do których łączy się Twój CCcam:

# C: hostname port username password {ukryte
```} C: upstream.example.local 12000 myuser mypassword 0

Pole reshare w liniach F: kontroluje, czy ten klient może ponownie udostępniać to, co otrzymuje. Ustaw na 0, jeśli nie chcesz, aby klienci redystrybuowali karty. Pole stealth ukrywa informacje o karcie przed tym klientem, gdy ustawione na 1.

Dodawanie serwerów upstream: format linii C: (hostname port username password)

Jeśli łączysz się z upstream serwerem CCcam w celu uzyskania kart, które nie masz lokalnie:

C: 192.168.1.100 12000 username password 0

Piąte pole (tryb stealth) jest opcjonalne, ale domyślnie wynosi 0. Użycie nazwy hosta działa, ale rozdzielczość DNS przy uruchamianiu może spowodować opóźnienia — dla konfiguracji lokalnych preferuj adresy IP.

Ustawianie bufora ECM i poziomów ponownego udostępniania

RESHARE kontroluje, jak otrzymane karty się rozpowszechniają. RESHARE = 0 oznacza, że twój serwer nie będzie przekazywać żadnych kart, które otrzymuje z upstream, twoim lokalnym klientom. RESHARE = 1 oznacza, że będzie. RESHARE = 2 oznacza, że klienci mogą ponownie udostępniać — generalnie unikaj tego, chyba że chcesz specjalnie węzeł przekaźnika.

CLIENTMAXHOPS = 1 ogranicza liczbę przeskoków karty do jednego. Zmniejsza to opóźnienia i uniemożliwia użycie twojego serwera jako przekaźnika, przez który ponownie udostępniane karty wciąż przeskakują przez wiele serwerów. Pozostaw to na 1 dla standardowej konfiguracji lokalnej.

Włączanie obsługi protokołu Newcamd i Camd35

CCcam może również mówić w protokołach Newcamd (linie N:) i Camd35 dla kompatybilności z klientami, które nie obsługują natywnego protokołu CCcam:

# Port Newcamd
NEWCAMD PORT = 15050
# Port Camd35
CAMD35 PORT = 15001

To są osobne porty. Otwórz je w zaporze ogniowej w taki sam sposób, jak port 12000. Nie wszyscy klienci potrzebują tego — natywny protokół CCcam na porcie 12000 jest wystarczający dla większości nowoczesnych odbiorników.

Zapora sieciowa, sieć i konfiguracja portów

Otwieranie domyślnego portu CCcam 12000 za pomocą ufw

CCcam komunikuje się przez TCP, a nie UDP. Otwórz go za pomocą:

sudo ufw allow 12000/tcp

Jeśli dodałeś porty Newcamd lub Camd35:

sudo ufw allow 15050/tcp
sudo ufw allow 15001/tcp

Sprawdź swoje reguły za pomocą sudo ufw status numbered.

Używanie portów niestandardowych w celu zmniejszenia ekspozycji

Uruchamianie na porcie 12000 jest w porządku dla prywatnej konfiguracji lokalnej, ale jeśli serwer jest dostępny z Internetu, zautomatyzowane skanery regularnie trafiają na ten port. Przenieś CCcam na coś w rodzaju portu 29100 lub 38000 — zaktualizuj zarówno PORT w CCcam.cfg, jak i regułę ufw. To nie jest rzeczywiste bezpieczeństwo, ale to eliminuje szum.

Powiązanie z konkretnym interfejsem sieciowym za pomocą SERVERIP

SERVERIP = 0.0.0.0 wiąże się ze wszystkimi interfejsami. Jeśli twój serwer ma wiele interfejsów sieciowych (na przykład interfejs LAN na 192.168.1.10 i interfejs WAN), możesz ograniczyć CCcam do nasłuchu tylko na stronie LAN:

SERVERIP = 192.168.1.10

Jest to szczególnie przydatne, jeśli masz konfigurację statycznego NAT z wieloma adresami IP WAN i nie chcesz, aby CCcam przypadkow

łączy się do interfejsu. W większości domowych konfiguracji 0.0.0.0 jest w porządku.

NAT i przekierowanie portów dla klientów zdalnych

Jeśli klienci łączą się spoza sieci, przekieruj TCP 12000 na routerze do lokalnego adresu IP serwera Ubuntu. Proces różni się w zależności od routera — potrzebujesz statycznego lokalnego adresu IP serwera (ustaw go za pomocą rezerwacji DHCP lub skonfiguruj statycznie). Udostępnianie portu 12000 publicznemu internetowi to realne zagrożenie — ogranicz dostęp według adresu IP za pomocą ufw, jeśli to możliwe:

sudo ufw allow from 203.0.113.45 to any port 12000 proto tcp

Testowanie łączności za pomocą netcat i telnet

Z samego serwera:

nc -zv localhost 12000

Z maszyny zdalnej:

nc -zv 192.168.1.10 12000

Możesz również użyć telnet 192.168.1.10 12000 — nie nawiąże sesji CCcam, ale powie Ci, czy port jest osiągalny. Jeśli nc nie powiedzie się z localhost, ale CCcam jest uruchomiony, sprawdź ss -tnlp | grep 12000, aby zobaczyć, do jakiego adresu CCcam faktycznie się przywiązał.

Rozwiązywanie typowych problemów instalacji CCcam na Ubuntu

Większość problemów mieści się w małej liczbie kategorii. Oto jak systematycznie zdiagnozować każdą z nich. Prawidłowa procedura instalacji serwera cccam na ubuntu powinna zawsze obejmować wiedzę, jak czytać dzienniki.

CCcam nie uruchamia się: Sprawdzanie dzienników systemd za pomocą journalctl

Pierwsze miejsce do sprawdzenia dla każdego problemu:

journalctl -u cccam -f

Dla historycznych dzienników od ostatniego rozruchu:

journalctl -u cccam -b

Również śledź dziennik CCcam bezpośrednio:

tail -f /var/log/cccam.log

Jeśli CCcam kończy się natychmiast bez użytecznych danych wyjściowych w swoim dzienniku, journalctl będzie monitorować kod wyjścia i stderr. Kod zwrotu 127 zwykle oznacza, że binarny plik lub powiązana biblioteka nie została znaleziona.

Karta nie znaleziona: pcscd nie uruchomiony lub zła ścieżka urządzenia

Dziennik pokaże coś podobnego do:

[ERROR] can't open /dev/pcsc
[INFO] no card found on device /dev/ttyUSB0

Rozwiąż pierwszy problem:

sudo systemctl restart pcscd
sudo systemctl restart cccam

Rozwiąż drugi, weryfikując ścieżkę urządzenia za pomocą pcsc_scan i aktualizując linię DEVICE w pliku CCcam.cfg. Jeśli masz włączony AppArmor, może on po cichu blokować dostęp do /dev/pcsc. Sprawdź sudo aa-status i poszukaj CCcam na liście egzekwowania. Będziesz musiał albo utworzyć wyjątek profilu, albo czasowo ustawić go w tryb skargi do diagnozy.

Klienci nie mogą się połączyć: Port zablokowany lub złe poświadczenia

Jeśli klient się połączy i natychmiast się rozłączy, sprawdź dziennik CCcam pod kątem:

[WARN] client disconnected
[ERROR] invalid username or password

Linia F: w pliku CCcam.cfg musi być dokładnie taka sama — nazwa użytkownika i hasło rozróżniają wielkość liter. CCcam wymaga pełnego ponownego uruchomienia, aby odebrać wszelkie zmiany konfiguracji

ges. Brak SIGHUP, brak sygnału przeładowania — tylko pełny sudo systemctl restart cccam. To stale łapie ludzi.

CCcam Się Uruchamia, Ale Brak ECM: Sprawdzenie CAID i ID Dostawcy w Logach

Jeśli CCcam działa i karta jest wykrywana, ale klienci nie otrzymują odpowiedzi ECM, poszukaj w logu CAID, który reklamuje Twoja karta. Wpis w logu taki jak:

[INFO] card found: CAID 0x0500, provider 0x040810

...mówi Ci, co widzi serwer. Jeśli klient żąda innego CAID, masz niezgodność. Sprawdź również, czy RESHARE jest ustawiony prawidłowo — jeśli wynosi 0, klienci podłączeni przez linie C: nie będą otrzymywać karty z lokalnego czytnika.

Segfault lub Natychmiastowy Crash: Problemy z Bibliotekami 32-bitowymi

Segfault przy uruchamianiu prawie zawsze oznacza brakujące biblioteki 32-bitowe. Uruchom:

sudo apt install libc6:i386 libstdc++6:i386
ldd /usr/local/bin/CCcam

Każde not found w wyniku ldd to Twój winowajca. Zainstaluj wersję i386 tej biblioteki.

Wysokie Użycie CPU: Poziom Logowania i Tuning Cache ECM

Jeśli CCcam zużywa dużo CPU, pierwszą rzeczą do sprawdzenia jest LOG LEVEL. Poziom 3 (debug) generuje ogromne I/O logów. Zmniejsz go do 1 w CCcam.cfg i uruchom ponownie. Sprawdzę również, czy rotacja logów jest skonfigurowana — plik logu CCcam o rozmiarze 4GB powoduje zauważalne spowolnienie już z powodu obciążenia zapisu.

Zmiany CCcam.cfg Nie Są Stosowane: Zachowanie Restart vs Reload

CCcam nie obsługuje przeładowania konfiguracji w czasie działania. Brak sygnału, brak polecenia — musisz wykonać pełny restart:

sudo systemctl restart cccam

Za każdym razem, gdy edytujesz CCcam.cfg, uruchom ponownie usługę. Zapomnienie o tym to klasyczne marnowanie czasu podczas debugowania zmian konfiguracji, które wydają się nie mieć efektu.

Wzmacnianie Bezpieczeństwa Serwera CCcam na Ubuntu

Uruchamianie CCcam jako root to naprawdę zły pomysł. Jeśli w pliku binarnym istnieje exploita — a przy zamkniętym pliku binarnym z nieznanego źródła nie można tego wykluczyć — dostęp root oznacza całkowite narażenie systemu. Prawidłowo wzmocnij tę konfigurację.

Uruchamianie CCcam jako Dedykowanego Użytkownika Innego Niż Root

Utwórz użytkownika systemowego bez powłoki logowania:

sudo useradd --system --no-create-home --shell /usr/sbin/nologin cccam

Daj mu dostęp do grupy urządzeń pcsc:

sudo usermod -aG plugdev cccam

Ustaw prawidłową właścicielość plików konfiguracyjnych i logów:

sudo chown cccam:cccam /etc/CCcam.cfg
sudo chmod 640 /etc/CCcam.cfg
sudo touch /var/log/cccam.log
sudo chown cccam:cccam /var/log/cccam.log

Plik jednostki systemd pokazany wcześniej już używa User=cccam — to wiąże wszystko razem.

Ograniczanie Uprawnień Pliku Logu

Nie zostawiaj /var/log/cccam.log czytelny dla wszystkich. Tryb 640 (właściciel czyt./zapis, grupa czyt., inni nic) jest odpowiedni. Skonfiguruj rotację logów, aby zapobiec nieograniczonemu wzrostowi pliku:

# /etc/logrotate.d/cccam
/var/log/cccam.log {
```html weekly rotate 4 compress missingok notifempty create 640 cccam cccam }

Używanie fail2ban do blokowania ataków siłowych na porcie 12000

CCcam loguje nieudane próby uwierzytelnienia. Możesz zbudować podstawowy filtr fail2ban wokół nich. Utwórz /etc/fail2ban/filter.d/cccam.conf:

[Definition]
failregex = \[WARN\] client .* invalid username or password
ignoreregex =

Następnie dodaj więzienie w /etc/fail2ban/jail.local:

[cccam]
enabled = true
port = 12000
filter = cccam
logpath = /var/log/cccam.log
maxretry = 5
bantime = 3600

Dokładny format dziennika zależy od Twojej wersji CCcam — sprawdź rzeczywistą produkcję dziennika i odpowiednio dostosuj wyrażenie regularne. To jest punkt wyjścia, a nie rozwiązanie „skopiuj i zapomnij".

Opcja tunelu VPN dla zdalnych połączeń klientów

Czystsze podejście bezpieczeństwa dla klientów zdalnych to w ogóle nie ujawnianie portu 12000. Uruchom WireGuard na serwerze, klienci łączą się z VPN, a CCcam słucha tylko na interfejsie VPN (np. SERVERIP = 10.0.0.1). Port 12000 nigdy nie dotyka publicznego internetu.

Konfiguracja WireGuard jest poza zakresem tego artykułu, ale podstawowy serwer WireGuard na Ubuntu jest dobrze udokumentowany i konfiguruje się w około 15 minut. OpenVPN również działa, ale obciążenie jest wyższe.

Monitorowanie aktywnych połączeń za pomocą netstat i ss

Zobacz, kto jest aktualnie podłączony do Twojego serwera CCcam:

ss -tnp | grep 12000

Lub tylko z nawiązanymi połączeniami:

ss -tn state established | grep 12000

Wynik pokazuje zdalne adresy IP i porty. Jeśli widzisz połączenia z adresów IP, których nie rozpoznajesz, sprawdź poświadczenia linii F: i rozważ ograniczenie dostępu za pomocą adresu IP w ufw. Synchronizacja czasu ma również znaczenie — jeśli zegar klienta różni się od serwera o więcej niż kilka sekund, przerwy połączenia mogą występować sporadycznie. Upewnij się, że zarówno serwer, jak i klienci mają uruchomiony NTP (sudo systemctl status systemd-timesyncd).

Jaka wersja Ubuntu jest najlepsza do uruchomienia serwera CCcam?

Ubuntu 20.04 LTS jest obecnie najbardziej niezawodnym wyborem. Obsługa bibliotek 32-bitowych jest prosta, libssl1.1 jest dostępny w repozytoriach i nie osiągnie końca okresu obsługi do kwietnia 2025. Ubuntu 22.04 działa, ale wymaga więcej ręcznego wysiłku dla konfiguracji bibliotek multiarch, szczególnie uzyskiwania libssl we właściwej wersji dla binarnego CCcam 32-bitowego. Unikaj jakiejkolwiek wersji Ubuntu, która ma już wyczerpany okres obsługi dla wszystkiego, co planujesz uruchamiać długoterminowo.

Dlaczego CCcam mówi „Nie ma takiego pliku lub katalogu", nawet jeśli plik binarny istnieje?

To jest problem biblioteki 32-bitowej. CCcam jest binarnym 32-bitowym i na 64-bitowym Ubuntu, interpreter ELF dla plików wykonywalnych 32-bitowych to ```n't installed by default. Run sudo dpkg --add-architecture i386, then sudo apt install libc6:i386 libstdc++6:i386 libssl1.1:i386. After that, try running CCcam again. If you still see the error, run ldd /usr/local/bin/CCcam and install whatever comes back as "not found."

Jaka jest różnica między linią C: a liniami F: w CCcam.cfg?

Działają w przeciwnych kierunkach. Linie F: definiują użytkowników łączących się z Twoim serwerem CCcam — tworzysz konta dla swoich klientów. Linie C: definiują serwery upstream, do których łączy się Twój CCcam — mówisz CCcamowi, gdzie szukać kart, których nie ma lokalnie. Składnia linii F: to F: username password reshare ignore_reshare stealth. Składnia linii C: to C: hostname port username password stealth. Pomylenie ich jest jednym z najczęstszych błędów konfiguracyjnych.

Jak sprawdzić, czy moja karta inteligentna jest wykrywana przez serwer CCcam?

Zacznij od warstwy systemu operacyjnego: systemctl status pcscd, aby potwierdzić, że demon pcsc jest uruchomiony, a następnie pcsc_scan, aby zobaczyć, czy czytnik i karta się pojawiają. Jeśli pcsc_scan nic nie widzi, CCcam też nie będzie. Po potwierdzeniu, że karta jest widoczna na poziomie systemu operacyjnego, sprawdź /var/log/cccam.log po uruchomieniu CCcama — poszukaj linii zawierających "card found" z wartością CAID. Brak CAID w dzienniku oznacza, że CCcam nie widzi karty niezależnie od tego, co pokazuje pcsc_scan, co zwykle wskazuje na zły DEVICE path w CCcam.cfg.

Czy CCcam i OScam mogą działać jednocześnie na tym samym serwerze Ubuntu?

Tak, i to jest naprawdę solidne rozwiązanie. Uruchom OScam na porcie 11000, aby bezpośrednio obsługiwać fizyczny czytnik karty, a następnie dodaj linię C: w CCcam.cfg wskazującą na localhost port 11000. CCcam obsługuje połączenia klientów, podczas gdy OScam zarządza sprzętem. Kluczowa zasada: obaj nie mogą bezpośrednio zarządać tym samym urządzeniem /dev/pcsc. OScam jest właścicielem karty, CCcam rozmawia z OScamem. Upewnij się, że porty się nie nakładają — CCcam na 12000, interfejs czytnika OScam na innym porcie.

Ile połączeń klientów może obsługiwać serwer CCcam?

Nie ma ustalonej liczby — zależy to od Twojego sprzętu, sieci i konfiguracji. Nowoczesny komputer stacjonarny lub VPS z Ubuntem mogą obsługiwać dziesiątki jednoczesnych klientów bez problemów. To, co zabija wydajność, to wysokie liczby przeskoków (trzymaj CLIENTMAXHOPS na 1), gadatliwe logowanie (trzymaj LOG LEVEL na 1 w produkcji) i wysokie wskaźniki żądań ECM od wielu klientów dekodujących jednocześnie. Obserwuj użycie CPU i we/wy dziennika — to są Twoje rzeczywiste wąskie gardła, a nie jakaś teoretyczna granica połączeń.

Czy CCcam działa na Ubuntu działającym wewnątrz maszyny wirtualnej lub kontenera?

Na maszynie wirtualnej (VirtualBox, KVM, VMware) tak — ale musisz przekazać czytnik kart inteligentnych USB do maszyny wirtualnej, a nie tylko go udostępniać z hosta. VirtualBox ma passthrough USB w ustawieniach urządzenia; KVM używa passthrough urządzenia USB hosta w konfiguracji XML maszyny wirtualnej. Kontenery Docker są problematyczne w przypadku dostępu do fizycznych kart — passthrough USB w Docker wymaga trybu uprzywilejowanego i mapowania urządzeń, co szybko się komplikuje. Jeśli potrzebujesz karty fizycznej, użyj odpowiedniej maszyny wirtualnej lub bare metal. Jeśli uruchamiasz czysty relay (bez lokalnej karty, tylko połączenie upstream przez linie C:), kontenery działają dobrze.

```