Wprowadzenie

Trzymasz w rękach szczegółowy przewodnik krok po kroku, który nauczy Cię, jak od podstaw zbudować i skonfigurować budżetowy mobilny węzeł proxy na mini-PC Raspberry Pi lub Orange Pi. Omówimy całą drogę: od wyboru płyty, modemu i zasilania, po instalację systemu operacyjnego, sterowników i oprogramowania, konfigurację serwera proxy, jego automatyczne uruchamianie, stabilność i testowanie. Ostateczny wynik: będziesz mieć lokalny lub zdalnie dostępny HTTP(S)/SOCKS5 mobilny proxy, działający na bazie modemu 4G/5G, z opcją restartu sesji w celu uzyskania nowego mobilnego IP oraz z podstawowym systemem monitorowania i logowania.

Dla kogo jest ten przewodnik: dla początkujących, którzy po raz pierwszy stykają się z Raspberry Pi lub Orange Pi i chcą otrzymać jasną instrukcję bez „dziur”. Równocześnie przekażemy kilka zaawansowanych wskazówek dla tych, którzy chcą wycisnąć maksimum z sprzętu. Przewodnik nadaje się zarówno do domowego laboratorium, działu testowania produktów mobilnych, wewnętrznej infrastruktury firmy, jak i dla projektów edukacyjnych.

Co trzeba wiedzieć wcześniej: podstawowe umiejętności pracy z terminalem Linux na poziomie kopiowania-wklejania poleceń, umiejętność nagrywania obrazu systemu na kartę microSD oraz podłączenie kabli. Wszystkie inne rzeczy wyjaśnimy. Celowo unikamy profesjonalnego żargonu lub od razu go wyjaśniamy.

Ile czasu będzie potrzebne: mając wszystkie komponenty 2–4 godziny, w tym instalację systemu operacyjnego i aktualizacje. Na pobranie pakietów i firmware’ów może zająć więcej czasu, jeśli internet jest wolny.

Szybkie przejścia do sekcji: przejdź do wyboru płyty, modemu i zasilania, przejdź do konfiguracji serwera proxy.

⚠️ Uwaga: Używaj tego przewodnika wyłącznie w ramach obowiązującego prawa. Nie stosuj proxy do niezgodnych działań i nie próbuj obejść ograniczeń czy blokad. Przestrzegaj warunków umowy z Twoim operatorem.

Rada: Jeśli potrzebujesz gotowego chmurowego rozwiązania do zarządzania mobilnymi IP bez samodzielnego składania, rozważ specjalistyczne usługi. Na przykład, wspomnijmy mobileproxy.space jako punkt odniesienia dla zrozumienia możliwości takich rozwiązań i funkcji, które będziesz mógł częściowo powtórzyć na swoim węźle.

Wstępne przygotowanie

Przed rozpoczęciem upewnij się, że masz wszystkie narzędzia, dostępy i oprogramowanie. Ta sekcja uchroni Cię przed przerwami w trakcie procesu.

Wymagane narzędzia, programy i dostęp

  • Komputer z Windows, macOS lub Linux do nagrania obrazu systemu na kartę microSD.
  • Czytnik kart microSD.
  • Dostęp do internetu w celu pobrania obrazów OS i pakietów.
  • Terminal klienta SSH (Windows: wbudowany PowerShell lub dowolny klient SSH; macOS/Linux: wbudowany terminal).
  • Program do nagrywania obrazów: Raspberry Pi Imager lub jakiekolwiek narzędzie do nagrywania obrazów na kartę microSD.

Wymagania systemowe

  • Mini-PC: Raspberry Pi 3B/3B+/4B/5 lub Orange Pi (np. Orange Pi PC, Orange Pi Zero2, Orange Pi 3 LTS, Orange Pi 5). Rekomendujemy co najmniej Raspberry Pi 3B+ lub porównywalny Orange Pi.
  • Nośnik: karta microSD 16–32 GB klasy A1/A2. Dla stabilności lepiej 32 GB.
  • Zasilacz: dla Raspberry Pi 4 — 5V 3A z USB-C; dla Raspberry Pi 3 — 5V 2.5A micro-USB; dla Orange Pi — zgodnie z modelem (zazwyczaj 5V 3A USB-C lub 5V 2–3A DC).
  • Mobilny modem: 4G/5G modem USB lub modem w formie mini-PCIe/M.2 w adapterze USB. Popularne: Huawei E3372 (Stick lub HiLink), ZTE MF833, Quectel EC25/EG25-G/EP06/EM12, Sierra Wireless EM7455/EM7565 (przez adapter USB). Dla 5G: Quectel RM500Q/RM520N (przez adapter M.2-USB z zasilaniem i anteną).
  • Karta SIM z aktywnym taryfą na transfer danych. Skontaktuj się z operatorem w celu ustalenia APN i ograniczeń.
  • Kabel Ethernet lub dostęp do Wi-Fi do wstępnej konfiguracji.

Co trzeba pobrać i zainstalować wcześniej

  1. Pobierz Raspberry Pi Imager lub przygotuj narzędzie do nagrywania obrazów.
  2. Dla Raspberry Pi: użyj Raspberry Pi OS Lite (Bookworm, 64-bit) dla minimalnego systemu. Dla Orange Pi: pobierz odpowiedni Armbian (oparty na Debianie 12, jądro 6.x), wersja Lite bez grafiki.
  3. Przygotuj klienta SSH (np. standardowy OpenSSH).
  4. Zbierz parametry APN swojego operatora: nazwa APN, jeśli to konieczne login i hasło. Przykład: APN — internet, login — puste, hasło — puste. Dokładne dane znajdziesz w dokumentach operatora.

