Wprowadzenie: co osiągniesz dzięki temu artykułowi

Ten artykuł to praktyczny przewodnik krok po kroku po konfiguracji proxy na MikroTik. Będziemy pracować wyłącznie z RouterOS, standardowym systemem operacyjnym routerów MikroTik. O Keenetic, OpenWrt i innych platformach znajdziesz osobne materiały na blogu, tutaj ich nie poruszamy.

Pod koniec instrukcji będziesz mieć działający schemat, w którym router sam decyduje, które urządzenia w biurze lub domu łączą się z internetem bezpośrednio, a które przez proxy mobilne. Skonfigurujesz wbudowany Web Proxy w RouterOS z nadrzędnym proxy, nauczysz się oznaczać ruch w sekcji mangle i budować policy-based routing, czyli routing oparty na regułach, a nie tylko na adresie docelowym.

Konkretnie otrzymasz:

  • listę urządzeń, których ruch wychodzi przez proxy, a reszta działa jak wcześniej;
  • skonfigurowany Web Proxy na MikroTik, który przekazuje żądania klientów do zewnętrznego proxy mobilnego;
  • reguły mangle, które oznaczają odpowiednie połączenia i trasy;
  • osobną tabelę routingu dla oznaczonego ruchu, aby kierować go przez wybrany interfejs, np. przez drugi WAN lub modem LTE;
  • zabezpieczenie schematu firewallem, żeby nikt z zewnątrz nie skorzystał z twojego proxy;
  • zestaw testów sprawdzających i omówienie typowych błędów.

Dla kogo jest ten przewodnik

Przewodnik napisaliśmy dla marketerów, specjalistów od arbitrażu, programistów i właścicieli małych zespołów, którzy pracują z proxy mobilnymi i chcą przenieść część konfiguracji z każdego komputera na poziom routera. Jeśli masz pięć lub piętnaście stanowisk z przeglądarkami antydetekcyjnymi, parserami i kontami reklamowymi, wygodniej raz skonfigurować proxy na MikroTik niż za każdym razem ręcznie wpisywać parametry na nowym laptopie.

Poziom - dla początkujących. Nie zakładamy, że konfigurowałeś wcześniej RouterOS. Każdy krok pokazujemy zarówno przez interfejs graficzny WinBox, jak i jako polecenie w terminalu. Na końcu znajdziesz osobny blok dla zaawansowanych: kontenery, automatyczne rozsyłanie ustawień proxy klientom, skrypty przełączania.

Co warto wiedzieć wcześniej

Wystarczy podstawowa wiedza: co to adres IP, port, sieć lokalna i brama. Powinieneś umieć zalogować się do interfejsu web routera lub połączyć się z nim programem WinBox. Resztę wyjaśnimy po drodze.

Ile czasu to zajmie

Sama konfiguracja zajmuje około 40-60 minut. Z uwzględnieniem czytania, kopii zapasowych, aktualizacji firmware i testów zaplanuj 1,5-2 godziny. Jeśli masz dwa kanały internetowe i będziesz konfigurować policy-based routing między nimi, dodaj jeszcze 30 minut na sprawdzenia.

Przygotowanie wstępne

Zanim cokolwiek zmienisz na routerze, zbierz wszystko, co potrzebne. To oszczędzi czas i uchroni przed sytuacją, w której w trakcie konfiguracji okaże się, że brakuje potrzebnego dostępu.

Niezbędne narzędzia i dostępy

  • Router MikroTik z RouterOS w wersji 7.x. Sprawdzą się popularne modele hAP ac2, hAP ac3, hAP ax2, hAP ax3, RB4011, RB5009, a także dowolne CCR. Modele z portem USB lub wbudowanym modułem LTE dadzą dodatkowe możliwości, ale nie są obowiązkowe.
  • Program WinBox w aktualnej wersji (w 2026 roku to WinBox 4, są wersje dla Windows, macOS i Linux). Alternatywa - interfejs web WebFig pod adresem routera w przeglądarce, tam są te same menu.
  • Dostęp administratora do routera: login i hasło użytkownika z pełnymi uprawnieniami.
  • Dane proxy mobilnego: adres serwera (IP lub nazwa domenowa), port HTTP proxy, a także sposób autoryzacji. Dla schematu z Web Proxy na MikroTik potrzebna jest autoryzacja po adresie IP, ponieważ wbudowany proxy RouterOS nie potrafi przekazywać loginu i hasła do nadrzędnego proxy. Praktycznie wszyscy dostawcy proxy mobilnych pozwalają włączyć autoryzację po IP w panelu klienta.
  • Zewnętrzny adres IP twojego routera. Trzeba go dodać do białej listy u dostawcy proxy. Jak go sprawdzić, pokażemy w pierwszym kroku.
  • Komputer w sieci lokalnej, na którym będziesz testować wynik.

Wymagania systemowe

Schemat z Web Proxy i mangle działa na każdym urządzeniu z RouterOS 7. Pamięci operacyjnej 128 MB wystarczy dla kilkunastu aktywnych klientów, jeśli wyłączysz buforowanie. Do zaawansowanej sekcji z kontenerami potrzebny będzie model z architekturą ARM, ARM64 lub x86 i minimum 256 MB pamięci, a lepiej 1 GB i zewnętrzny nośnik.

Sprawdź wersję RouterOS: w WinBox otwórz menu System, następnie Resources. W polu Version powinno być 7.x. Jeśli masz 6.x, część poleceń routingu będzie się różnić i lepiej najpierw zaktualizować.

Co przygotować wcześniej

  1. Zainstaluj WinBox i upewnij się, że widzi router w zakładce Neighbors.
  2. Zaloguj się do panelu dostawcy proxy mobilnych i znajdź sekcję z parametrami połączenia. Zapisz adres, port HTTP i włącz tryb autoryzacji po IP.
  3. Zrób listę urządzeń, które mają pracować przez proxy. Zapisz ich nazwy i adresy MAC lub aktualne IP.
  4. Zdecyduj, czy będziesz mieć drugi kanał internetowy. Jeśli w routerze jest moduł LTE lub podłączony modem USB z kartą SIM, zapisz nazwę interfejsu, zwykle to lte1.

Kopia zapasowa

Kopię zapasową robimy obowiązkowo. To pierwszy praktyczny krok instrukcji i omówimy go szczegółowo. Na razie zapamiętaj zasadę: żadnych zmian w firewallu i routingu bez świeżej kopii zapasowej. Błąd w regule NAT lub trasie może pozbawić cię dostępu do routera i wtedy trzeba będzie przywrócić ustawienia fabryczne.

Podstawowe pojęcia: proxy, mangle i routing prostym językiem

Temat wydaje się trudny przez terminologię. Wyjaśnijmy je bez zbędnej teorii, tylko to, co przyda się w krokach.

Proxy i proxy mobilne

Serwer proxy to pośrednik. Twoja przeglądarka wysyła żądanie nie bezpośrednio do strony, ale do serwera proxy, a ten idzie na stronę w swoim imieniu i zwraca odpowiedź. Strona widzi adres proxy, a nie twój. Proxy mobilne to proxy, które łączy się z internetem przez sieć operatora komórkowego, więc strony widzą zwykły adres abonenta mobilnego. Takie adresy są używane do pracy z kontami reklamowymi, multikontami i parsingiem, gdzie liczy się reputacja IP.

Router i proxy to różne rzeczy

Ważne, żeby zrozumieć: router sam z siebie nie może skierować całego ruchu do proxy HTTP ani SOCKS. Router działa na poziomie pakietów IP, a proxy - na poziomie aplikacji. Pakiety można skierować przez ten czy inny interfejs, ale żeby aplikacja mówiła przez proxy, ktoś musi nawiązać połączenie z serwerem proxy według jego protokołu. W RouterOS do tego służy wbudowany Web Proxy - pełnoprawne proxy HTTP wewnątrz routera, które potrafi przekazywać żądania do serwera nadrzędnego, tzw. parent proxy. To on stanie się mostem między twoją siecią lokalną a proxy mobilnym.

