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 updateNastępnie zainstaluj wymagane pakiety:
sudo apt install pcscd libpcsclite1 libpcsclite-dev \ libssl-dev libc6:i386 libstdc++6:i386 libpcsclite1:i386Na 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_scanJeś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
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/CCcamTo 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 directoryPlik 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:i386Jeś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.debWeryfikacja uruchamiania binarka: ./CCcam --version
Przetestuj to przed zbudowaniem usługi wokół niego:
CCcam --versionPowinieneś 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```htmlNastępnie włącz i uruchom:
sudo systemctl daemon-reload sudo systemctl enable cccam sudo systemctl start cccamLinia
Requires=pcscd.servicezapewnia, ż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.cfgpodczas uruchamiania jako usługa systemowa. Jeśli uruchomiony jako użytkownik, sprawdza~/.CCcam/CCcam.cfg. W przypadku usługi systemd uruchamianej jako użytkownikcccam, umieść konfigurację w/etc/CCcam.cfgi upewnij się, że uprawnienia pliku pozwalają użytkownikowicccamna jego odczyt. Również: nie czyń tego pliku zapisywalnym dla wszystkich. CCcam odmówi uruchomienia, jeśli/etc/CCcam.cfgma 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 = 0LOG 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/ttyUSB0Dla czytnika opartego na pcsc:
DEVICE = /dev/pcsc/1Jeś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/lubpcsc_scanprzed 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 0Linie C: definiują serwery upstream, do których łączy się Twój CCcam:
```} C: upstream.example.local 12000 myuser mypassword 0# C: hostname port username password {ukryte
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 0Pią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 = 15001To 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/tcpJeśli dodałeś porty Newcamd lub Camd35:
sudo ufw allow 15050/tcp
sudo ufw allow 15001/tcpSprawdź 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.10Jest 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 tcpTestowanie łączności za pomocą netcat i telnet
Z samego serwera:
nc -zv localhost 12000Z maszyny zdalnej:
nc -zv 192.168.1.10 12000Moż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 -fDla historycznych dzienników od ostatniego rozruchu:
journalctl -u cccam -bRównież śledź dziennik CCcam bezpośrednio:
tail -f /var/log/cccam.logJeś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/ttyUSB0Rozwiąż pierwszy problem:
sudo systemctl restart pcscd
sudo systemctl restart cccamRozwiąż 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 passwordLinia 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łnysudo 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/CCcamKaż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 cccamZa 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 cccamDaj mu dostęp do grupy urządzeń pcsc:
sudo usermod -aG plugdev cccamUstaw 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.logPlik 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 = 3600Dokł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 12000Lub tylko z nawiązanymi połączeniami:
ss -tn state established | grep 12000Wynik 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.