Tworzenie kopii zapasowych

Jeśli ponownie wykorzystujesz już skonfigurowaną kartę microSD, zrób kopię zapasową obrazu. Na Windows możesz użyć dowolnego narzędzia do odczytu obrazu karty; na macOS/Linux — polecenia dd, aby stworzyć plik obrazu. Przechowuj kopię na zewnętrznym dysku.

Rada: Prowadź plik notatek, do którego wrzucasz wszystkie polecenia i ustawienia. To zaoszczędzi czas przy ponownej konfiguracji lub przenoszeniu na inną płytę.

Podstawowe pojęcia

Kluczowe terminy prostym językiem

  • Mobilny proxy — serwer proxy, który łączy się z internetem przez sieć mobilną (4G/5G). Strony widzą mobilny IP.
  • ModemManager — usługa Linux do zarządzania modemami mobilnymi przez standardowe interfejsy (QMI, MBIM, PPP, komendy AT).
  • QMI/MBIM/NCM — sposoby komunikacji Linuxa z modemem. QMI i MBIM — nowoczesne i szybkie; PPP — przestarzałe i wolne; NCM — emulacja Ethernet dla niektórych modemów.
  • 3proxy — lekki serwer proxy, obsługujący HTTP, HTTPS (CONNECT), SOCKS5, autoryzację i logowanie.
  • Zmiana IP — restart sesji modemu (lub „tryb samolotowy”) w celu przydzielenia nowego mobilnego IP przez operatora. Brak gwarancji: operator może zwrócić ten sam adres.

Podstawowe zasady działania

Mini-PC łączy się z mobilnym modemem przez USB. Modem rejestruje się w sieci, uruchamia interfejs mobilny i odbiera IP od operatora. Na mini-PC uruchamiany jest serwer proxy, który nasłuchuje na określonym porcie i przyjmuje połączenia z lokalnej sieci lub przez port-proxy z routera. Ruch klientów przechodzi przez modem. Na żądanie możesz zrestartować sesję modemu w celu rotacji IP.

Co ważne przed rozpoczęciem

  • Zasilanie jest kluczowe: USB-modemy pobierają do 0.5–1 A przy szczytach. Potrzebny jest jakościowy zasilacz i dobry kabel USB. Dla modemów 5G przewidź aktywny hub USB z zasilaniem zewnętrznym.
  • Chłodzenie: Raspberry Pi 4/5 i potężne Orange Pi nagrzewają się. Zainstaluj radiator i wentylator.
  • Pokrycie sieci: prędkość i stabilność zależą od jakości sygnału LTE/NR. Używaj zewnętrznych anten i odpowiedniego umiejscowienia.
  • Legalność: działaj dokładnie w ramach prawa i zasad operatora.

⚠️ Uwaga: Nie próbuj modyfikować IMEI ani innych identyfikatorów urządzeń. To nielegalne. Wszystkie ustawienia w tym przewodniku są zgodne z prawem i bazują na standardowych narzędziach Linuxa.

Krok 1: Wybieramy mini-PC, modem i zasilanie

Cel etapu

Dobór kompatybilnych i niezawodnych komponentów sprzętowych, aby uniknąć problemów na starcie.

Dokładna instrukcja krok po kroku

  1. Wybierz płytę. Jeśli chcesz maksymalnie stabilny start — Raspberry Pi 4B z 2–4 GB RAM. Jeśli potrzebujesz nowoczesnej mocy — Raspberry Pi 5. Alternatywa: Orange Pi 3 LTS lub Orange Pi 5 (uwzględnij różnice w obrazach Armbian).
  2. Dobierz USB-modem. Dla prostoty — Huawei E3372 w trybie Stick lub ZTE MF833. Dla elastyczności i szybkości — Quectel EG25-G lub EP06/EM12 przez adapter USB z zasilaniem i antenami. Dla 5G — Quectel RM520N-GL z adapterem USB 3.0 i zasilaniem zewnętrznym.
  3. Sprawdź częstotliwości. Upewnij się, że modem i operator obsługują wymagane pasma LTE/5G w Twoim regionie.
  4. Przygotuj zasilanie. Dla Raspberry Pi 4 — zasilacz 5V 3A z dobrym kablem; dla modemu 5G — aktywny hub USB 5V 2–3A.
  5. Weź kartę microSD 32 GB A1/A2. Karta niezawodnej marki zmniejszy prawdopodobieństwo awarii.
  6. Przygotuj chłodzenie: radiatory i wentylator w obudowie.
  7. Kup anteny do modemu, jeśli nie są dołączone. Dla Quectel często potrzebne są 2× anteny LTE/NR SMA.

Ważne kwestie

  • Stabilność zasilania decyduje, czy modem odłączy się pod obciążeniem.
  • Anteny i umiejscowienie poprawiają sygnał i ostateczną prędkość.
  • Kompatybilność: Raspberry Pi OS i Armbian obsługują większość modemów przez ModemManager i sterowniki qmi_wwan/cdc_mbim/option.