Address list

Address list w RouterOS to nazwana lista adresów IP lub podsieci. Zamiast pisać pięć reguł dla pięciu komputerów, wrzucasz ich adresy do listy proxy-clients i odwołujesz się do niej w jednej regule. Dodałeś szósty komputer do listy - reguła zaczęła działać również dla niego.

Firewall: filter, NAT i mangle

Firewall RouterOS składa się z kilku tabel. Filter decyduje, przepuścić pakiet czy odrzucić. NAT podmienia adresy i porty, np. przekierowuje połączenie z portu 80 na lokalny port proxy 8080. Mangle niczego nie blokuje i nie podmienia, tylko stawia na pakiecie lub połączeniu znacznik. Znacznik żyje wyłącznie wewnątrz routera i później jest używany przez inne podsystemy, przede wszystkim routing.

W mangle są dwa znaczniki, które nas interesują. Connection mark stawia się na całym połączeniu: oznaczyliśmy pierwszy pakiet i wszystkie kolejne pakiety tego połączenia są automatycznie uznawane za oznaczone. Routing mark mówi routerowi: dla tego pakietu użyj nie głównej tabeli tras, ale tej konkretnej.

Tabele routingu i policy-based routing

Zwykły router decyduje, gdzie wysłać pakiet, patrząc tylko na adres docelowy. To tabela main. Policy-based routing (PBR, routing oparty na politykach) dodaje drugie kryterium: skąd pakiet, jakiego jest typu, z jakim znacznikiem. Na przykład: pakiety od komputerów z listy proxy-clients wysyłać przez modem LTE, a wszystko inne - przez dostawcę przewodowego. W RouterOS 7 tworzy się do tego osobną routing table, dodaje się do niej własną trasę domyślną, a mangle stawia na odpowiednim ruchu routing mark o nazwie tej tabeli.

Łańcuchy prerouting, output i forward

Reguły firewalla są przypisane do łańcuchów. Prerouting obsługuje pakiety, które dopiero trafiły do routera, przed podjęciem decyzji o trasie. Tutaj wygodnie jest oznaczać ruch od klientów sieci lokalnej. Output - pakiety, które router generuje sam, np. odwołania jego Web Proxy do nadrzędnego proxy mobilnego. Forward - pakiety tranzytowe z sieci lokalnej do internetu. Zrozumienie tej różnicy uchroni cię od połowy błędów przy konfiguracji proxy na MikroTik.

Jak to się złoży w całość

Schemat, który zbudujemy, wygląda tak. Komputery z listy proxy-clients łączą się z Web Proxy na routerze, port 8080. Web Proxy przekazuje żądania do proxy mobilnego dostawcy, który autoryzuje router po jego zewnętrznym IP. Połączenia routera do proxy mobilnego są oznaczane w mangle i wysyłane przez wybrany interfejs WAN. Pozostałe urządzenia działają jak zwykle i niczego nie zauważają.

Krok 1: Kopia zapasowa i przygotowanie RouterOS

Cel etapu: uzyskać zapisaną kopię bieżącej konfiguracji, aktualną wersję RouterOS i poznać zewnętrzny IP routera do białej listy u dostawcy proxy.

Tworzymy kopię zapasową

  1. Otwórz WinBox. Na liście Neighbors wybierz swój router, wpisz login i hasło, kliknij Connect.
  2. W menu po lewej kliknij Files. Otworzy się okno z listą plików na routerze.
  3. Kliknij przycisk Backup u góry okna. W oknie dialogowym w polu Name wpisz zrozumiałą nazwę, np. before-proxy. W polu Password możesz ustawić hasło do archiwum albo zostawić puste. Odznacz Don't Encrypt, jeśli chcesz szyfrowanie, albo zostaw - dla użytku domowego to nie jest krytyczne.
  4. Kliknij Backup. Na liście pojawi się plik before-proxy.backup.
  5. Przeciągnij ten plik myszą z okna Files na pulpit komputera. Plik zostanie pobrany na twój PC. Kopia na samym routerze nie uratuje cię, jeśli router będzie trzeba zresetować, więc trzymaj ją u siebie.
  6. Dodatkowo zrób eksport tekstowy. Otwórz New Terminal w menu po lewej i wpisz polecenie:
/export file=before-proxy

W Files pojawi się plik before-proxy.rsc. To zwykły tekst ze wszystkimi poleceniami twojej konfiguracji. Wygodnie go otworzyć w notatniku i porównywać, co się zmieniło. Pobierz go też.

Aktualizujemy RouterOS

  1. W menu po lewej otwórz System, następnie Packages.
  2. Kliknij Check For Updates. W polu Channel wybierz stable.
  3. Jeśli dostępna jest nowa wersja, kliknij Download&Install. Router pobierze pakiet i zrestartuje się. Zajmie to 2-5 minut, połączenie z WinBox zostanie przerwane - to normalne.
  4. Po restarcie połącz się ponownie, otwórz System, następnie RouterBOARD, i kliknij Upgrade, żeby zaktualizować bootloader. Następnie zrestartuj router przez System, Reboot.

Uwaga: nie aktualizuj routera zdalnie, jeśli nie masz do niego fizycznego dostępu lub zapasowego kanału zarządzania. Przy nieudanej aktualizacji możesz stracić łączność z urządzeniem.

Sprawdzamy zewnętrzny IP routera

  1. Otwórz New Terminal.
  2. Wpisz polecenie:
/tool fetch url=https://ifconfig.me/ip mode=https output=user

W odpowiedzi w wierszu data będzie twój zewnętrzny adres IPv4. Alternatywa - otwórz IP, następnie Cloud i włącz DDNS Enabled: w polu Public Address wyświetli się aktualny adres. Zapisz go.

  1. Zaloguj się do panelu dostawcy proxy mobilnych, znajdź ustawienia autoryzacji wybranego proxy i dodaj ten adres do białej listy. Zwykle zmiany wchodzą w życie w ciągu minuty.

Wskazówka: jeśli twój dostawca internetu ma dynamiczny zewnętrzny IP, zapytaj dostawcę proxy, czy można autoryzować po kilku adresach lub przez powiązanie z nazwą DDNS. Inaczej po zmianie IP schemat przestanie działać i trzeba będzie aktualizować białą listę.

Sprawdzenie: na komputerze są pliki before-proxy.backup i before-proxy.rsc, w System, Resources jest podana aktualna wersja RouterOS 7, w panelu dostawcy proxy dodano zewnętrzny IP routera.

Możliwe problemy

  • Polecenie fetch zwraca błąd. Sprawdź, czy router ma dostęp do internetu i skonfigurowany DNS: IP, DNS, pole Servers nie jest puste, zaznaczony jest Allow Remote Requests.
  • WinBox nie widzi routera. Połącz się bezpośrednio kablem z portem ether2 i spróbuj zakładki Neighbors jeszcze raz albo wpisz adres routera ręcznie, domyślnie 192.168.88.1.

Krok 2: Ustalamy, czyj ruch pójdzie przez proxy

Cel etapu: utworzyć listę adresów proxy-clients i przypisać potrzebnym urządzeniom stałe IP, żeby reguły nie psuły się po ponownym połączeniu.

Przypisujemy adresy IP do urządzeń

