Mobilny proxy na Raspberry Pi lub Orange Pi: krok po kroku instrukcja dla początkujących
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
- Pobierz Raspberry Pi Imager lub przygotuj narzędzie do nagrywania obrazów.
- 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.
- Przygotuj klienta SSH (np. standardowy OpenSSH).
- 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
- 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).
- 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.
- Sprawdź częstotliwości. Upewnij się, że modem i operator obsługują wymagane pasma LTE/5G w Twoim regionie.
- Przygotuj zasilanie. Dla Raspberry Pi 4 — zasilacz 5V 3A z dobrym kablem; dla modemu 5G — aktywny hub USB 5V 2–3A.
- Weź kartę microSD 32 GB A1/A2. Karta niezawodnej marki zmniejszy prawdopodobieństwo awarii.
- Przygotuj chłodzenie: radiatory i wentylator w obudowie.
- 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
- 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ę.
- 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.
- Pierwsze uruchomienie. Włóż microSD do płyty, podłącz Ethernet do routera, podłącz zasilanie. Poczekaj 1–2 minuty na pierwsze rozwinięcie systemu.
- 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.
- 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.
- 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.
- 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.
- Zainstaluj narzędzia sieciowe: sudo apt install -y iproute2 iptables ufw ca-certificates.
- 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
- Podłącz modem do płyty. Dla energochłonnych modemów użyj aktywnego huba USB. Włóż kartę SIM do modemu przed podłączeniem.
- Sprawdź wykrywanie urządzenia: lsusb. Powinieneś zobaczyć wiersz z nazwą modemu (Huawei, ZTE, Qualcomm, Quectel). Zachowaj wynik dla notatek.
- 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.
- Sprawdź, czy ModemManager widzi modem: mmcli -L. Powinien pojawić się modem, na przykład /org/freedesktop/ModemManager1/Modem/0.
- 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.
- 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.
- Sprawdź status: mmcli -m 0. W sekcji Status zobaczysz stan: connected, a w Bearer — parametry połączenia.
- 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.
- 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
- 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.
- 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).
- 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.
- 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ą.
- 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.
- 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.
- Sprawdź status: systemctl status 3proxy. Powinieneś widzieć stan active (running). Jeśli jest błąd — sprawdź journalctl -u 3proxy -e.
- 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.
- 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
- Sprawdź autostart 3proxy. Już włączyliśmy systemctl enable --now 3proxy. Upewnij się, że po sudo reboot usługa się uruchamia.
- 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.
- 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.
- 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ę.
- 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.
- 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.
- 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.
- 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
- 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.
- Sprawdź zmianę IP. Porównaj wyniki curl -4 ifconfig.me przed i po cell-rotate.sh.
- 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.
- Sprawdź logi 3proxy: tail -f /var/log/3proxy/3proxy.log. Powinny pojawić się linie o połączeniach, użytkownikach i ruchu.
- Sprawdź dziennik systemowy: journalctl -u ModemManager -e, journalctl -u 3proxy -e. Upewnij się, że nie ma błędów.
- 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
- 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.
- 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.
- Czy można używać tylko SOCKS5? Tak, zostaw w 3proxy tylko linię socks i usuń HTTP-proxy. To uprości konfigurację.
- 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.
- 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.
- Czy można rozwinąć na starym Raspberry Pi 2? Technicznie tak, ale wydajność będzie ograniczona. Zalecamy Pi 3B+ lub nowsze.
- 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.
- 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.
- 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.
- 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.