Rada: Jeśli masz wątpliwości dotyczące modemu — wybierz Quectel EG25-G jako „złoty środek” pod względem kompatybilności i stabilności na 4G.

Oczekiwany rezultat

Masz na biurku kompletny zestaw: mini-PC, karta pamięci, zasilacz, USB-modem z kartą SIM, anteny, kable i chłodzenie.

Możliwe problemy i ich rozwiązania

  • Problem: Modem się przegrzewa. Rozwiązanie: Użyj aktywnego huba, przenieś modem na przedłużacz USB, dodaj radiator na adapterze.
  • Problem: Słaby sygnał w pokoju. Rozwiązanie: Użyj zewnętrznej anteny, przenieś modem do okna, zastosuj długi kabel USB.
  • Problem: Nie jesteś pewien, Stick czy HiLink u Huawei E3372. Rozwiązanie: Konfigurujemy oba typy; dla HiLink zastosowanie będzie miał inny sposób zarządzania połączeniem.

✅ Weryfikacja: Sprawdź kompletność i zgodność z wymaganiami. Zapisz IMEI modemu i model do inwentaryzacji (tylko dla ewidencji, nie zmieniaj IMEI).

Krok 2: Instalujemy OS i podstawowe pakiety

Cel etapu

Rozwinąć aktualny system operacyjny bez grafiki, włączyć SSH, zaktualizować system i zainstalować narzędzia, które będą potrzebne dalej.

Dokładna instrukcja krok po kroku

  1. Nagraj obraz. Włóż microSD do czytnika. Otwórz Raspberry Pi Imager lub swoje narzędzie. Wybierz Raspberry Pi OS Lite (Bookworm, 64-bit) dla Raspberry Pi lub odpowiedni Armbian Lite dla Orange Pi. Wskaz kartę pamięci i naciśnij przycisk nagrywania. Poczekaj na zakończenie i weryfikację.
  2. Włącz SSH. Dla Raspberry Pi: po nagraniu wyjmij i ponownie podłącz kartę do PC. W sekcji partycji rozruchowej utwórz pusty plik o nazwie ssh bez rozszerzenia. Dla Armbian SSH jest domyślnie włączony.
  3. Pierwsze uruchomienie. Włóż microSD do płyty, podłącz Ethernet do routera, podłącz zasilanie. Poczekaj 1–2 minuty na pierwsze rozwinięcie systemu.
  4. Znajdź IP płyty. Na routerze sprawdź listę klientów DHCP i znajdź urządzenie Raspberry Pi/Orange Pi. Lub użyj skanera sieci. Załóżmy, że adres to 192.168.1.50.
  5. Połącz się przez SSH. Na Windows otwórz PowerShell i wykonaj: ssh pi@192.168.1.50 (dla Raspberry Pi, domyślne hasło to raspberry, jeśli nie zmieniałeś w obrazie). Dla Armbian pierwsze logowanie wymaga podania hasła i utworzenia użytkownika.
  6. Aktualizuj system. Wykonaj kolejno: sudo apt update, następnie sudo apt full-upgrade -y. Poczekaj na zakończenie. Zrestartuj: sudo reboot. Podłącz się ponownie przez SSH.
  7. Zainstaluj podstawowe pakiety: sudo apt install -y modemmanager usb-modeswitch usbutils psmisc jq curl socat netcat-traditional. Dla modemów QMI/MBIM dodaj: sudo apt install -y libqmi-utils libmbim-utils.
  8. Zainstaluj narzędzia sieciowe: sudo apt install -y iproute2 iptables ufw ca-certificates.
  9. Skonfiguruj strefę czasową: sudo timedatectl set-timezone Europe/Warsaw (lub twoje miasto). Włącz synchronizację czasu: sudo timedatectl set-ntp true.

Ważne kwestje

  • Używaj obrazów Lite bez grafiki. Zużywają mniej zasobów i są stabilniejsze.
  • Wykonuj restart po dużych aktualizacjach jądra i firmware’u.
  • Przechowuj dostępy: zmień hasła domyślne i zapisz je w bezpiecznym miejscu.

Rada: Ustaw statyczną nazwę hosta: sudo hostnamectl set-hostname mobi-proxy-01. To ułatwi nawigację w sieci.

Oczekiwany rezultat

Mini-PC jest dostępny przez SSH, zaktualizowany, ma zainstalowany ModemManager, narzędzia QMI/MBIM i narzędzia sieciowe.

Możliwe problemy i ich rozwiązania

  • Problem: Brak połączenia przez SSH. Rozwiązanie: Sprawdź, czy plik ssh jest włączony w sekcji boot (dla Raspberry Pi), kabel sieciowy i tabelę DHCP na routerze.
  • Problem: Aktualizacja zawiesiła się. Rozwiązanie: Poczekaj, a następnie sprawdź, czy karta pamięci się nie wyczerpała. Możliwe ponowne uruchomienie przez sudo reboot. W przypadku kolejnych awarii nagraj ponownie obraz.
  • Problem: Niedostępne pakiety. Rozwiązanie: Sprawdź datę/czas, DNS i trasę poleceniem ping 1.1.1.1 oraz ping debian.org. Napraw sieć.

✅ Weryfikacja: Wykonaj mmcli -L. Na razie modemu może nie być, ale polecenie powinno działać i nie zwracać błędów o braku ModemManagera.

