Если вы разрабатываете или тестируете Windows-приложения и хотите видеть, какие именно HTTP-запросы они отправляют — Fiddler станет вашим главным инструментом. Он перехватывает весь трафик, позволяет его анализировать, изменять на лету и воспроизводить. Особенно это полезно при работе с UWP-приложениями, которые по умолчанию обходят системный прокси.
В этом руководстве разберём установку, настройку HTTPS-перехвата, работу с UWP, подключение внешних прокси и типичные сценарии использования — от отладки API до мониторинга фоновых запросов.
Что такое Fiddler и зачем он нужен
Fiddler — это HTTP-прокси-отладчик, разработанный компанией Telerik (ныне Progress). Он работает как локальный прокси-сервер: все HTTP и HTTPS запросы вашего компьютера проходят через него, и вы можете видеть каждый из них в реальном времени. Инструмент бесплатный, существует в двух версиях — Fiddler Classic (только Windows) и Fiddler Everywhere (кросс-платформенный).
Чем Fiddler отличается от DevTools в браузере? Браузерные инструменты разработчика показывают только трафик самого браузера. Fiddler же перехватывает запросы от любых приложений на вашем компьютере: десктопных программ, системных служб, фоновых процессов Windows, мобильных приложений через Wi-Fi и — что особенно важно — UWP-приложений из Microsoft Store.
Типичные задачи, которые решает Fiddler:
- Анализ API-запросов десктопных приложений — что именно отправляет программа, какие заголовки, какие данные
- Отладка собственного кода — видите реальные запросы вашего приложения, а не то, что вы предполагали отправить
- Изменение запросов и ответов на лету — подмена данных для тестирования edge-кейсов
- Мониторинг фоновой активности — какие сервера "звонит" программа без вашего ведома
- Тестирование через прокси — проверка поведения приложения при работе через внешний прокси-сервер
- Воспроизведение запросов — повторная отправка перехваченного запроса с изменёнными параметрами
Особую ценность Fiddler представляет для разработчиков, которые работают с закрытыми API — например, реверс-инжиниринг протокола мобильного приложения или десктопного клиента. Вы просто запускаете программу, нажимаете нужные кнопки в интерфейсе и видите все запросы в Fiddler.
Установка и первоначальная настройка
Установка Fiddler Classic занимает около двух минут. Скачайте установщик с официального сайта telerik.com/fiddler и запустите его. После установки Fiddler автоматически прописывает себя как системный прокси Windows на порту 127.0.0.1:8888.
Сразу после запуска вы увидите главное окно с тремя зонами:
- Левая панель (Sessions) — список всех перехваченных запросов в реальном времени
- Правая верхняя панель — детали выбранного запроса (заголовки, тело, параметры)
- Правая нижняя панель — ответ сервера
Первое, что стоит сделать — настроить фильтрацию, иначе в список попадёт весь системный трафик Windows (обновления, телеметрия, OneDrive и т.д.), и найти нужные запросы будет сложно. Перейдите во вкладку Filters в правой части и включите Use Filters. В поле Show only the following Hosts укажите домены, которые вас интересуют.
Полезные горячие клавиши Fiddler Classic:
F12— включить/выключить перехват трафикаCtrl+X— очистить список сессийCtrl+F— поиск по сессиямR— повторить выбранный запросShift+Delete— удалить выбранные сессии
Также рекомендуем сразу настроить автосохранение сессий: File → Capture Traffic и File → Save → All Sessions. Это позволит вернуться к записанному трафику позже и анализировать его офлайн.
Перехват HTTPS-трафика: настройка сертификата
По умолчанию Fiddler перехватывает только HTTP-трафик. Для работы с HTTPS (а это 95%+ современного трафика) нужно настроить SSL-дешифрование. Fiddler действует как Man-in-the-Middle: он генерирует свой корневой сертификат и подписывает им все HTTPS-соединения.
Пошаговая настройка HTTPS-перехвата:
- Откройте Tools → Options → HTTPS
- Поставьте галочку Capture HTTPS CONNECTs
- Поставьте галочку Decrypt HTTPS traffic
- В выпадающем списке выберите ...from all processes
- Нажмите кнопку Actions → Trust Root Certificate
- Подтвердите установку сертификата в системное хранилище Windows
- Перезапустите Fiddler
После этого в колонке Protocol вы увидите HTTPS вместо CONNECT, и сможете просматривать расшифрованное содержимое запросов и ответов.
⚠️ Важно: безопасность сертификата
Сертификат Fiddler устанавливается только в хранилище текущего пользователя Windows. Не передавайте файл сертификата третьим лицам — это позволило бы им перехватывать ваш HTTPS-трафик. После завершения отладки сертификат можно удалить через Tools → Options → HTTPS → Actions → Remove Interception Certificates.
Некоторые приложения используют Certificate Pinning — они проверяют конкретный сертификат сервера и откажутся работать через Fiddler. В этом случае вы увидите ошибку подключения в приложении. Обход пиннинга — отдельная тема, выходящая за рамки этой статьи.
Как перехватить трафик UWP-приложений
UWP (Universal Windows Platform) — это приложения из Microsoft Store: Почта, Карты, Кино и ТВ, Spotify, Netflix и многие другие. Их особенность в том, что по соображениям безопасности они работают в изолированном контейнере (App Container) и не используют системный прокси. Именно поэтому обычная настройка Fiddler не перехватывает их трафик.
Для решения этой проблемы Fiddler предоставляет специальный инструмент — AppContainer Loopback Exemption Utility. Он добавляет UWP-приложение в список исключений, позволяя ему обращаться к локальному прокси Fiddler.
Способ 1 — через интерфейс Fiddler:
- В меню выберите WinConfig (кнопка на панели инструментов или Tools → Win8 Loopback Exemptions)
- Откроется список всех установленных UWP-приложений
- Найдите нужное приложение и поставьте галочку напротив него
- Нажмите Save Changes
- Перезапустите UWP-приложение
Способ 2 — через командную строку (для автоматизации):
CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsMaps_8wekyb3d8bbwe"
Замените Microsoft.WindowsMaps_8wekyb3d8bbwe на Package Family Name нужного приложения. Найти его можно в PowerShell командой:
Get-AppxPackage | Select-Object Name, PackageFamilyName | Sort-Object Name
После добавления исключения UWP-приложение начнёт отправлять трафик через Fiddler. Вы увидите его запросы в списке сессий — обычно они легко идентифицируются по User-Agent или по хосту назначения.
💡 Совет: UWP и HTTPS
Для перехвата HTTPS-трафика UWP-приложений недостаточно добавить loopback-исключение. Нужно также установить сертификат Fiddler в хранилище Trusted Root Certification Authorities для Local Machine (не только для текущего пользователя). Сделайте это через certmgr.msc или через групповые политики.
Фильтры, брейкпоинты и изменение запросов
Три самые мощные функции Fiddler для отладки — это фильтрация сессий, брейкпоинты и AutoResponder. Разберём каждую из них.
Фильтрация сессий
Вкладка Filters позволяет показывать только нужные запросы. Основные опции:
- Show only the following Hosts — фильтр по домену (например,
api.example.com) - Show only if URL contains — фильтр по части URL
- Show only if response Content-Type — только JSON, XML, изображения и т.д.
- Hide if URL contains — исключить шумовые запросы (например,
telemetry,analytics)
Также можно использовать строку QuickExec внизу окна для быстрых команд. Например, select status 404 выделит все запросы с ошибкой 404, а bold api выделит жирным все сессии, содержащие "api" в URL.
Брейкпоинты (Breakpoints)
Брейкпоинты позволяют остановить запрос или ответ до его отправки/получения и изменить содержимое вручную. Это аналог точки останова в отладчике кода, только для HTTP.
- Rules → Automatic Breakpoints → Before Requests — останавливает каждый запрос до отправки
- Rules → Automatic Breakpoints → After Responses — останавливает каждый ответ до передачи приложению
- Правый клик на сессии → Breakpoint → Break on Request — точечный брейкпоинт на конкретный URL
Когда запрос остановлен, вы можете изменить любой заголовок, тело запроса, URL и нажать Run to Completion для продолжения. Это особенно полезно для тестирования поведения приложения при изменённых данных.
AutoResponder
AutoResponder — инструмент для подмены ответов сервера. Вы создаёте правило: "если URL совпадает с паттерном — вернуть вот этот файл/ответ". Применения:
- Тестирование приложения с заглушками API без реального бэкенда
- Симуляция ошибок сервера (500, 503, таймауты)
- Подмена ресурсов — загрузить локальную версию JS/CSS вместо серверной
- Ускорение разработки — кешировать медленные запросы к внешним API
Подключение внешнего прокси через Fiddler
Одна из важных возможностей Fiddler — работа в режиме "прокси через прокси" (upstream proxy). Fiddler перехватывает трафик локально, а затем направляет его через внешний прокси-сервер. Это позволяет одновременно отлаживать запросы и менять IP-адрес или гео-локацию.
Когда это нужно:
- Тестирование поведения приложения при работе через корпоративный прокси
- Проверка геозависимого контента — как приложение работает из другой страны
- Отладка приложения, которое само использует прокси
- Тестирование API с IP-ограничениями (whitelist по IP)
Настройка upstream proxy в Fiddler Classic:
- Откройте Tools → Options → Gateway
- Выберите Manual Proxy Configuration
- В поле Proxy введите адрес прокси в формате
host:port - Если прокси требует аутентификацию — укажите логин и пароль
- Нажмите OK и перезапустите захват трафика
Fiddler поддерживает HTTP, HTTPS и SOCKS5 прокси в качестве upstream. Для SOCKS5 формат записи немного отличается:
socks=proxy.example.com:1080
Для задач тестирования геозависимого поведения приложений хорошо подходят резидентные прокси — они используют реальные IP домашних пользователей из нужной страны, и приложение получает ответы именно такие, какие получил бы реальный пользователь из этого региона. Это важно, если API возвращает разный контент в зависимости от гео.
Если вам нужна высокая скорость для загрузки больших объёмов данных во время отладки, подойдут прокси дата-центров — они обеспечивают стабильное соединение и минимальную задержку, что удобно при работе с тяжёлыми API.
💡 FiddlerScript для динамического выбора прокси
Через FiddlerScript можно настроить разные upstream-прокси для разных хостов. Например, направлять запросы к api.us-service.com через американский прокси, а остальные — напрямую:
static function OnBeforeRequest(oSession: Session) {
if (oSession.HostnameIs("api.us-service.com")) {
oSession["x-OverrideGateway"] = "us-proxy.example.com:8080";
}
}
Практические сценарии: парсинг, тестирование API, геообход
Разберём конкретные задачи, которые удобно решать с помощью Fiddler.
Сценарий 1: Реверс-инжиниринг API мобильного приложения
Вы хотите автоматизировать действия в приложении, но у него нет публичного API. Решение: запустить приложение на эмуляторе Android или через Windows-клиент, настроить его на использование Fiddler как прокси, и записать все запросы при выполнении нужных действий.
После записи вы получаете полную картину: эндпоинты, форматы запросов, заголовки аутентификации, токены. Эти данные можно использовать для написания собственного клиента или автоматизации через скрипты.
Сценарий 2: Отладка парсера маркетплейса
При разработке парсера для Wildberries, Ozon или других маркетплейсов часто непонятно, почему запросы блокируются. Fiddler позволяет сравнить запросы браузера (которые проходят) с запросами парсера (которые блокируются) и найти отличия в заголовках, порядке их следования, значениях cookie или TLS fingerprint.
Типичная находка: парсер отправляет заголовки в другом порядке, отсутствует Accept-Language, или User-Agent содержит версию Python. Исправив эти детали в коде парсера, вы снижаете вероятность блокировки.
Сценарий 3: Тестирование геозависимого контента
Если ваше приложение отображает разный контент пользователям из разных стран, нужно тестировать его с реальными IP из этих стран. Настройте Fiddler с upstream-прокси из нужного региона, запустите приложение — и вы увидите ровно то, что видит пользователь из этой страны, плюс полный лог всех запросов.
Сценарий 4: Мониторинг фоновой активности приложений
Хотите знать, куда "звонит" установленная программа? Запустите Fiddler, запустите программу, подождите 5-10 минут. В списке сессий появятся все хосты, к которым обращалась программа. Это полезно для аудита безопасности стороннего ПО, проверки на наличие телеметрии или нежелательных подключений.
Сценарий 5: Экспорт запросов для воспроизведения
Fiddler позволяет экспортировать перехваченные запросы в формате cURL, который можно сразу запустить в терминале или вставить в Postman. Правый клик на сессии → Copy → cURL Request. Это удобно для передачи запроса коллеге или для документирования API.
Fiddler Classic vs Fiddler Everywhere: что выбрать
Telerik поддерживает две версии продукта, и выбор между ними не всегда очевиден. Разберём ключевые отличия.
| Параметр | Fiddler Classic | Fiddler Everywhere |
|---|---|---|
| Платформы | Только Windows | Windows, macOS, Linux |
| Цена | Бесплатно | Платная подписка (есть бесплатный план) |
| UWP-поддержка | Да (через WinConfig) | Ограниченная |
| FiddlerScript | Да (JScript.NET) | Нет (используется Rules) |
| Интерфейс | Устаревший, но функциональный | Современный, удобный |
| Совместная работа | Нет | Да (облачные коллекции) |
| Расширяемость | Плагины .NET | Ограниченная |
| Перехват системного трафика | Полный | Полный |
Когда выбрать Fiddler Classic: вы работаете только на Windows, вам нужна работа с UWP-приложениями, вы используете FiddlerScript для автоматизации, или вам важна полностью бесплатная версия без ограничений.
Когда выбрать Fiddler Everywhere: вы работаете на macOS или Linux, вам нужен современный интерфейс, важна командная работа с общими коллекциями запросов, или вы хотите интеграцию с CI/CD пайплайнами.
Также стоит упомянуть альтернативы: Charles Proxy (платный, популярен на macOS), mitmproxy (бесплатный, консольный, очень гибкий), Wireshark (работает на уровне пакетов, а не HTTP). Каждый инструмент имеет свои сильные стороны, но для большинства задач отладки Windows-приложений Fiddler Classic остаётся оптимальным выбором.
Типичные проблемы и их решения
При работе с Fiddler периодически возникают типовые проблемы. Вот самые распространённые и способы их решения.
Проблема: Приложение не работает при включённом Fiddler
Причины: Certificate Pinning, жёстко прописанный прокси в приложении, или приложение не доверяет сертификату Fiddler. Решения:
- Установите сертификат Fiddler в хранилище Local Machine → Trusted Root
- Проверьте, не использует ли приложение certificate pinning
- Добавьте хост в исключения SSL: Tools → Options → HTTPS → Skip Decryption for following hosts
Проблема: После закрытия Fiddler интернет не работает
Fiddler не успел снять системный прокси при аварийном завершении. Решение: откройте Параметры Windows → Сеть → Прокси и отключите ручной прокси. Или запустите Fiddler снова и закройте штатно.
Проблема: Видны только CONNECT-туннели, но не содержимое HTTPS
Не настроен HTTPS-перехват. Вернитесь к разделу про настройку сертификата и убедитесь, что галочка Decrypt HTTPS traffic включена и сертификат установлен в системное хранилище.
Проблема: Трафик UWP-приложения не появляется в Fiddler
Не добавлено loopback-исключение для этого приложения. Используйте WinConfig (описано в разделе про UWP) и перезапустите приложение после добавления исключения.
Проблема: Upstream прокси не работает (ошибка соединения)
Проверьте: правильность адреса и порта прокси, корректность логина/пароля, доступность прокси-сервера (попробуйте подключиться напрямую без Fiddler). Также убедитесь, что прокси поддерживает нужный протокол — не все HTTP-прокси поддерживают HTTPS-туннелирование.
Заключение
Fiddler — незаменимый инструмент для всех, кто работает с HTTP-трафиком Windows-приложений. Он позволяет видеть все запросы в реальном времени, изменять их на лету, тестировать поведение приложений в разных условиях и решать задачи, которые невозможно выполнить браузерными DevTools. Особенно ценна поддержка UWP-приложений через механизм loopback-исключений — это уникальная возможность, которой нет у большинства аналогов.
Для задач тестирования геозависимого поведения приложений или проверки работы через внешние прокси — настройте upstream proxy в Fiddler. Если вам нужны реальные IP из конкретных стран для корректного тестирования, обратите внимание на резидентные прокси — они обеспечивают максимально реалистичное гео и минимальный риск блокировок со стороны тестируемых сервисов.
Начните с Fiddler Classic — он бесплатный, хорошо задокументированный и покрывает 90% задач отладки на Windows. По мере роста потребностей можно перейти на Fiddler Everywhere или дополнить рабочий процесс специализированными инструментами вроде mitmproxy для более гибкой автоматизации.