Domyślnie serwer DHCP routera może jutro przydzielić komputerowi inny adres. Żeby reguły działały stabilnie, przypiszemy adresy do MAC.

  1. Otwórz IP, następnie DHCP Server, zakładkę Leases. Zobaczysz listę aktualnych dzierżaw: adres IP, adres MAC, nazwa hosta.
  2. Znajdź potrzebny komputer po nazwie hosta lub MAC. Kliknij dwukrotnie wiersz.
  3. W otwartym oknie kliknij przycisk Make Static. Status dzierżawy zmieni się z D (dynamic) na pusty, adres się przypisze.
  4. W razie potrzeby zmień pole Address na łatwiejszy do zapamiętania, np. 192.168.88.101, i kliknij OK. Urządzenie otrzyma nowy adres po ponownym połączeniu z siecią.
  5. Powtórz dla wszystkich urządzeń, które mają pracować przez proxy.

Polecenie w terminalu, jeśli znasz MAC z góry:

/ip dhcp-server lease add address=192.168.88.101 mac-address=AA:BB:CC:DD:EE:01 server=defconf comment="PC-marketing-1"

Nazwa serwera defconf to nazwa domyślnego serwera DHCP, sprawdź ją w zakładce DHCP tego samego okna.

Tworzymy address list

  1. Otwórz IP, Firewall, zakładkę Address Lists.
  2. Kliknij niebieski plus.
  3. W polu Name wpisz proxy-clients. W polu Address wpisz 192.168.88.101. Kliknij OK.
  4. Powtórz dla każdego adresu, za każdym razem wybierając tę samą nazwę proxy-clients z listy rozwijanej.

W terminalu:

/ip firewall address-list add list=proxy-clients address=192.168.88.101 comment="PC-marketing-1"
/ip firewall address-list add list=proxy-clients address=192.168.88.102 comment="PC-marketing-2"

Jeśli przez proxy ma pracować cała podsieć, dodaj ją jednym wpisem, np. 192.168.88.128/25.

Wskazówka: od razu utwórz drugą listę o nazwie direct-clients dla urządzeń, które w żadnych warunkach nie mają iść przez proxy: serwer monitoringu, drukarka, smart home. Nawet jeśli lista na razie nie jest używana, przyda się przy debugowaniu i rozbudowie schematu.

Sprawdzenie: w zakładce Address Lists są wpisy o nazwie proxy-clients, w DHCP Leases te urządzenia nie mają flagi D. Wykonaj na komputerze polecenie ipconfig w Windows lub ip addr w Linux i upewnij się, że adres zgadza się z przypisanym.

Możliwe problemy

  • Po Make Static komputer zachował stary adres. Odłącz i ponownie podłącz kabel sieciowy lub Wi-Fi albo wykonaj ipconfig /release i ipconfig /renew.
  • Nie ma urządzenia w Leases. To znaczy, że ma statyczny adres wpisany ręcznie. Po prostu dodaj ten adres do address list.

Krok 3: Konfigurujemy Web Proxy i nadrzędne proxy mobilne

Cel etapu: włączyć wbudowane proxy HTTP RouterOS, wskazać mu proxy mobilne jako nadrzędne i ograniczyć dostęp tylko do sieci lokalnej.

Włączamy Web Proxy

  1. Otwórz IP, następnie Web Proxy. Pojawi się okno Web Proxy Settings.
  2. Zaznacz Enabled.
  3. W polu Src. Address zostaw 0.0.0.0 lub wpisz adres routera w sieci lokalnej, np. 192.168.88.1. Drugi wariant jest pewniejszy: proxy będzie nasłuchiwać tylko na lokalnym interfejsie.
  4. W polu Port wpisz 8080. To port, z którym będą łączyć się klienci.
  5. W polu Parent Proxy wpisz adres IP proxy mobilnego z panelu dostawcy. Jeśli dostawca podał nazwę domenową, najpierw sprawdź jego IP przez terminal poleceniem :put [:resolve nazwa] i wpisz uzyskany adres. Pole przyjmuje tylko IP.
  6. W polu Parent Proxy Port wpisz port HTTP proxy, np. 8000 lub ten podany w panelu.
  7. Pole Cache Administrator możesz wypełnić swoim emailem lub zostawić jak jest.
  8. Odznacz Cache On Disk. Cache nie jest nam potrzebny, tylko zużywa zasoby i może zwracać nieaktualne strony.
  9. W polu Max. Cache Size wybierz none. W polu Max. Cache Object Size też możesz zostawić domyślnie, przy wyłączonym cache nie działa.
  10. Zaznacz Anonymous. Wtedy proxy nie będzie dodawać nagłówków Via i X-Forwarded-For z adresami twojej sieci lokalnej. Do pracy z kontami reklamowymi to ważne.
  11. Kliknij Apply, następnie OK.

W terminalu wszystko to robi się jednym poleceniem:

/ip proxy set enabled=yes src-address=192.168.88.1 port=8080 parent-proxy=203.0.113.10 parent-proxy-port=8000 cache-on-disk=no max-cache-size=none anonymous=yes

Zamień 203.0.113.10 i 8000 na rzeczywiste dane swojego proxy mobilnego.

Ograniczamy dostęp do proxy

Otwarte proxy to prezent dla przestępców: szybko zaczną przez nie przepuszczać cudzy ruch, a twoje proxy mobilne spali limity w kilka godzin. Dlatego od razu konfigurujemy listę dostępu.

  1. W oknie Web Proxy Settings kliknij przycisk Access. Otworzy się lista reguł Web Proxy Access.
  2. Kliknij plus. W polu Src. Address wpisz 192.168.88.0/24 - to twoja podsieć lokalna. Sprawdź ją w IP, Addresses. W polu Action wybierz allow. Kliknij OK.
  3. Kliknij plus jeszcze raz. Zostaw wszystkie pola puste, w Action wybierz deny. Kliknij OK. Ta reguła zablokuje wszystko, co nie jest dozwolone powyżej.
  4. Upewnij się, że reguła allow jest wyżej niż reguła deny. Kolejność można zmieniać przeciąganiem.

W terminalu:

/ip proxy access add src-address=192.168.88.0/24 action=allow comment="LAN allow"
/ip proxy access add action=deny comment="deny all others"

Jeśli chcesz zezwolić na proxy tylko urządzeniom z listy proxy-clients, a nie całej podsieci, dodaj zamiast pierwszej reguły osobne wiersze dla każdego adresu: pole Src. Address w Web Proxy Access nie obsługuje address list bezpośrednio. Bardziej elastyczne ograniczenie zrobimy firewallem w kroku 7.

Uwaga: pod żadnym pozorem nie zostawiaj Web Proxy bez reguł dostępu i bez blokady portu 8080 od strony WAN. Otwarte proxy na MikroTik skanery znajdują w ciągu doby.

Pierwsze sprawdzenie z terminala

Sprawdzić połączenie z nadrzędnym proxy można bez ruszania komputerów. W terminalu routera wpisz:

/tool fetch url=http://ifconfig.me/ip http-method=get output=user

To polecenie idzie bezpośrednio i pokaże zwykły zewnętrzny IP. Teraz otwórz na komputerze z listy proxy-clients przeglądarkę, wpisz proxy 192.168.88.1 port 8080 w ustawieniach sieci (w Windows: Ustawienia, Sieć i Internet, Serwer proxy, Użyj serwera proxy ręcznie) i wejdź na dowolną stronę sprawdzającą IP. Powinieneś zobaczyć adres operatora komórkowego, a nie swojego dostawcy.

Sprawdzenie: w IP, Web Proxy przycisk Status pokazuje Running, licznik połączeń rośnie przy otwieraniu stron z klienta, a strona sprawdzająca IP pokazuje adres proxy mobilnego.

Możliwe problemy

  • Strona się nie otwiera, przeglądarka zgłasza błąd proxy. Otwórz Log w menu po lewej: wiersze z tematem web-proxy podpowiedzą, co się dzieje. Błąd connection refused lub timeout do nadrzędnego proxy oznacza, że IP routera nie jest dodany do białej listy lub port jest nieprawidłowy.
  • Otwiera się, ale IP został stary. Prawdopodobnie pole Parent Proxy jest puste lub zaznaczenie Enabled się nie zapisało. Otwórz ustawienia ponownie.
  • Strony HTTPS się nie otwierają, HTTP działa. Sprawdź, czy w ustawieniach przeglądarki proxy jest wpisane również dla HTTPS, a nie tylko HTTP. Web Proxy RouterOS obsługuje metodę CONNECT i przekazuje ją do nadrzędnego proxy.