Krok 3: Podłączamy i konfigurujemy mobilny modem

Cel etapu

Aby modem stabilnie był rozpoznawany przez system, rejestrował się w sieci i podnosił połączenie mobilne na Linuxie.

Dokładna instrukcja krok po kroku

  1. Podłącz modem do płyty. Dla energochłonnych modemów użyj aktywnego huba USB. Włóż kartę SIM do modemu przed podłączeniem.
  2. Sprawdź wykrywanie urządzenia: lsusb. Powinieneś zobaczyć wiersz z nazwą modemu (Huawei, ZTE, Qualcomm, Quectel). Zachowaj wynik dla notatek.
  3. Sprawdź porty: dmesg | tail -n 50. Powinny pojawić się urządzenia /dev/ttyUSBx lub interfejsy sieciowe takie jak wwan0, cdc-wdm0, usb0 lub eth1 w zależności od trybu.
  4. Sprawdź, czy ModemManager widzi modem: mmcli -L. Powinien pojawić się modem, na przykład /org/freedesktop/ModemManager1/Modem/0.
  5. Odblokuj modem, gdy zostanie poproszony o PIN: mmcli -m 0 --pin=1234 (zamień na swój PIN, jeśli jest włączony). PIN lepiej wcześniej wyłączyć w telefonie.
  6. Ustaw APN. Dla profilu domyślnego: mmcli -m 0 --simple-connect="apn=internet,user=,password=" lub mmcli -m 0 --3gpp-operator-format=long w razie potrzeby. Dla MBIM: użyj mbimcli -d /dev/cdc-wdm0 --attach-packet-service z późniejszą konfiguracją przez ModemManager — częściej prościej mmcli --simple-connect.
  7. Sprawdź status: mmcli -m 0. W sekcji Status zobaczysz stan: connected, a w Bearer — parametry połączenia.
  8. Sprawdź interfejs: ip a. Powinien pojawić się interfejs typu wwan0 lub usb0/ncm0 w zależności od trybu. Wykonaj ip route, aby zobaczyć trasę domyślną przez mobilny interfejs.
  9. Sprawdź internet: curl -4 ifconfig.me i curl -4 ipinfo.io/ip (lub jakąkolwiek podobną usługę). Powinieneś zobaczyć publiczny mobilny IP.

Ważne kwestie

  • Tryby modemu: E3372 może działać jako HiLink (router) lub Stick (modem). W HiLink interfejs będzie jak eth1/usb0 z wewnętrznym adresem, zarządzanie przez interfejs webowy modemu. W Stick — przez QMI/NCM/PPP. Zalecamy Stick lub pełnoprawny modem QMI/MBIM (Quectel).
  • Żadne zewnętrzne patche bez potrzeby: nowoczesne jądra wspierają większość modemów.
  • Antena: podłącz obie anteny MIMO dla stabilności 4G/5G.

Rada: Dla modemów Quectel głównym portem AT jest zazwyczaj /dev/ttyUSB2. Polecenie echo -e "AT+CSQ\r" | socat - /dev/ttyUSB2,crnl pokaże poziom sygnału. Dobrze, jeśli CSQ 15 i wyżej.

Rada: Jeśli masz modem HiLink, najpierw otwórz jego interfejs webowy w przeglądarce pod adresem wyświetlanym w ip a (zazwyczaj 192.168.8.1), a następnie włącz mobilne dane i sprawdź status połączenia.

Oczekiwany rezultat

Modem pomyślnie rejestruje się i łączy z siecią. Komendy curl zwracają publiczny mobilny IP.

Możliwe problemy i ich rozwiązania

  • Problem: Modem nie pojawia się w mmcli -L. Przyczyna: niewłaściwy tryb lub niedobór zasilania. Rozwiązanie: podłącz przez aktywny hub USB; dla Huawei — upewnij się, że jest w trybie Stick, zainstaluj usb-modeswitch (już zainstalowany), zrestartuj.
  • Problem: Sprzęt zablokowany PIN. Rozwiązanie: wyłącz PIN na SIM w telefonie; lub odblokuj przez mmcli -m 0 --pin=XXXX.
  • Problem: Brak internetu. Przyczyna: nieprawidłowy APN. Rozwiązanie: sprawdź APN u operatora; dla niektórych taryf wymagane są login/hasło, zastosuj --simple-connect z parametrami.
  • Problem: IP nie zmienia się przy ponownym połączeniu. Przyczyna: operator może pamiętać adres. Rozwiązanie: poczekaj na timeout lub wykonaj pełne ponowne rejestracje (zobacz rozdział o rotacji poniżej).

✅ Weryfikacja: Wykonaj mmcli -m 0 i ip a. Powinieneś widzieć stan connected i aktywny interfejs z adresowaniem. curl -4 ifconfig.me powinien zwrócić mobilny IP.

Krok 4: Konfigurujemy serwer proxy

Cel etapu

Zainstalować i skonfigurować lekki serwer proxy 3proxy, który będzie udostępniać dostęp do internetu przez mobilny modem.

