Proxy Poland zaczęło się od prostego pytania: ile mogę zaoszczędzić, jeśli zbuduję to sam zamiast kupować? Odpowiedź okazała się bardziej złożona niż arkusz z kalkulatorem w Google Sheets. Po drodze były modemy Sierra Wireless, firmware, którego oficjalnie nie wolno mi było pobrać, dwa tygodnie utraty snu przez QMI i dashboard, który w końcu pokazuje mi stan jedenastu modemów w czasie rzeczywistym.
Dlaczego własne proxy, a nie komercyjne
Rynek proxy wygląda z zewnątrz prosto: płacisz sto dolarów, dostajesz pulę IP, lecisz. W praktyce wygląda inaczej. Komercyjni dostawcy mają trzy problemy, które bolą w każdym poważniejszym zastosowaniu. Po pierwsze, współdzielisz IP z kimś, kto właśnie robi coś głupiego. Twoje adresy lądują na blackliście i nie masz na to wpływu. Po drugie, ceny za mobilne proxy skaczą do absurdu, szczególnie jak potrzebujesz rotacji polskich operatorów. Po trzecie, nie masz wglądu w to, co się dzieje pod spodem, więc kiedy coś nie działa, jesteś zdany na support.
Policzyłem i wyszło, że przy moim use case (około pięciu stałych klientów, każdy z wymaganą polską SIM-ką) amortyzacja własnego sprzętu schodzi poniżej pół roku. Do tego dochodzi kontrola nad każdym elementem, możliwość serwisu i, co najważniejsze, IP, które realnie jest moje.
Hardware: Sierra Wireless i reszta stosu
Modemy
Po długim researchu wybrałem Sierra Wireless EM7455. To jest modem M.2, który trzyma LTE cat-6, ma sensownie udokumentowany firmware i, co kluczowe, można go przełączyć z MBIM na QMI. MBIMjest "standardem", który w teorii działa wszędzie, a w praktyce ogranicza cię do jednego APN i generalnie leży. QMI jest protokołem Qualcomma i otwiera pełną kontrolę nad modemem: wybór pasma, rotację IP na żądanie, odczyt stanu SIM w czasie rzeczywistym.
Koszt jednego modemu to około 600 PLN, jeśli kupujesz na Allegro używany od kogoś, kto wyjął go z laptopa korporacyjnego. Nowe są droższe, ale używane są masowo dostępne, bo firmy masowo pozbywały się starszych Dellów. Do tego potrzebowałem adapterów M.2 na USB, po kilkadziesiąt złotych za sztukę, i anten 4G MIMO (te akurat nie są drogie, ale trzeba kupić pasujące).
Host i dummy monitors
Jako host trzymam miniPC z Intelem N100, kupiony za nieco ponad tysiąc złotych. Ciągnie jedenaście modemów po USB3 bez problemu. Jedna rzecz, która mnie zaskoczyła: Windows w trybie bezmonitorowym potrafi rozłączać sesję RDP, więc wpiąłem dummy monitor (taka mała wtyczka HDMI, która udaje podpięty ekran, dwadzieścia złotych). Mały detal, który oszczędza godziny debugowania.
VPS i stos proxysmart
Serwer hostingowy stoi na VPS we Frankfurcie. To jest punkt, do którego modemy łączą się tunelem reverse SSH. Dzięki temu klient nie widzi prawdziwego IP mojej siedziby. Klient łączy się pod jeden adres VPS, dostaje na routingu połączenie do konkretnego modemu. Cała orkiestracja chodzi na stosie proxysmart. To dedykowany soft do zarządzania farmą modemów, który spina konfigurację po stronie hosta z VPS-em.
Proxysmart daje mi trzy rzeczy, których sam bym nie pisał. Automatyczne przypisywanie portów do modemów. Rotację IP przez komendę na endpoint (dla USB-modemu to w praktyce AT+CFUN=0/1, ale opakowane w czysty HTTP call). I dashboard, który pokazuje stan każdego modemu: sygnał, pasmo, operator, aktualne IP.
Różnica między "kupiłem proxy" a "mam proxy" to mniej więcej dwa tygodnie snu, ale potem nie musisz nikomu tłumaczyć, dlaczego Twój adres znowu wisi.
Problemy, które zjadły dwa tygodnie
Firmware upgrade
Największy ból: polscy operatorzy używają pasm, które w stockowym firmwarze EM7455 są zablokowane pod konkretny region. Musiałem pobrać generyczny firmware, przełożyć modem w tryb serwisowy, wgrać wersję "unlocked". Procedura jest udokumentowana na forach, ale oficjalnie nie istnieje. Raz zamurowałem modem tak, że musiałem reflashować przez JTAG: kolejne dwa dni nauki.
MBIM kontra QMI
Drugi problem: po przełączeniu na QMI część modemów nie chciała się uruchomić. Okazało się, że Windows pamiętał stare sterowniki i trzymał modem w starym trybie. Trzeba było wyczyścić rejestr, reinstalować sterowniki Sierra w konkretnej wersji, zrobić reset kontrolera USB. Rzeczy, których nie ma w żadnym "getting started".
Rotacja IP
Teoretycznie rotacja IP w LTE jest prosta: reset sesji PDP i operator da ci nowe IP. Praktycznie Play potrafi przydzielić ten sam adres trzy razy z rzędu, a T-Mobile ma z kolei krótki bufor i po czwartym resecie w ciągu minuty blokuje cię na godzinę. Skończyło się na tym, że mam kolejkę rotacjiz minimum osiemdziesiąt sekund między resetami, plus detekcję "IP się nie zmieniło, powtórz za pół minuty". To jedna z tych rzeczy, których nauczyłem się wyłącznie przez logi z trzech tygodni produkcji.
Automatyzacja i dashboard
Po roku mam prosty dashboard w przeglądarce, który pokazuje mi wszystko. Kolor ikony mówi, czy modem jest zdrowy. Klik "rotate" wywołuje sekwencję. Logi z ostatnich dwudziestu czterech godzin są dostępne z poziomu jednego przycisku. To nie jest piękne, ale działa i co ważniejsze, mogę zalogować się z telefonu na Saharze i zobaczyć, czy Play znowu wywalił sesję na modemie numer siedem.
Najbardziej przydatne są alerty. Kiedy modem nie odpowiada przez pięć minut, dostaję pusha. Kiedy IP się nie rotuje trzy razy z rzędu, też. Dzięki temu nie muszę patrzeć w dashboard cały czas, tylko wtedy, kiedy on mnie woła.
Ile to kosztuje i czy się opłaca
Mój stały miesięczny koszt wygląda mniej więcej tak:
- Jedenaście SIM-ek pre-paid: około 250 PLN łącznie (różne plany data-only).
- VPS we Frankfurcie: 90 PLN.
- Prąd miniPC plus USB hub: 30 PLN.
- Amortyzacja sprzętu rozłożona na 36 miesięcy: 220 PLN.
Razem około 590 PLN miesięcznie. Komercyjny pakiet jedenastu polskich mobilnych IP z rotacją kosztuje u poważnych dostawców między 1800 a 2400 PLN. Oszczędność trzykrotna, ale to nie jest cała prawda: trzeba doliczyć mój czas przy awariach. W szczycie to było około trzech godzin tygodniowo. Teraz dwadzieścia minut.
Czy warto? Dla mnie tak, bo stabilność i kontrola są kluczowe dla projektów, które buduję. Dla kogoś, kto po prostu potrzebuje kilku IP na skrobanie danych, prawdopodobnie nie. Próg wejścia jest wysoki nie kosztowo, tylko czasowo. To jest inwestycja w kompetencję, nie w sprzęt.