Krok 4: Kierujemy ruch klientów do proxy

Cel etapu: sprawić, żeby klienci z listy proxy-clients trafiali do Web Proxy, a pozostali nie. Omówimy dwa podejścia: przezroczyste przekierowanie przez NAT i jawną konfigurację klientów.

Podejście A: przezroczyste przekierowanie HTTP przez dst-nat

Tryb przezroczysty oznacza, że klient niczego nie konfiguruje: router sam przechwytuje połączenia na port 80 i kieruje je do swojego proxy. Ten sposób ma zasadnicze ograniczenie: działa tylko z niezaszyfrowanym HTTP. Ruchu HTTPS, a to dziś prawie cały internet, nie da się przezroczysto skierować przez Web Proxy, bo router nie może odszyfrować połączenia i zrozumieć, gdzie je wysłać. Dlatego podejście A stosujemy jako pomocnicze, a głównym będzie podejście B.

  1. Otwórz IP, Firewall, zakładkę NAT. Kliknij plus.
  2. W zakładce General: Chain - dstnat, Protocol - 6 (tcp), Dst. Port - 80.
  3. W zakładce Advanced: Src. Address List - proxy-clients. To kluczowy warunek: reguła zadziała tylko dla urządzeń z listy.
  4. W zakładce Action: Action - redirect, To Ports - 8080.
  5. W zakładce General w polu Comment wpisz Redirect HTTP to proxy. Kliknij OK.
  6. Przeciągnij regułę w górę, powyżej reguły masquerade, jeśli znalazła się poniżej. Reguły NAT wykonują się od góry do dołu i kolejność ma znaczenie.

W terminalu:

/ip firewall nat add chain=dstnat protocol=tcp dst-port=80 src-address-list=proxy-clients action=redirect to-ports=8080 comment="Redirect HTTP to proxy" place-before=0

Parametr place-before=0 stawia regułę jako pierwszą na liście.

Podejście B: jawna konfiguracja proxy na klientach

To główny wariant roboczy dla HTTPS. Klient wie, że proxy istnieje, i sam wysyła mu żądania, w tym CONNECT dla zaszyfrowanych stron. Plus w tym, że każdą przeglądarkę lub profil antydetekcyjny można konfigurować osobno.

  1. Na komputerze z Windows otwórz Ustawienia, Sieć i Internet, Serwer proxy. W sekcji Ręczna konfiguracja serwera proxy włącz przełącznik Użyj serwera proxy.
  2. W polu Adres wpisz 192.168.88.1, w polu Port - 8080.
  3. W polu wyjątków dodaj 192.168.*.*, żeby odwołania do lokalnych zasobów nie szły przez proxy. Kliknij Zapisz.
  4. Na macOS: Ustawienia systemowe, Sieć, wybierz połączenie, przycisk Szczegóły, sekcja Proxy, włącz Proxy sieci web (HTTP) i Bezpieczne proxy sieci web (HTTPS), wpisz te same adres i port.
  5. W przeglądarce antydetekcyjnej przy tworzeniu profilu wybierz typ proxy HTTP, adres 192.168.88.1, port 8080, pola loginu i hasła zostaw puste: autoryzację wykonuje router po IP.

Wskazówka: żeby nie konfigurować każdego komputera ręcznie, można rozsyłać parametry proxy automatycznie przez DHCP. Opisano to w sekcji dla zaawansowanych, tam też opisany jest plik WPAD.

Dlaczego potrzebne są oba podejścia

Przezroczysta reguła NAT ratuje sytuację, gdy na komputerze z listy klientów proxy ktoś zapomniał wpisać ustawienia: przynajmniej ruch HTTP pójdzie przez proxy mobilne, a nie bezpośrednio. Jawna konfiguracja zapewnia działanie HTTPS. Dla rygorystycznych scenariuszy w kroku 7 dodatkowo zamkniemy bezpośrednie wyjście do internetu dla proxy-clients firewallem, żeby ruch z pominięciem proxy stał się niemożliwy.

Sprawdzenie: na komputerze z listy otwórz stronę sprawdzającą IP przez HTTPS z skonfigurowanym proxy - widoczny jest adres operatora komórkowego. Otwórz IP, Firewall, NAT: licznik Packets przy regule Redirect HTTP to proxy rośnie, gdy wchodzisz na stronę HTTP. Z komputera spoza listy IP zostaje zwykły.

Możliwe problemy

  • Reguła NAT nie działa, liczniki na zero. Sprawdź, czy adres komputera rzeczywiście jest na liście proxy-clients i czy reguła jest powyżej masquerade.
  • Po włączeniu przekierowania przestał otwierać się interfejs web routera. Dodaj w regule redirect warunek Dst. Address Type - !local w zakładce Advanced, żeby odwołania do samego routera nie były przechwytywane.

Krok 5: Mangle - oznaczamy ruch dla policy-based routing

Cel etapu: oznaczyć połączenia tak, żeby router rozumiał, który ruch ma wychodzić przez alternatywny interfejs. To sedno policy-based routing na MikroTik.

Kiedy ten krok jest potrzebny

Jeśli masz jednego dostawcę i chcesz po prostu, żeby część urządzeń pracowała przez zewnętrzne proxy mobilne, kroki 3 i 4 mogą wystarczyć. Ale mangle i PBR rozwiązują kilka ważnych zadań:

  • masz dwa kanały, np. dostawcę przewodowego i modem LTE z kartą SIM, i chcesz wysyłać odwołania do dostawcy proxy lub ruch poszczególnych urządzeń ściśle przez jeden z nich;
  • chcesz, żeby urządzenia z listy proxy-clients wychodziły do internetu przez interfejs LTE routera, otrzymując mobilny IP bezpośrednio, bez zewnętrznego proxy - to też scenariusz pracy z adresami mobilnymi;
  • musisz sztywno rozdzielić ruch, żeby nawet przypadkowe połączenia z pominięciem proxy nie poszły przez główny kanał.

Dalej przyjmujemy, że główny kanał to interfejs ether1 z dostawcą, a alternatywny - lte1. Jeśli nie masz drugiego kanału, i tak przeczytaj tę sekcję: reguły mangle z niej przydadzą się przy debugowaniu i w zaawansowanych scenariuszach.

Tworzymy tabelę routingu z wyprzedzeniem

W RouterOS 7 nie można przypisać znacznika routingu, dopóki nie istnieje tabela o tej nazwie. Dlatego najpierw tworzymy tabelę, potem regułę mangle.

  1. Otwórz Routing, następnie Tables. Kliknij plus.
  2. W polu Name wpisz via-lte. Zaznacz FIB. Kliknij OK.
/routing table add name=via-lte fib

Reguła 1: oznaczamy połączenia klientów

  1. Otwórz IP, Firewall, zakładkę Mangle. Kliknij plus.
  2. Zakładka General: Chain - prerouting. In. Interface - bridge (twój lokalny interfejs, w konfiguracji domyślnej nazywa się bridge). Connection Mark - no-mark, żeby nie oznaczać ponownie już oznaczonych połączeń.
  3. Zakładka Advanced: Src. Address List - proxy-clients. Dst. Address Type - !local. Wykrzyknik oznacza negację: reguła nie ma działać na ruch do samego routera, inaczej klienci stracą dostęp do jego interfejsu web i DNS.
  4. Zakładka Action: Action - mark connection. New Connection Mark - wpisz conn-lte. Zaznaczenie Passthrough zostaw włączone: pakiet pójdzie dalej przez reguły i dostanie jeszcze routing mark.
  5. Comment: Mark connections from proxy clients. Kliknij OK.