Dokładna instrukcja krok po kroku

  1. Zainstaluj 3proxy. W systemach Debian/Ubuntu-podobnych często dostępny jest pakiet: sudo apt install -y 3proxy. Jeśli pakiet jest niedostępny, zainstaluj przez kompilację z źródeł lub alternatywę tinyproxy/dante. Kontynuujemy z 3proxy.
  2. Stwórz katalog konfiguracji i logów, jeśli ich nie ma: sudo mkdir -p /etc/3proxy /var/log/3proxy. Sprawdź, gdzie leży plik konfiguracyjny w twojej instalacji (zwykle /etc/3proxy/3proxy.cfg).
  3. Stwórz plik konfiguracyjny: sudo nano /etc/3proxy/3proxy.cfg i wklej podstawową konfigurację: daemon nscache 65536 config /etc/3proxy/3proxy.cfg monitor /etc/3proxy/3proxy.cfg log /var/log/3proxy/3proxy.log D logformat "%d %H:%M:%S %u %C:%c %R:%r %O %I %T" rotate 10 users user:CL:strongpassword auth strong allow user proxy -p3128 -a socks -p1080 flush. Wyjaśnienie: włączamy demoniację, logowanie, ustawiamy użytkownika user z hasłem strongpassword, uruchamiamy HTTP-proxy na 3128 i SOCKS5 na 1080. W razie potrzeby zmień porty i dane logowania.
  4. Ogranicz dostęp po IP (zalecane). Dodaj linijki przed uruchomieniem proxy: allow user * 192.168.0.0/16 lub konkretny zaufany IP/sieć; lub użyj firewalla. Przykład uproszczonej linijki: allow user dla dostępu tylko z autoryzacją.
  5. Zezwól na bindowanie na wszystkich interfejsach. Domyślnie serwis nasłuchuje 0.0.0.0. Jeśli chcesz nasłuchiwać tylko w lokalnej sieci — użyj opcji -i z IP mini-PC w LAN, na przykład: proxy -p3128 -a -i192.168.1.50. Dla SOCKS podobnie: socks -p1080 -i192.168.1.50.
  6. Utwórz jednostkę systemd (jeśli nie została utworzona przez pakiet). Otwórz: sudo nano /etc/systemd/system/3proxy.service. Wklej: [Unit] Description=3proxy After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg Restart=always RestartSec=3 LimitNOFILE=65536 [Install] WantedBy=multi-user.target. Zapisz plik, a następnie wykonaj: sudo systemctl daemon-reload, sudo systemctl enable --now 3proxy.
  7. Sprawdź status: systemctl status 3proxy. Powinieneś widzieć stan active (running). Jeśli jest błąd — sprawdź journalctl -u 3proxy -e.
  8. Skonfiguruj UFW. Włącz firewall: sudo ufw default deny incoming, sudo ufw default allow outgoing, sudo ufw allow 22/tcp (SSH), sudo ufw allow 3128/tcp, sudo ufw allow 1080/tcp w razie potrzeby. Włącz: sudo ufw enable. Sprawdź zasady: sudo ufw status.
  9. Sprawdź dostęp do proxy z klienta w lokalnej sieci. Podaj IP mini-PC i port 3128 (HTTP) lub 1080 (SOCKS5), wprowadź login/hasło user/strongpassword. Otwórz stronę określającą IP i upewnij się, że jest mobilny.

Ważne kwestie

  • Nie zostawiaj proxy otwartym. Zawsze używaj autoryzacji i ograniczenia po IP lub firewalla.
  • Przechowuj hasła w menedżerze haseł. Zmieniaj je regularnie.
  • Logi: regularnie sprawdzaj /var/log/3proxy/3proxy.log.

Rada: Jeśli chcesz tylko SOCKS5, usuń linijkę proxy -p3128 -a i zostaw socks -p1080. To zmniejszy powierzchnię ataku.

Rada: Dla kilku użytkowników dodawaj ich do sekcji users przez dwukropek, na przykład: users alice:CL:pass1 bob:CL:pass2.

Oczekiwany rezultat

3proxy uruchomiony jako usługa, dostępny na odpowiednich portach, zabezpieczony hasłem i firewallem.

Możliwe problemy i ich rozwiązania

  • Problem: Serwis nie startuje. Przyczyna: błąd w konfiguracji. Rozwiązanie: sprawdź składnię, uprość do minimalnej konfiguracji i dodawaj opcje po jednej.
  • Problem: Klient nie może się połączyć. Przyczyna: blokada UFW. Rozwiązanie: sprawdź ufw status i poprawność zezwolonych portów.
  • Problem: Autoryzacja nie przechodzi. Rozwiązanie: sprawdź sekcję users, brak dodatkowych spacji, zrestartuj serwis.

✅ Weryfikacja: Z klienta podaj serwer proxy, autoryzuj się i otwórz stronę z wyświetlaniem IP. Powinien być wyświetlany mobilny IP modemu.

Krok 5: Umożliwiamy autostart i zwiększamy stabilność

Cel etapu

Zapewnić automatyczny start wszystkich komponentów po restarcie, dodać samodzielne odzyskiwanie połączenia i bezpieczną rotację IP.

