Proxyman — це нативний проксі-клієнт для macOS і iOS, призначений для перехоплення, перегляду та модифікації HTTP/HTTPS-трафіку при розробці додатків. За даними офіційного сайту Proxyman (2025), інструмент використовується більш ніж у 10 000 компаній і підтримує всі сучасні версії iOS і macOS. Проксі-клієнт пропонує безкоштовну базову версію і відрізняється від Charles Proxy більш сучасним інтерфейсом, підтримкою скриптів на JavaScript для модифікації даних на льоту та вбудованою сумісністю з iOS-симулятором.
Головне
Proxyman — це HTTP/HTTPS проксі-клієнт, створений спеціально для екосистеми Apple. На відміну від кроссплатформених рішень, Proxyman використовує нативні фреймворки macOS (Swift, AppKit), що забезпечує високу продуктивність і безшовну інтеграцію з системними механізмами проксування. Інструмент підтримує macOS 11+ та iOS 14+.
Proxyman позиціонується як сучасна альтернатива Charles Proxy для розробників під Apple-екосистему. Основні переваги: безкоштовна версія з повним базовим функціоналом, нативний інтерфейс, що відповідає дизайн-системі macOS, автоматичне налаштування для iOS-симулятора без додаткових дій. Proxyman активно розвивається з 2018 року і має відкриту систему зворотного зв'язку зі спільнотою розробників.
Proxyman працює на macOS (нативний додаток, не Electron) і надає допоміжний додаток для iOS. Фізичні пристрої (iPhone, iPad) налаштовуються через WiFi Proxy аналогічно Charles. Додаток для iOS (Proxyman iOS companion) дозволяє переглядати трафік безпосередньо на пристрої без комп'ютера — ця функція унікальна для Proxyman.
Proxyman працює за стандартним MITM-принципом: додаток налаштовується як системний проксі, через який проходить весь HTTP/HTTPS-трафік. Інструмент використовує нативні механізми macOS Network Extension для перехоплення трафіку без необхідності ручного налаштування проксі для iOS-симулятора.
На macOS Proxyman використовує Apple Network Framework для прозорого перехоплення трафіку. При активації проксі Proxyman створює віртуальний мережевий інтерфейс, через який проходить трафік усіх додатків. Для iOS-симулятора налаштування відбувається автоматично при запуску — Proxyman через Xcode визначає запущені симулятори та перенаправляє їхній трафік без ручного встановлення проксі в налаштуваннях.
Для дешифрування HTTPS Proxyman встановлює локальний кореневий сертифікат у системний зв'язку ключів macOS. При першому запуску програма пропонує встановити сертифікат і довіряти йому. Всі сертифікати для конкретних доменів генеруються на льоту та підписуються кореневим сертифікатом Proxyman. Для iOS-симулятора сертифікат встановлюється автоматично при запуску проксі.
// Приклад скрипта Proxyman для модифікації відповіді
// Scripting: змінюємо статус відповіді на 500 для тестування помилок
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 надає унікальний набір функцій, що відрізняють його від інших проксі-інструментів. Особливий акцент зроблено на скриптовій модифікації трафіку та нативній продуктивності.
Головна особливість Proxyman — підтримка скриптів на JavaScript для модифікації запитів і відповідей. Замість того щоб вручну редагувати кожен запит через Breakpoints (як у Charles), розробник може написати скрипт, який автоматично застосовуватиметься до певних URL. Скрипти підтримують повний доступ до заголовків, тіла запиту та відповіді, статус-коду та метаданих. Це дозволяє автоматизувати рутинні операції: підміна токена авторизації, зміна заголовків, емуляція помилок для тестування.
Proxyman пропонує гнучку систему фільтрів на основі правил. Можна створити профілі, які автоматично групують трафік за доменами, типами контенту або статус-кодами. Наприклад, всі запити до API вашого додатку автоматично потрапляють в окрему групу, а статика (CSS, JS, зображення) — в іншу. Це особливо зручно при налагодженні, коли потрібно зосередитися тільки на певних ендпоїнтах.
| Функція | Proxyman | Charles Proxy | Примітка |
|---|---|---|---|
| Scripting | JavaScript | Немає | Автоматична модифікація без Breakpoints |
| iOS Simulator | Автоматично | Ручне налаштування | Proxyman визначає симулятор через Xcode |
| Безкоштовна версія | Так | 30 днів trial | Proxyman — без обмеження за часом |
| Платформа | macOS, iOS | Windows, macOS, Linux | Charles кроссплатформенний, Proxyman — тільки Apple |
| HAR Export | Так | Так | Обидва підтримують стандартний формат |
Proxyman відображає часову шкалу запитів у стилі діаграми Ганта, де кожен запит представлений кольоровою смугою із зазначенням тривалості, статусу та розміру. Шкала інтерактивна: можна виділити діапазон часу та побачити тільки запити за цей період. Для кожного запиту доступна фазова розбивка: DNS, Connect, TLS Handshake, Request, Response.
Унікальна можливість Proxyman — окремий додаток для iOS, який можна встановити на iPhone або iPad. Він дозволяє переглядати мережевий трафік безпосередньо на пристрої без підключення до комп'ютера. Трафік відображається в реальному часі з можливістю фільтрації та пошуку. Додаток особливо корисний при польовому тестуванні, коли немає доступу до комп'ютера.
Proxyman пропонує різні способи налаштування для iOS та Android. Завдяки нативній інтеграції з Xcode, налаштування для iOS-симулятора відбувається практично автоматично. Для фізичних пристроїв та Android потрібна ручна конфігурація.
Найпростіший сценарій: запустіть Proxyman, відкрийте вкладку iOS Simulator і натисніть Start. Proxyman автоматично визначить запущені симулятори через Xcode та налаштує проксі. Сертифікат HTTPS також встановлюється автоматично. Жодних додаткових дій не потрібно — трафік симулятора одразу з'являється у вікні Proxyman. Це значна перевага перед Charles, де налаштування симулятора потребує ручного встановлення проксі.
Для iPhone або iPad: підключіть пристрій до тієї ж WiFi-мережі, що й комп'ютер. У налаштуваннях WiFi пристрою вкажіть HTTP Proxy: IP-адресу комп'ютера та порт 9090 (порт за замовчуванням Proxyman). Потім відкрийте Safari та перейдіть на http://proxy.man/ssl для встановлення сертифіката. На iOS 10.3+ обов'язково увімкніть довіру сертифікату в Settings → General → About → Certificate Trust Settings.
Android-пристрої налаштовуються аналогічно iOS: WiFi Proxy з IP-адресою комп'ютера та портом 9090. Для HTTPS потрібно встановлення сертифіката через браузер на http://proxy.man/ssl. На Android 7+ для Debug-збірки додатка знадобиться файл network_security_config.xml із довірою користувацьким сертифікатам. Для Android-емулятора використовуйте IP-адресу хоста (зазвичай 10.0.2.2) замість IP комп'ютера.
<!-- network_security_config.xml для Android з 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>
Вибір між Proxyman і Charles Proxy залежить від конкретних потреб команди та платформи розробки. Розглянемо ключові відмінності, щоб допомогти розробнику прийняти зважене рішення.
Proxyman написаний на Swift з AppKit, що забезпечує нативну продуктивність macOS і мінімальне споживання пам'яті. Charles написаний на Java (Eclipse RCP), що дає кроссплатформеність, але може призводити до дещо вищого споживання пам'яті та ненативного інтерфейсу на macOS. Для розробників під Apple-екосистему Proxyman зазвичай відчувається більш чуйним.
Charles пропонує більш зрілий і широкий набір інструментів: Rewrite Rules з візуальним редактором, Repeat для повторення запитів, Map Local/Remote, Auto Save сесій. Proxyman відповідає більш сучасними функціями: Scripting на JavaScript, автоматичне налаштування симулятора, iOS-компаньйон для перегляду трафіку на пристрої. Charles має перевагу при складних сценаріях автоматизації (Rewrite, Repeat), а Proxyman — при швидкій та гнучкій модифікації через скрипти.
Proxyman пропонує безкоштовну версію з базовим функціоналом без обмеження за часом. Pro-версія (підписка ~$12/рік або одноразова покупка ~$59) відкриває розширені функції: скриптинг, фільтри, експорт. Charles — $50 за ліцензію з 30-денним trial. Для інді-розробників Proxyman більш доступний, для корпоративних середовищ різниця несуттєва.
Часті запитання
Proxyman має безкоштовну версію з базовим функціоналом для перехоплення HTTP/HTTPS-трафіку без обмеження за часом. Платні підписки (Pro і Team) додають скриптинг, розширені фільтри, експорт у HAR та пріоритетну підтримку. Для більшості завдань налагодження достатньо безкоштовної версії.
Proxyman — нативний macOS-додаток, але може перехоплювати трафік з Android-пристроїв через WiFi Proxy аналогічно Charles. Android-пристрої налаштовуються як HTTP-проксі з IP-адресою комп'ютера та портом Proxyman. Для Android-емулятора використовується IP 10.0.2.2. Сертифікат HTTPS встановлюється окремо.
Є два способи: Local Edit — подвійний клік по запиту, вибір вкладки Response, редагування вручну, потім кнопка Execute для відправки модифікованої відповіді додатку. Scripting — написати JavaScript-скрипт, який автоматично застосовує зміни до вказаних URL при кожному запиті.
Так, Proxyman підтримує експорт у формати: HAR (HTTP Archive), Proxyman Session (.pxm), Curl Command (для кожного запиту), Plain Text. Експорт доступний через контекстне меню на запиті або групі запитів. HAR-формат сумісний з Charles Proxy, Chrome DevTools та онлайн-в'юверами.
Proxyman автоматично визначає запущені iOS Simulator'и через Xcode і перенаправляє їхній трафік без ручного налаштування. При запуску проксі Proxyman впроваджує системний проксі через Network Extension на macOS, який автоматично застосовується до всіх симуляторів. Сертифікат HTTPS також встановлюється автоматично.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також