Reguła 2: oznaczamy trasę po znaczniku połączenia

  1. Znowu plus. Chain - prerouting. In. Interface - bridge. Connection Mark - conn-lte.
  2. Zakładka Action: Action - mark routing. New Routing Mark - wybierz via-lte z listy. Passthrough odznacz: trasa jest przypisana, nie ma czego dalej przetwarzać.
  3. Comment: Route marked connections via LTE. Kliknij OK.

Oba polecenia w terminalu:

/ip firewall mangle add chain=prerouting in-interface=bridge src-address-list=proxy-clients dst-address-type=!local connection-mark=no-mark action=mark-connection new-connection-mark=conn-lte passthrough=yes comment="Mark connections from proxy clients"
/ip firewall mangle add chain=prerouting in-interface=bridge connection-mark=conn-lte action=mark-routing new-routing-mark=via-lte passthrough=no comment="Route marked connections via LTE"

Reguła 3: odwołania samego routera do proxy mobilnego

Web Proxy działa wewnątrz routera, więc jego połączenia z nadrzędnym proxy rodzą się w łańcuchu output, a nie prerouting. Jeśli chcesz, żeby router łączył się z dostawcą proxy przez konkretny kanał, dodaj osobną regułę.

  1. Plus. Chain - output. Protocol - tcp. Dst. Address - IP proxy mobilnego, np. 203.0.113.10. Dst. Port - port proxy, np. 8000.
  2. Action - mark routing. New Routing Mark - via-lte lub inna tabela, przez którą ma iść ten ruch. Passthrough - odznacz.
  3. Comment: Router to parent proxy. OK.
/ip firewall mangle add chain=output protocol=tcp dst-address=203.0.113.10 dst-port=8000 action=mark-routing new-routing-mark=via-lte passthrough=no comment="Router to parent proxy"

Uwaga: kolejność reguł mangle jest ważna. Reguła mark-connection musi być powyżej mark-routing. Jeśli dodawałeś je przez terminal po kolei, kolejność będzie prawidłowa. Przy dodawaniu przez WinBox sprawdź zakładkę Mangle i w razie potrzeby przeciągnij wiersze.

Wskazówka: w mangle jest tryb debugowania bez skutków. Utwórz regułę z Action - passthrough i odpowiednimi warunkami, ale bez znacznika. Jej liczniki pokażą, ile pakietów pasuje do warunków, i zrozumiesz, czy filtr jest dobrze ustawiony, niczego nie psując.

Sprawdzenie: w zakładce Mangle liczniki Packets przy obu regułach rosną, gdy klient z listy otwiera strony. Otwórz IP, Firewall, Connections: przy połączeniach od adresów proxy-clients w kolumnie Connection Mark stoi conn-lte. Jeśli kolumny nie widać, kliknij prawym przyciskiem na nagłówek tabeli i włącz ją.

Możliwe problemy

  • Na liście New Routing Mark nie ma via-lte. Nie utworzyłeś tabeli routingu lub nie zaznaczyłeś FIB. Wróć do Routing, Tables.
  • Klienci stracili dostęp do routera i DNS. Zapomniałeś warunku Dst. Address Type - !local. Dodaj go w pierwszej regule.
  • Liczniki zerowe. Sprawdź nazwę lokalnego interfejsu: w Interfaces może nazywać się nie bridge, ale bridge1 lub bridgeLocal.

Krok 6: Tabele routingu i trasy dla oznaczonego ruchu

Cel etapu: wyjaśnić routerowi, gdzie wysyłać pakiety ze znacznikiem via-lte, i skonfigurować NAT dla alternatywnego interfejsu, żeby ruch rzeczywiście wychodził do internetu.

Dodajemy trasę domyślną do tabeli via-lte

  1. Otwórz IP, następnie Routes. Kliknij plus.
  2. W polu Dst. Address wpisz 0.0.0.0/0 - to oznacza dowolne przeznaczenie.
  3. W polu Gateway wpisz nazwę interfejsu lte1. Dla interfejsów LTE RouterOS przyjmuje nazwę interfejsu zamiast IP bramy. Jeśli twoim drugim kanałem jest przewodowy, wpisz IP bramy drugiego dostawcy, np. 10.20.0.1.
  4. W polu Routing Table wybierz via-lte.
  5. W polu Check Gateway wybierz ping. Router będzie sprawdzać dostępność bramy, a gdy padnie, trasa stanie się nieaktywna.
  6. Distance zostaw 1. Comment: Default via LTE for marked traffic. Kliknij OK.
/ip route add dst-address=0.0.0.0/0 gateway=lte1 routing-table=via-lte check-gateway=ping distance=1 comment="Default via LTE for marked traffic"

Jeśli używasz przewodowego drugiego dostawcy z bramą, przy wpisywaniu IP bramy RouterOS może poprosić o wskazanie interfejsu przez znak procentu: 10.20.0.1%ether2. To potrzebne, gdy te same podsieci są na kilku interfejsach.

Konfigurujemy NAT dla drugiego interfejsu

Pakiety klientów pójdą do lte1 z prywatnymi adresami 192.168.88.x, a operator je odrzuci. Potrzebna jest podmiana adresu źródłowego na adres interfejsu, czyli masquerade.

  1. Otwórz IP, Firewall, NAT. Sprawdź, czy jest reguła masquerade z Out. Interface - lte1 lub Out. Interface List - WAN, do której należy lte1.
  2. Jeśli w konfiguracji domyślnej reguła używa Out. Interface List - WAN, dodaj lte1 do listy: Interfaces, zakładka Interface List, plus, List - WAN, Interface - lte1.
  3. Jeśli reguła jest przypisana do konkretnego interfejsu ether1, utwórz drugą: plus, Chain - srcnat, Out. Interface - lte1, Action - masquerade.
/interface list member add list=WAN interface=lte1
/ip firewall nat add chain=srcnat out-interface=lte1 action=masquerade comment="NAT for LTE"

Trasa zapasowa, gdy LTE jest niedostępne

Jeśli lte1 padnie, a trasa w tabeli via-lte stanie się nieaktywna, oznaczone pakiety stracą ścieżkę i ruch klientów się zatrzyma. Zdecyduj, czego potrzebujesz: albo niech się zatrzyma (tryb rygorystyczny, ruch z pominięciem kanału mobilnego jest niedopuszczalny), albo niech wychodzi przez główny kanał (tryb miękki). Dla trybu miękkiego dodaj w tej samej tabeli drugą trasę z większą odległością:

/ip route add dst-address=0.0.0.0/0 gateway=ether1 routing-table=via-lte distance=10 comment="Fallback via main WAN"

Zamiast ether1 wpisz IP bramy głównego dostawcy, jeśli interfejs nie obsługuje nazwy jako bramy. Dla trybu rygorystycznego nie dodawaj trasy zapasowej.

Wskazówka: tryb rygorystyczny to najlepszy wybór do pracy z kontami reklamowymi. Niech lepiej strona się nie otworzy, niż konto zobaczy twój domowy IP. W trybie miękkim koniecznie skonfiguruj powiadomienie o padnięciu LTE przez Tools, Netwatch, żeby na czas zatrzymać pracę.

Sprawdzenie: w IP, Routes trasa w tabeli via-lte jest aktywna, nie ma flagi X ani niebieskiego koloru nieaktywności. W terminalu wykonaj:

/ip route print where routing-table=via-lte
/tool traceroute 8.8.8.8 routing-table=via-lte

Traceroute powinien wychodzić przez bramę operatora LTE, pierwsze węzły będą się różnić od traceroute bez parametru routing-table. Z klienta z listy proxy-clients otwórz stronę sprawdzającą IP bez skonfigurowanego proxy - powinien pokazać się adres operatora komórkowego twojej karty SIM.