Dokładna instrukcja krok po kroku

  1. Sprawdź autostart 3proxy. Już włączyliśmy systemctl enable --now 3proxy. Upewnij się, że po sudo reboot usługa się uruchamia.
  2. Dodaj usługę do podłączenia modemu przy starcie. Chociaż ModemManager sam podniesie Bearer z --simple-connect, lepiej zorganizować małą usługę. Utwórz plik /usr/local/bin/cell-up.sh z zawartością: podłączenie przez mmcli -m 0 --simple-connect="apn=internet" z sprawdzaniem statusu. Uczyń plik wykonywalnym: sudo chmod +x /usr/local/bin/cell-up.sh.
  3. Utwórz jednostkę /etc/systemd/system/cell-up.service z linijkami: [Unit] Description=Cellular bring-up After=ModemManager.service network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/cell-up.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target. Zastosuj: sudo systemctl daemon-reload && sudo systemctl enable --now cell-up.
  4. Skrypt rotacji IP. Utwórz /usr/local/bin/cell-rotate.sh. Opcja 1 dla QMI/MBIM/Quectel: wyłącz, poczekaj, włącz: mmcli -m 0 --disconnect; następnie mmcli -m 0 --set-power-state=low, pauza 3–5 sek, a następnie mmcli -m 0 --set-power-state=on i ponowne --simple-connect. Dla wsparcia AT można wysłać AT+CFUN=1,1 na port /dev/ttyUSB2 restartując modem. Dla HiLink użyj API HTTP modemu do disconnect/connect (jeśli dostępne). Dodaj logi i timeouty 10–30 sek na rejestrację.
  5. Upewnij się w poprawnej pracy rotacji. Uruchom sudo /usr/local/bin/cell-rotate.sh i porównaj curl -4 ifconfig.me przed i po. Zaplanuj zadanie cron w razie potrzeby, ale nie rotuj zbyt często, aby nie naruszać zasad operatora.
  6. Watchdog modemu. Stwórz /usr/local/bin/cell-watchdog.sh, który co 60 sek pinguje zaufany adres (np. 1.1.1.1), a przy 3 nieudanych próbach z rzędu wykonuje cell-rotate.sh. Zorganizuj jednostkę systemd z typem simple i Restart=always.
  7. Monitoring logów. Włącz rotację logów 3proxy już zapisaną parametrem rotate 10. Dla logów systemowych upewnij się, że journald ma domyślne ograniczenia przechowywania.
  8. Delikatna konfiguracja UFW. Otwórz tylko potrzebne porty. Przy dostępie z internetu skonfiguruj przekierowanie portów na routerze i ograniczenie IP na poziomie 3proxy lub UFW.

Ważne kwestie

  • Interwały rotacji nie powinny być zbyt częste. To wpływa na stabilność i może być sprzeczne z polityką operatora.
  • Bezpieczeństwo: przy dostępie zdalnym używaj tylko zamkniętej listy IP i solidnych haseł.
  • Logi i metryki: przechowuj logi w ograniczonym zakresie, aby nie zapełniać microSD.

Rada: Jeśli masz kilka modemów, nadaj interfejsom i urządzeniom nazwy przez zasady udev, aby się nie myliły podczas restartu. Na przykład, przydzielaj symlink po numerze seryjnym.

Rada: Dla modemów 5G nie oszczędzaj na aktywnym hubie USB i zasilaniu. To klucz do stabilnej pracy pod obciążeniem.

Oczekiwany rezultat

System automatycznie nawiązuje połączenie mobilne i uruchamia proxy przy starcie, a w przypadku awarii restartuje połączenie i przywraca usługę do działania.

Możliwe problemy i ich rozwiązania

  • Problem: Rotacja nie zmienia IP. Przyczyna: operator zwraca ten sam pul. Rozwiązanie: zwiększ czas oczekiwania między disconnect/connect do 30–60 sek; dokonuj pełnej rejestracji zasilania modemu; w razie potrzeby zmień punkt podłączenia (Band) lub lokalizację.
  • Problem: Watchdog restartuje zbyt często. Rozwiązanie: zwiększ progi uruchamiania (np. 5–7 nieudanych prób) i interwał między sprawdzeniami.

✅ Weryfikacja: Zrestartuj mini-PC. Upewnij się, że po 1–2 minutach 3proxy jest dostępne, mobilny internet aktywny, a skrypt rotacji rzeczywiście zmienia IP.

Krok 6: Testujemy, monitorujemy, rejestrujemy

Cel etapu

Sprawdzić końcową konfigurację, zmierzyć podstawową wydajność, skonfigurować proste obserwowanie stanu węzła.

Dokładna instrukcja krok po kroku

  1. Sprawdź dostępność portów. Z klienta wykonaj: otwórz przeglądarkę z ustawieniem proxy i przejdź na dowolną stronę. Lub użyj narzędzi: curl -x http://user:strongpassword@IP:3128 http://example.com. Dla SOCKS5: curl --socks5 user:strongpassword@IP:1080 http://example.com.
  2. Sprawdź zmianę IP. Porównaj wyniki curl -4 ifconfig.me przed i po cell-rotate.sh.
  3. Oceń prędkość. Użyj speedtest-cli (zainstaluj: sudo apt install -y speedtest-cli) przez proxy na kliencie lub bezpośrednio na płycie. Miej na uwadze, że prędkość zależy od operatora i sygnału.
  4. Sprawdź logi 3proxy: tail -f /var/log/3proxy/3proxy.log. Powinny pojawić się linie o połączeniach, użytkownikach i ruchu.
  5. Sprawdź dziennik systemowy: journalctl -u ModemManager -e, journalctl -u 3proxy -e. Upewnij się, że nie ma błędów.
  6. Włącz podstawową telemetrię. Można zaplanować w cron zbieranie metryk poziomu sygnału przez komendy AT (np. AT+CSQ) i zapisywanie w pliku dla analizy dynamiki pokrycia.

