Proxyman — to natywny klient proxy dla macOS i iOS, przeznaczony do przechwytywania, przeglądania i modyfikowania ruchu HTTP/HTTPS podczas tworzenia aplikacji. Według danych oficjalnej strony Proxyman (2025), narzędzie jest używane w ponad 10 000 firm i obsługuje wszystkie nowoczesne wersje iOS i macOS. Klient proxy oferuje darmową podstawową wersję i różni się od Charles Proxy nowocześniejszym interfejsem, obsługą skryptów JavaScript do modyfikacji danych w locie oraz wbudowaną kompatybilnością z symulatorem iOS.
Najważniejsze
Proxyman — to klient proxy HTTP/HTTPS stworzony specjalnie dla ekosystemu Apple. W przeciwieństwie do rozwiązań wieloplatformowych, Proxyman wykorzystuje natywne frameworki macOS (Swift, AppKit), co zapewnia wysoką wydajność i bezproblemową integrację z systemowymi mechanizmami proxy. Narzędzie obsługuje macOS 11+ i iOS 14+.
Proxyman pozycjonuje się jako nowoczesna alternatywa dla Charles Proxy dla programistów ekosystemu Apple. Główne zalety: darmowa wersja z pełną podstawową funkcjonalnością, natywny interfejs zgodny z systemem projektowym macOS, automatyczna konfiguracja dla symulatora iOS bez dodatkowych działań. Proxyman aktywnie rozwija się od 2018 roku i ma otwarty system feedbacku ze społecznością programistów.
Proxyman działa na macOS (natywna aplikacja, nie Electron) i udostępnia pomocniczą aplikację dla iOS. Fizyczne urządzenia (iPhone, iPad) konfiguruje się przez WiFi Proxy podobnie jak w Charles. Aplikacja dla iOS (Proxyman iOS companion) pozwala przeglądać ruch bezpośrednio na urządzeniu bez komputera — ta funkcja jest unikalna dla Proxyman.
Proxyman działa na standardowej zasadzie MITM: aplikacja konfigurowana jest jako systemowe proxy, przez które przechodzi cały ruch HTTP/HTTPS. Narzędzie wykorzystuje natywne mechanizmy macOS Network Extension do przechwytywania ruchu bez konieczności ręcznej konfiguracji proxy dla symulatora iOS.
Na macOS Proxyman używa Apple Network Framework do transparentnego przechwytywania ruchu. Po aktywacji proxy Proxyman tworzy wirtualny interfejs sieciowy, przez który przechodzi ruch wszystkich aplikacji. Dla symulatora iOS konfiguracja odbywa się automatycznie przy uruchomieniu — Proxyman przez Xcode wykrywa uruchomione symulatory i przekierowuje ich ruch bez ręcznego ustawiania proxy w ustawieniach.
Do deszyfrowania HTTPS Proxyman instaluje lokalny certyfikat główny w pęku kluczy systemowych macOS. Przy pierwszym uruchomieniu program proponuje zainstalowanie certyfikatu i zaufanie mu. Wszystkie certyfikaty dla konkretnych domen są generowane w locie i podpisywane certyfikatem głównym Proxyman. Dla symulatora iOS certyfikat instalowany jest automatycznie przy uruchomieniu proxy.
// Przykładowy skrypt Proxyman do modyfikacji odpowiedzi
// Scripting: zmieniamy status odpowiedzi na 500 do testowania błędów
function onResponse(request, response) {
if (request.url.includes("/api/users")) {
response.statusCode = 500;
response.body = JSON.stringify({
error: "Internal Server Error",
code: "SERVER_TIMEOUT"
});
}
return response;
}
Proxyman oferuje unikalny zestaw funkcji, które odróżniają go od innych narzędzi proxy. Szczególny nacisk położono na skryptową modyfikację ruchu i natywną wydajność.
Główna cecha Proxyman — obsługa skryptów JavaScript do modyfikacji żądań i odpowiedzi. Zamiast ręcznie edytować każde żądanie przez Breakpoints (jak w Charles), programista może napisać skrypt, który będzie automatycznie stosowany do określonych URL. Skrypty mają pełny dostęp do nagłówków, treści żądania i odpowiedzi, kodu statusu i metadanych. Pozwala to automatyzować rutynowe operacje: podmiana tokena autoryzacji, zmiana nagłówków, emulacja błędów do testowania.
Proxyman oferuje elastyczny system filtrów oparty na regułach. Można tworzyć profile, które automatycznie grupują ruch według domen, typów treści lub kodów statusu. Na przykład wszystkie żądania do API twojej aplikacji automatycznie trafiają do osobnej grupy, a statyka (CSS, JS, obrazy) — do innej. Jest to szczególnie wygodne przy debugowaniu, gdy trzeba skupić się tylko na określonych endpointach.
| Funkcja | Proxyman | Charles Proxy | Uwagi |
|---|---|---|---|
| Scripting | JavaScript | Nie | Automatyczna modyfikacja bez Breakpoints |
| iOS Simulator | Automatycznie | Ręczna konfiguracja | Proxyman wykrywa symulator przez Xcode |
| Darmowa wersja | Tak | 30 dni trial | Proxyman — bez ograniczenia czasowego |
| Platforma | macOS, iOS | Windows, macOS, Linux | Charles wieloplatformowy, Proxyman — tylko Apple |
| HAR Export | Tak | Tak | Oba obsługują standardowy format |
Proxyman wyświetla oś czasu żądań w stylu diagramu czasowego, gdzie każde żądanie przedstawione jest kolorowym paskiem z informacją o czasie trwania, statusie i rozmiarze. Oś jest interaktywna: można zaznaczyć zakres czasu i zobaczyć tylko żądania z tego okresu. Dla każdego żądania dostępny jest podział fazowy: DNS, Connect, TLS Handshake, Request, Response.
Unikalna możliwość Proxyman — osobna aplikacja dla iOS, którą można zainstalować na iPhonie lub iPadzie. Pozwala ona przeglądać ruch sieciowy bezpośrednio na urządzeniu bez podłączania do komputera. Ruch wyświetlany jest w czasie rzeczywistym z możliwością filtrowania i wyszukiwania. Aplikacja jest szczególnie przydatna podczas testów terenowych, gdy nie ma dostępu do komputera.
Proxyman oferuje różne sposoby konfiguracji dla iOS i Android. Dzięki natywnej integracji z Xcode, konfiguracja dla symulatora iOS odbywa się praktycznie automatycznie. Dla urządzeń fizycznych i Android wymagana jest ręczna konfiguracja.
Najprostszy scenariusz: uruchom Proxyman, otwórz zakładkę iOS Simulator i kliknij Start. Proxyman automatycznie wykryje uruchomione symulatory przez Xcode i skonfiguruje proxy. Certyfikat HTTPS również instalowany jest automatycznie. Nie są wymagane żadne dodatkowe działania — ruch symulatora natychmiast pojawia się w oknie Proxyman. To znacząca przewaga nad Charles, gdzie konfiguracja symulatora wymaga ręcznego ustawienia proxy.
Dla iPhone lub iPad: podłącz urządzenie do tej samej sieci WiFi co komputer. W ustawieniach WiFi urządzenia wskaż HTTP Proxy: adres IP komputera i port 9090 (domyślny port Proxyman). Następnie otwórz Safari i przejdź na http://proxy.man/ssl w celu instalacji certyfikatu. Na iOS 10.3+ koniecznie włącz zaufanie certyfikatowi w Settings → General → About → Certificate Trust Settings.
Urządzenia Android konfiguruje się podobnie jak iOS: WiFi Proxy z adresem IP komputera i portem 9090. Dla HTTPS wymagana jest instalacja certyfikatu przez przeglądarkę na http://proxy.man/ssl. Na Android 7+ dla debugowej kompilacji aplikacji będzie potrzebny plik network_security_config.xml z zaufaniem certyfikatom użytkownika. Dla emulatora Android użyj adresu IP hosta (zwykle 10.0.2.2) zamiast IP komputera.
<!-- network_security_config.xml dla Androida z Proxyman -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
Wybór między Proxyman a Charles Proxy zależy od konkretnych potrzeb zespołu i platformy programistycznej. Rozważmy kluczowe różnice, aby pomóc programiście w podjęciu świadomej decyzji.
Proxyman napisany jest w Swift z AppKit, co zapewnia natywną wydajność macOS i minimalne zużycie pamięci. Charles napisany jest w Javie (Eclipse RCP), co daje wieloplatformowość, ale może prowadzić do nieco wyższego zużycia pamięci i nienatywnego interfejsu na macOS. Dla programistów ekosystemu Apple Proxyman zwykle wydaje się bardziej responsywny.
Charles oferuje bardziej dojrzały i szeroki zestaw narzędzi: Rewrite Rules z edytorem wizualnym, Repeat do powtarzania żądań, Map Local/Remote, Auto Save sesji. Proxyman odpowiada nowocześniejszymi funkcjami: Scripting w JavaScript, automatyczna konfiguracja symulatora, iOS-companion do przeglądania ruchu na urządzeniu. Charles ma przewagę przy złożonych scenariuszach automatyzacji (Rewrite, Repeat), a Proxyman — przy szybkiej i elastycznej modyfikacji przez skrypty.
Proxyman oferuje darmową wersję z podstawową funkcjonalnością bez ograniczenia czasowego. Wersja Pro (subskrypcja ~$12/rok lub jednorazowy zakup ~$59) odblokowuje zaawansowane funkcje: scripting, filtry, eksport. Charles — $50 za licencję z 30-dniowym trialem. Dla niezależnych programistów Proxyman jest bardziej dostępny, dla środowisk korporacyjnych różnica jest nieznaczna.
Często zadawane pytania
Proxyman ma darmową wersję z podstawową funkcjonalnością do przechwytywania ruchu HTTP/HTTPS bez ograniczenia czasowego. Płatne subskrypcje (Pro i Team) dodają scripting, zaawansowane filtry, eksport do HAR i priorytetowe wsparcie. Do większości zadań debugowania wystarczy darmowa wersja.
Proxyman — natywna aplikacja macOS, ale może przechwytywać ruch z urządzeń Android przez WiFi Proxy podobnie jak Charles. Urządzenia Android konfiguruje się jako HTTP-proxy z adresem IP komputera i portem Proxyman. Dla emulatora Android używany jest IP 10.0.2.2. Certyfikat HTTPS instaluje się osobno.
Są dwa sposoby: Local Edit — podwójne kliknięcie na żądanie, wybór zakładki Response, ręczna edycja, następnie przycisk Execute do wysłania zmodyfikowanej odpowiedzi do aplikacji. Scripting — napisanie skryptu JavaScript, który automatycznie stosuje zmiany do wskazanych URL przy każdym żądaniu.
Tak, Proxyman obsługuje eksport do formatów: HAR (HTTP Archive), Proxyman Session (.pxm), Curl Command (dla każdego żądania), Plain Text. Eksport dostępny jest przez menu kontekstowe na żądaniu lub grupie żądań. Format HAR jest kompatybilny z Charles Proxy, Chrome DevTools i przeglądarkami online.
Proxyman automatycznie wykrywa uruchomione iOS Simulatory przez Xcode i przekierowuje ich ruch bez ręcznej konfiguracji. Przy uruchomieniu proxy Proxyman wdraża systemowe proxy przez Network Extension na macOS, które automatycznie stosuje się do wszystkich symulatorów. Certyfikat HTTPS również instalowany jest automatycznie.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również