Możliwe problemy

  • Trasa nieaktywna. Interfejs lte1 nie jest podniesiony lub nie dostał adresu. Sprawdź Interfaces, LTE, status i ustawienia APN.
  • Trasa aktywna, ale strony się nie otwierają. Brak masquerade dla lte1. Sprawdź NAT.
  • Otwierają się, ale IP głównego dostawcy. Reguły mangle nie działają - wróć do kroku 5 i sprawdź liczniki.
  • DNS nie działa u klientów. Klienci używają routera jako DNS, a odwołania do routera wykluczyliśmy przez !local, więc to normalne. Jeśli klienci używają zewnętrznego DNS, router wyśle zapytania DNS przez LTE i to też jest dopuszczalne.

Krok 7: Zabezpieczamy konfigurację firewallem i zamykamy wycieki

Cel etapu: upewnić się, że proxy jest niedostępne z internetu, a urządzenia z listy proxy-clients nie mogą przypadkowo wyjść do sieci z pominięciem proxy.

Zamykamy port proxy od strony WAN

  1. Otwórz IP, Firewall, zakładkę Filter Rules.
  2. Znajdź reguły domyślne. W standardowej konfiguracji jest reguła z Chain - input, In. Interface List - !LAN, Action - drop. Ona już blokuje wszystkie przychodzące z zewnątrz, w tym port 8080. Jeśli jest i włączona, to wystarczy.
  3. Jeśli domyślnych reguł nie ma lub je zmieniałeś, dodaj jawną: plus, Chain - input, Protocol - tcp, Dst. Port - 8080, In. Interface List - WAN, Action - drop. Postaw ją powyżej wszelkich reguł accept dla input.
/ip firewall filter add chain=input protocol=tcp dst-port=8080 in-interface-list=WAN action=drop comment="Block proxy from WAN" place-before=0

Zezwalamy na proxy tylko klientom z listy

Dodatkowo ograniczymy dostęp do portu 8080 w sieci: niech do proxy mogą wchodzić tylko urządzenia z proxy-clients.

/ip firewall filter add chain=input protocol=tcp dst-port=8080 in-interface=bridge src-address-list=!proxy-clients action=drop comment="Proxy only for listed clients"

Przez WinBox: plus, Chain - input, Protocol - tcp, Dst. Port - 8080, In. Interface - bridge, zakładka Advanced: Src. Address List - proxy-clients z włączoną negacją (kliknij kwadracik po lewej stronie pola, pojawi się wykrzyknik), Action - drop.

Zabraniamy bezpośredniego wyjścia dla proxy-clients

Ten krok dla tych, którzy wybrali tryb rygorystyczny: urządzenia z listy mają wychodzić do internetu tylko przez Web Proxy na routerze i nigdy inaczej. Wtedy nawet aplikacja bez ustawień proxy nie może ujawnić prawdziwego adresu.

  1. Plus. Chain - forward. Zakładka Advanced: Src. Address List - proxy-clients. Zakładka General: Out. Interface List - WAN.
  2. Action - reject, Reject With - icmp network unreachable. Reject jest lepszy niż drop: aplikacja od razu dostanie błąd, a nie będzie wisieć w oczekiwaniu.
  3. Comment: Block direct internet for proxy clients. OK.
/ip firewall filter add chain=forward src-address-list=proxy-clients out-interface-list=WAN action=reject reject-with=icmp-network-unreachable comment="Block direct internet for proxy clients"

Uwaga: jeśli używasz scenariusza z LTE z kroków 5-6, gdzie klienci wychodzą przez lte1 bezpośrednio bez Web Proxy, tę regułę trzeba złagodzić: dodać Out. Interface - ether1 zamiast listy WAN, żeby blokowany był tylko główny kanał.

Uwaga: dodawaj reguły blokujące w forward dopiero po tym, jak upewnisz się, że proxy działa. Inaczej zablokujesz sobie internet na komputerze roboczym i uznasz, że proxy się zepsuło, choć problem będzie w kolejności działań.

Co z DNS

Przy pracy przez proxy HTTP z jawną konfiguracją przeglądarka nie rozwiązuje domen sama: wysyła nazwę strony do proxy, a nazwę rozwiązuje już proxy mobilne po swojej stronie. To dobrze, nie ma wycieku DNS. Ale inne aplikacje na komputerze nadal pytają DNS routera, a router idzie do swoich serwerów DNS przez główny kanał. Dla scenariuszy reklamowych to nie jest krytyczne, bo strony widzą tylko adres proxy. Jeśli chcesz, żeby także zapytania DNS urządzeń z listy szły przez LTE, one już podpadają pod reguły mangle z kroku 5 przy używaniu zewnętrznych serwerów DNS na kliencie.

Sprawdzenie: z telefonu przez internet mobilny spróbuj otworzyć adres typu http://twoj-zewnetrzny-IP:8080 - połączenie nie powinno się nawiązać. Z komputera spoza proxy-clients próba wpisania proxy 192.168.88.1:8080 powinna zakończyć się błędem. Z komputera z listy, jeśli włączony jest tryb rygorystyczny, żaden program bez ustawień proxy nie powinien wychodzić do internetu.

Jak wycofać zmiany

Jeśli coś poszło nie tak, najszybsza droga to wyłączyć reguły, a nie usuwać. W dowolnej zakładce firewalla zaznacz regułę i kliknij czerwony krzyżyk Disable. W ten sposób wrócisz do dostępu, zachowując ustawienia do analizy. Pełne wycofanie: Files, zaznacz before-proxy.backup, kliknij Restore, potwierdź restart. Po dwóch minutach router wróci do stanu przed przewodnikiem.

Sprawdzenie wyniku: lista kontrolna i testy

Przejdź przez całą listę. Każdy punkt to osobne sprawdzenie, odhaczaj wykonane.

Lista kontrolna

  • W Files są kopie zapasowe skopiowane na komputer.
  • W IP, Web Proxy status Running, podane Parent Proxy i Parent Proxy Port, cache wyłączony.
  • W Web Proxy Access jest reguła allow dla podsieci lokalnej i kończąca deny.
  • W Address Lists jest lista proxy-clients z adresami potrzebnych urządzeń, adresy przypisane w DHCP.
  • W NAT jest reguła redirect portu 80 na 8080 dla proxy-clients, jest powyżej masquerade.
  • W Mangle są reguły mark-connection i mark-routing w prawidłowej kolejności, liczniki rosną.
  • W Routing, Tables jest tabela via-lte z FIB, w IP, Routes - aktywna trasa 0.0.0.0/0 w tej tabeli.
  • W NAT jest masquerade dla drugiego interfejsu.
  • W Filter Rules port 8080 jest zamknięty od strony WAN.

Jak przetestować

  1. Na komputerze z listy proxy-clients ze skonfigurowanym proxy otwórz dwie-trzy różne strony sprawdzające IP przez HTTPS. Wszystkie powinny pokazać jeden adres operatora komórkowego i jego nazwę w polu dostawcy.
  2. Na tym samym komputerze otwórz dowolną stronę przez HTTP bez skonfigurowanego proxy. Powinna się otworzyć przez redirect, a w IP, Web Proxy, Connections pojawi się wpis z twoim adresem źródłowym.
  3. Na komputerze spoza listy otwórz stronę sprawdzającą IP. Adres powinien być twojego zwykłego dostawcy.
  4. W WinBox otwórz Tools, Torch, wybierz interfejs lte1 lub ether1 i kliknij Start. Zobaczysz żywy strumień ruchu: z jakiego adresu, na jaki port. Tak obrazowo widać, przez który interfejs wychodzi ruch każdego klienta.
  5. Otwórz Log i włącz filtr po temacie web-proxy. Błędów typu parent proxy connection failed być nie powinno.
  6. Uruchom na kliencie pobieranie pliku o rozmiarze 100-200 MB i sprawdź prędkość. Będzie ograniczona prędkością proxy mobilnego, a nie twojego kanału - to oczekiwane.