Ważne kwestie

  • Realistyczne oczekiwania: mobilny kanał jest podatny na wahania. Planuj rezerwy.
  • Rejestrowanie pomoże rozwiązywać nietypowe sytuacje i optymalizować konfigurację.

Rada: Jeśli używasz kilku proxy na jednej płycie, rozdziel porty, użytkowników i zaznaczaj w nazwie loga etykietę węzła, aby nie mylić się.

Oczekiwany rezultat

Połączenie przez proxy działa, IP określane jest jako mobilne, rotacja aktywna, logi i dzienniki rejestrują zdarzenia.

Możliwe problemy i ich rozwiązania

  • Problem: Niska prędkość. Przyczyna: słaby sygnał lub przeciążona sieć. Rozwiązanie: zmień lokalizację modemu, użyj zewnętrznych anten, spróbuj z innym operatorem.
  • Problem: Niestabilność pod obciążeniem. Przyczyna: zasilanie. Rozwiązanie: mocniejszy zasilacz, aktywny hub, dobry kabel, włącz chłodzenie.

✅ Weryfikacja: Uzyskaj mobilny IP przez proxy i upewnij się, że proste strony otwierają się szybko. Uruchom speedtest i porównaj z oczekiwaniami.

Weryfikacja wyniku

Lista kontrolna

  • Dostęp SSH do mini-PC działa.
  • ModemManager widzi modem, połączenie jest automatycznie nawiązywane.
  • 3proxy uruchomiony jako usługa, nasłuchuje określonych portów.
  • Dostęp do proxy ograniczony hasłami i firewallem.
  • Rotacja IP zmienia adres publiczny przynajmniej w części przypadków.
  • Logi są rejestrowane, system nie przegrzewa się i nie traci zasilania.

Jak przetestować

  • Otwórz 2–3 strony do określenia IP przez proxy. Porównaj adresy przed i po rotacji.
  • Wykonaj serię krótkich zapytań przez proxy i oceń opóźnienie: curl -w "%{time_connect} %{time_starttransfer}\n" -o /dev/null -s http://example.com.
  • Restartuj urządzenie. Upewnij się, że wszystkie usługi uruchamiają się automatycznie.

Wskaźniki skuteczności

  • Czas odzyskiwania po restarcie do w pełni sprawnego stanu nie przekracza 2 minut.
  • Procent udanych rotacji ze zmianą IP nie jest niższy niż 50–70% (zależy od operatora).
  • Stabilność pod obciążeniem 1–2 Mbit/s bez spadków przez kilka godzin.

Typowe błędy i rozwiązania

  • Problem: Proxy dostępne z internetu bez hasła. Przyczyna: pominięto ustawienie autoryzacji i UFW. Rozwiązanie: włączyć auth strong i users w 3proxy, ograniczyć dostęp UFW i po IP.
  • Problem: Modem okresowo odłącza się. Przyczyna: niewystarczające zasilanie lub przegrzewanie. Rozwiązanie: aktywny hub USB, lepszy zasilacz, chłodzenie, watchdog z skryptem restartu.
  • Problem: mmcli nie znajduje modemu po restarcie. Przyczyna: kolejność inicjalizacji. Rozwiązanie: dodać zależność After=ModemManager.service i opóźnienie w cell-up.service, sprawdzić zasady udev.
  • Problem: Rotacja nie daje nowego IP. Przyczyna: polityka operatora. Rozwiązanie: zwiększyć pauzę między disconnect/connect, zmienić lokalizację, przy użyciu HiLink wykonać pełną rejestrację modemu.
  • Problem: Logi przepełniają microSD. Przyczyna: zbyt szczegółowe logowanie. Rozwiązanie: zmniejszyć szczegółowość, włączyć rotację i autooczyszczenie, przenieść logi do /var/log z rotacją.
  • Problem: Niska prędkość na modemie 5G. Przyczyna: użycie USB 2.0 lub słaby kabel. Rozwiązanie: podłączyć do USB 3.0, użyć krótkiego ekranowanego kabla, aktywnego huba, zaktualizować firmware modemu, jeśli to możliwe.
  • Problem: Konflikt portów. Przyczyna: na tych portach nasłuchują już inne usługi. Rozwiązanie: zmień porty w 3proxy i UFW, sprawdź ss -tulpen.

Dodatkowe możliwości

Zaawansowane ustawienia

  • Konfiguracja multi-modemu. Podłącz 2–4 modemy przez aktywny hub. Utwórz oddzielne instancje 3proxy z unikalnymi portami i konto dla każdego modemu. Przypisz wychodzący interfejs przez ip rule i ip route (polityczne routowanie), jeśli potrzebne jest wyraźne rozdzielenie ruchu.
  • API do rotacji. Uruchom lekki serwis HTTP przez socat lub tiny web server, który na żądanie GET wywołuje cell-rotate.sh. Dodaj podstawową autoryzację i ograniczenie IP.
  • Przypisanie do interfejsu. W konfiguracji 3proxy użyj opcji -e dla wychodzącego IP/interfejsu, jeśli masz kilka aktywnych kanałów i musisz wymusić wyjście przez wymagany modem.