Wskaźniki sukcesu

  • Strony sprawdzające stabilnie pokazują adres operatora komórkowego dla urządzeń z listy.
  • Pozostałe urządzenia spoza listy nie zmieniły zachowania.
  • Router nie odpowiada na porcie 8080 z zewnątrz.
  • Obciążenie procesora routera przy pracy proxy nie przekracza 30-50 procent (System, Resources, pole CPU Load).
  • Po odłączeniu drugiego interfejsu oznaczony ruch zachowuje się tak, jak zdecydowałeś w kroku 6: zatrzymuje się lub przechodzi na trasę zapasową.

Typowe błędy i rozwiązania

Proxy na MikroTik włączone, ale klienci dostają błąd połączenia

Przyczyna: router nie może połączyć się z nadrzędnym proxy. Najczęściej zewnętrzny IP routera nie jest dodany do białej listy u dostawcy lub zmienił się po ponownym połączeniu. Rozwiązanie: wykonaj /tool fetch url=https://ifconfig.me/ip mode=https output=user, porównaj adres z tym w panelu dostawcy, zaktualizuj białą listę. Sprawdź port Parent Proxy Port i to, czy dostawca podał właśnie port HTTP, a nie SOCKS.

Strony HTTP działają, HTTPS się nie otwierają

Przyczyna: proxy na kliencie jest wpisane tylko dla HTTP albo liczysz na przezroczyste przekierowanie portu 443. Rozwiązanie: w ustawieniach systemu lub przeglądarki włącz proxy także dla HTTPS. Przezroczyste skierowanie 443 przez Web Proxy jest niemożliwe, nie próbuj dodawać redirect dla portu 443 - to zepsuje wszystkie zaszyfrowane strony.

Po dodaniu reguł mangle klienci stracili dostęp do routera

Przyczyna: brak warunku Dst. Address Type - !local i odwołania do interfejsu web, DNS i DHCP routera też dostają znacznik i idą do innej tabeli. Rozwiązanie: dodaj warunek w regule mark-connection. Połączenia, które już są oznaczone, wyczyść: IP, Firewall, Connections, zaznacz wiersze klienta, kliknij Remove.

Routing mark nie pojawia się na liście rozwijanej

Przyczyna: w RouterOS 7 tabele tworzy się z wyprzedzeniem w Routing, Tables. Rozwiązanie: utwórz tabelę z zaznaczonym FIB, potem wróć do reguły mangle.

Ruch oznaczony, trasa aktywna, ale nie ma internetu

Przyczyna: brak masquerade dla interfejsu, przez który idzie oznaczony ruch. Rozwiązanie: dodaj lte1 do Interface List WAN lub utwórz osobną regułę srcnat z Out. Interface - lte1.

Strona widzi adres proxy mobilnego, ale czasem przemyka domowy IP

Przyczyna: część aplikacji lub osobna przeglądarka na komputerze nie używa proxy, a tryb rygorystyczny firewalla nie jest włączony. Rozwiązanie: włącz regułę reject w forward z kroku 7 dla proxy-clients, sprawdź, czy profile antydetekcyjne używają proxy 192.168.88.1:8080, a nie ustawień systemowych.

Router zwalnia, CPU 100 procent

Przyczyna: włączone buforowanie na dysk lub zbyt wielu klientów na słabym modelu. Rozwiązanie: wyłącz Cache On Disk, ustaw Max. Cache Size - none. Wyłącz logowanie w Web Proxy Access, jeśli włączyłeś je do debugowania. Dla dziesiątek jednoczesnych użytkowników rozważ model z procesorem ARM64, np. hAP ax3 lub RB5009.

Nieprawidłowa kolejność reguł NAT

Przyczyna: reguła redirect stoi poniżej masquerade lub poniżej innego dstnat, które przechwytuje ruch wcześniej. Rozwiązanie: przeciągnij redirect na początek listy. Pamiętaj, że łańcuchy srcnat i dstnat są przetwarzane osobno, ale wewnątrz dstnat kolejność jest krytyczna.

Po restarcie wszystko się zepsuło

Przyczyna: w mangle jest wpisany IP proxy mobilnego, a dostawca proxy zmienił adres, albo interfejs lte1 podnosi się dłużej, niż zadziała check-gateway. Rozwiązanie: sprawdź adres w panelu dostawcy, zaktualizuj Parent Proxy i regułę output. Dla LTE dodaj w System, Scheduler zadanie uruchamiane przy starcie, które po 60 sekundach restartuje interfejs lte1 poleceniem /interface lte set lte1 disabled=yes; :delay 5; /interface lte set lte1 disabled=no.

Dodatkowe możliwości dla zaawansowanych

Automatyczne rozsyłanie ustawień proxy przez DHCP i WPAD

Żeby nie konfigurować każdego komputera ręcznie, można opublikować plik autokonfiguracji wpad.dat. To niewielki skrypt w JavaScript, który mówi przeglądarce: dla takich adresów używaj proxy, dla pozostałych idź bezpośrednio. Plik kładzie się na dowolnym serwerze web w sieci lokalnej lub na samym routerze w sekcji Files i rozsyła standardową usługą www RouterOS. Następnie w IP, DHCP Server, Options tworzy się opcję z kodem 252 i wartością - adresem pliku, a opcję przypisuje się do sieci DHCP. Windows i większość przeglądarek podchwytują ją automatycznie przy włączonym automatycznym wykrywaniu proxy. Plus podejścia: nowy laptop dostaje ustawienia przy pierwszym połączeniu z Wi-Fi.

Kontenery: SOCKS5 i autoryzacja loginem i hasłem

Wbudowany Web Proxy rozumie tylko HTTP jako nadrzędny i nie przekazuje loginu z hasłem. Jeśli twoje proxy mobilne jest dostępne tylko przez SOCKS5 lub tylko z autoryzacją po loginie, pomoże pakiet Container dla RouterOS 7. Na modelach ARM, ARM64 i x86 można uruchomić lekki kontener z programem typu redsocks lub gost, który przyjmuje przezroczysto przekierowany ruch i opakowuje go w SOCKS5 z autoryzacją. Schemat jest taki: kontener dostaje adres w osobnej sieci veth, reguła dstnat przekierowuje ruch TCP od proxy-clients na port kontenera, a kontener już rozmawia z proxy mobilnym. Konfiguracja wymaga włączenia trybu kontenerów przez terminal z fizycznym potwierdzeniem przyciskiem na urządzeniu i uważnego podejścia do pamięci, więc nadaje się dla tych, którzy już pewnie pracują z RouterOS.

Kilka proxy dla różnych grup urządzeń

Web Proxy w RouterOS jest jeden i nadrzędne proxy też jedno. Jeśli różne stanowiska potrzebują różnych proxy mobilnych, użyj kombinacji: część klientów chodzi przez Web Proxy routera, a dla innych grup utwórz osobne address list i osobne tabele routingu z trasami przez różne interfejsy - drugi modem LTE, drugi dostawca. W mangle każda grupa dostaje swój znacznik połączenia i swój routing mark. Tak na jednym routerze można rozdzielić trzy-cztery niezależne wyjścia.

Skrypt zmiany nadrzędnego proxy według harmonogramu

Jeśli dostawca daje kilka adresów, a ty musisz je okresowo zmieniać, napisz krótki skrypt w System, Scripts, który zmienia parametr parent-proxy poleceniem /ip proxy set parent-proxy=nowy-adres, i podepnij go do System, Scheduler z odpowiednim interwałem. Nie zapomnij, że każdy nowy adres proxy musi być autoryzowany po twoim IP w panelu dostawcy, a reguła mangle w output musi uwzględniać wszystkie możliwe adresy - wygodniej zastąpić w niej pole Dst. Address na address list z adresami proxy.

Monitoring i powiadomienia

W Tools, Netwatch dodaj sprawdzanie dostępności adresu proxy mobilnego po porcie TCP z interwałem 30 sekund. W polu Down Script wpisz polecenie wysłania wiadomości przez /tool e-mail send lub wpis do logu z oznaczeniem krytyczności. Tak dowiesz się o problemie wcześniej, niż zauważą go konta reklamowe.

Ograniczanie prędkości i priorytety

Proxy mobilne jest zwykle wolniejsze niż kanał przewodowy. Żeby jeden klient nie zjadał całego zasobu, utwórz w Queues prostą kolejkę Simple Queue na podsieć proxy-clients z limitem, np. 20 Mb/s na całą listę, albo osobne kolejki na każdy adres. Tak parser na jednym komputerze nie odetnie od łączności menedżera na sąsiednim.

Logowanie na potrzeby audytu

W Web Proxy Access można włączyć pole Log przy regule allow. Wtedy w System, Logging przy skonfigurowanym temacie web-proxy będą zapisywane adres klienta i adres żądanego zasobu. Do długotrwałego przechowywania skieruj log na zdalny serwer syslog przez System, Logging, Actions. Pamiętaj o obciążeniu: na słabych modelach logowanie każdego żądania zauważalnie zjada procesor.

FAQ: częste pytania o konfigurację

Czy można skierować cały ruch komputera do proxy mobilnego bez konfiguracji na samym komputerze?

Dla HTTP - tak, przez redirect w NAT. Dla HTTPS standardowymi środkami RouterOS - nie, bo Web Proxy nie może przezroczysto obsługiwać zaszyfrowanego ruchu. Całkowicie przezroczysty schemat jest możliwy przez kontener z przejściówką SOCKS5, opisano to w sekcji dla zaawansowanych. W większości przypadków prościej raz wpisać proxy 192.168.88.1:8080 na kliencie lub rozdać ustawienia przez WPAD.

Dlaczego Web Proxy nie przyjmuje loginu i hasła dla nadrzędnego proxy?

W RouterOS po prostu nie ma takiego pola. Dlatego obowiązkowym warunkiem schematu jest autoryzacja po IP po stronie dostawcy proxy. Jeśli twój plan na to nie pozwala, skontaktuj się z pomocą dostawcy lub użyj kontenera.

Czy trzeba konfigurować mangle i tabele routingu, jeśli mam jednego dostawcę?

Nie. Dla jednego kanału wystarczą kroki 3, 4 i 7. Mangle i PBR są potrzebne, gdy jest drugi interfejs lub trzeba sztywno rozdzielić ścieżki ruchu. Ale warto je opanować: to uniwersalne narzędzie RouterOS, które przyda się też w innych zadaniach.

Jak poznać, przez który interfejs rzeczywiście wychodzi ruch klienta?

Otwórz Tools, Torch, wybierz sprawdzany interfejs WAN i włącz filtr po adresie źródłowym. Jeśli ruch klienta jest widoczny na lte1 i nie widać go na ether1 - policy-based routing działa. Drugi sposób - IP, Firewall, Connections: przy potrzebnych połączeniach powinien stać znacznik conn-lte.

Co się stanie, jeśli routerowi zmieni się zewnętrzny IP?

Nadrzędne proxy przestanie wpuszczać router, klienci dostaną błędy. Zaktualizuj białą listę w panelu dostawcy. Żeby to zautomatyzować, włącz IP, Cloud i skonfiguruj u dostawcy proxy autoryzację po nazwie DDNS, jeśli obsługuje taką opcję.

Czy można użyć serwera SOCKS, który jest w menu IP, SOCKS?

Ta sekcja to serwer SOCKS, a nie klient. Pozwala innym urządzeniom łączyć się z routerem jako proxy SOCKS, ale nie potrafi przekazywać ruchu do zewnętrznego proxy SOCKS. Do zadania z przewodnika się nie nadaje i lepiej trzymać go wyłączonym.

Jak dodać nowy komputer do schematu?

Przypisz jego adres w DHCP Leases przez Make Static, dodaj adres do address list proxy-clients i wpisz na komputerze proxy 192.168.88.1:8080. Nic więcej nie trzeba zmieniać - wszystkie reguły odwołują się do listy.

Czy można wykluczyć poszczególne strony z proxy dla klientów z listy?

Przy jawnej konfiguracji na kliencie dodaj domeny w polu wyjątków proxy w systemie lub przeglądarce. Po stronie routera dla przezroczystego HTTP można dodać regułę w Web Proxy Access z Dst. Host i Action - deny, ale to zablokuje stronę, a nie puści jej bezpośrednio. Do routingu przez PBR dodaj adresy strony do osobnego address list i regułę mangle powyżej głównej z Action - accept, wtedy ruch do nich nie dostanie znacznika.

Jak całkowicie usunąć proxy i przywrócić wszystko jak było?

Szybki wariant: wyłącz reguły redirect, mangle i reject przez Disable, zdejmij zaznaczenie Enabled w Web Proxy. Pełny wariant: przywróć kopię before-proxy przez Files, Restore.

Na ile jest to legalne i bezpieczne?

Korzystanie z proxy do zarządzania własnymi kontami reklamowymi, testowania i rozdzielania ruchu to zwykła praktyka techniczna. Masz obowiązek przestrzegać regulaminów platform, z którymi pracujesz, i umowy z dostawcą proxy. Z punktu widzenia bezpieczeństwa najważniejsze to nie zostawiać proxy otwartego w internecie i nie trzymać kopii zapasowych bez hasła w ogólnodostępnych miejscach.

Podsumowanie

Przeszedłeś całą drogę: zrobiłeś kopię zapasową, zaktualizowałeś RouterOS, przypisałeś adresy urządzeń, włączyłeś wbudowany Web Proxy i połączyłeś go z proxy mobilnym dostawcy. Następnie skierowałeś ruch klientów do proxy przez NAT i jawne ustawienia, nauczyłeś się oznaczać połączenia w mangle, utworzyłeś osobną tabelę routingu i skonfigurowałeś policy-based routing przez drugi interfejs. Na koniec zabezpieczyłeś schemat firewallem i upewniłeś się, że wszystko działa, zgodnie z listą kontrolną.

Teraz proxy na MikroTik żyje na poziomie sieci, a nie na każdym osobnym komputerze. Nowy pracownik łączy się z Wi-Fi, trafia na listę, dostaje ustawienia - i pracuje z potrzebnym IP bez zbędnych wyjaśnień. Jednocześnie reszta sieci niczego nie zauważyła.

Co dalej

  • Skonfiguruj automatyczne rozsyłanie parametrów proxy przez opcję DHCP 252, żeby nowe urządzenia podłączały się bez ręcznej konfiguracji.
  • Dodaj monitoring dostępności proxy przez Netwatch i powiadomienia.
  • Podziel urządzenia na kilka grup z różnymi address list i opracuj osobne tabele routingu dla każdej.
  • Jeśli potrzebujesz SOCKS5 lub autoryzacji loginem, zapoznaj się z pakietem Container i wypróbuj schemat z przejściówką na testowym routerze.

Kierunki rozwoju

RouterOS to głęboki system, a mangle z routingiem opartym na politykach to tylko jego część. Kolejne tematy, które warto poznać po tym przewodniku: kolejki i priorytetyzacja ruchu, skrypty i scheduler do automatyzacji rutyny, redundancja kanałów z automatycznym przełączaniem, a także praca z kilkoma modemami LTE na jednym urządzeniu. Każdy z nich opiera się na pojęciach, które już opanowałeś: listy adresów, znaczniki, tabele tras. Wracaj do tej instrukcji jak do ściągawki, eksperymentuj na konfiguracji testowej i nie zapominaj o kopiach zapasowych przed każdą poważną zmianą.