Optymalizacja

  • Stabilność systemu plików. Włącz zram lub przenieś intensywne logi do /tmp lub na zewnętrzny SSD, jeśli obciążenie jest wysokie.
  • Zmniejszenie opóźnień. Umieść modem bliżej okna, użyj dobrych anten, wyłącz zbędne demony w systemie.
  • Aktualizacja firmware’ów. W razie potrzeby zaktualizuj modem do najnowszej stabilnej wersji przez oficjalne oprogramowanie producenta. Zawsze rób kopie zapasowe i nie przerywaj aktualizacji.

Co jeszcze można zrobić

  • Integracja z panelem zarządzania. Zrealizuj prostą stronę HTML z przyciskami „połącz”, „rozłącz”, „rotacja” oraz wyświetlaniem stanu.
  • Równoważenie klientów. Przy kilku modemach można ręcznie rozdzielić użytkowników po portach różnych instancji 3proxy, aby równomiernie obciążyć.
  • Porównanie z gotowymi rozwiązaniami. Jeśli potrzebujesz skalowalności, automatyzacji rozliczeń, elastycznych API, zwróć uwagę na specjalistyczne usługi typu mobileproxy.space jako przykład funkcji, które można zaadaptować w twoim lokalnym rozwiązaniu. To pomoże zrozumieć, w jakim kierunku się rozwijać.

Rada: Przechowuj wszystkie skrypty w /usr/local/bin i oznaczaj je wersją i datą. To ułatwi wsparcie.

Rada: Dodaj wewnętrzne zakładki do sekcji samego przewodnika i swoich dokumentów. Na przykład, „Zob. Krok 4 do konfiguracji 3proxy”.

FAQ

  1. Ile modemów można podłączyć do jednego mini-PC? W zależności od zasilania i huba — zwykle 2–4 bez problemów. Upewnij się, że każdy modem ma wystarczająco prądu, i użyj aktywnego huba.
  2. Czy będzie działać bez Ethernetu, tylko przez Wi-Fi? Tak. Podłącz mini-PC do Wi-Fi i upewnij się, że router widzi urządzenie. Proxy będzie dostępne po IP Wi-Fi.
  3. Czy można używać tylko SOCKS5? Tak, zostaw w 3proxy tylko linię socks i usuń HTTP-proxy. To uprości konfigurację.
  4. Czy potrzebny jest biały statyczny IP na wejściu? Nie, jeśli dostęp tylko z twojej lokalnej sieci. Jeśli wymagany jest dostęp z internetu, skonfiguruj przekierowanie portów na swoim routerze i ogranicz dostęp po IP i haśle. Pamiętaj o zasadach dostawcy.
  5. Jak często można rotować IP? Bezpiecznie — nie częściej niż kilka razy na godzinę. Nadmierna rotacja zmniejsza stabilność i może naruszać politykę operatora.
  6. Czy można rozwinąć na starym Raspberry Pi 2? Technicznie tak, ale wydajność będzie ograniczona. Zalecamy Pi 3B+ lub nowsze.
  7. Co zrobić, jeśli 3proxy nie ma w repozytorium? Użyj kompilacji z źródeł lub alternatywy tinyproxy (HTTP) i dante-server (SOCKS). Konfiguracja jest zasadniczo podobna.
  8. Jak poznać poziom sygnału? Dla Quectel: wyślij AT+CSQ na główny port modemu, interpretacja: 15–20 średnio, 20+ dobrze. Dla HiLink — sprawdź status w interfejsie webowym modemu.
  9. Jak chronić przed przegrzaniem? Zainstaluj radiatory i wentylator, monitoruj temperaturę vcgencmd measure_temp na Raspberry Pi, utrzymuj ją poniżej 70–75°C pod obciążeniem.
  10. Czy można ponownie użyć skryptów na innej płycie? Tak. Przenieś pliki z /usr/local/bin i jednostki systemd, skoryguj ścieżki do modemu i APN.

Podsumowanie

Stworzyłeś pełnoprawny mobilny węzeł proxy na Raspberry Pi lub Orange Pi: wybrałeś płytę, modem i zasilanie, zainstalowałeś OS, włączyłeś ModemManagera, podniosłeś połączenie, skonfigurowałeś 3proxy z autoryzacją i firewallem, zapewniłeś autostart, rotację IP i podstawowe monitorowanie. Teraz masz praktyczne doświadczenie i narzędzie do testowania mobilnego ruchu, integracji z wewnętrznymi systemami i dla celów edukacyjnych. Następnie możesz rozwijać rozwiązanie: dodawać kilka modemów, budować panel zarządzania, integrować API rotacji, optymalizować sprzęt i logikę awaryjności. A żeby zrozumieć najlepsze praktyki i gotowe funkcje, wygodnie się odnosić do usług klasy mobileproxy.space, porównując ich możliwości z twoim lokalnym otoczeniem. Jeśli potrzebujesz szybko skalować, możesz łączyć własne węzły z gotowymi zarządzanymi rozwiązaniami.

⚠️ Uwaga: Zawsze przestrzegaj przepisów prawa i umowy z twoim operatorem. Nie używaj proxy do niezgodnych z prawem zadań i nie próbuj obejść ograniczeń. Utrzymuj urządzenie w dobrym stanie, monitoruj zasilanie i temperaturę.

Rada: Zrób kopię zapasową karty microSD po pełnej konfiguracji. To pozwoli szybko odzyskać system w przypadku awarii nośnika lub eksperymentalnych zmian.