Как посмотреть трафик с iPhone или Android
Телефон и компьютер в одной сети Wi-Fi, прокси в настройках сети, корневой сертификат с полным доверием. Четыре шага и шесть причин, по которым они не срабатывают.
Что нужно настроить
Нужны две вещи. Прокси в настройках сети Wi-Fi заставляет телефон отправлять запросы через компьютер. Корневой сертификат позволяет компьютеру их расшифровать. Без прокси вы не увидите ничего, без сертификата увидите только обрывы соединений.
Как это сделать
Шаг 1. Одна сеть Wi-Fi. Держите телефон и компьютер в одной сети. Не в гостевой: там включена изоляция клиентов, и устройства не видят друг друга. Мобильный интернет на телефоне выключите. И iOS, и Android сами уходят в сотовую сеть, когда Wi-Fi кажется им нерабочим.
Шаг 2. Узнать адрес компьютера.
# macOS — Wi-Fi обычно en0; если ничего не вывелось, попробуйте en1
ipconfig getifaddr en0
# Linux
ip route get 1.1.1.1 | awk '{print $7}'
# Windows
ipconfig | findstr IPv4
Нужен адрес из приватного диапазона: 192.168.x.x, 10.x.x.x или
172.16.x.x–172.31.x.x. Эти три блока зарезервированы
RFC 1918, пункт 3.
Не 127.0.0.1.
Шаг 3. Прописать прокси на телефоне. Адрес из шага 2, порт прокси. Solpuga
слушает 7070. Без аутентификации.
iOS: «Настройки» → Wi-Fi → ⓘ рядом с сетью → «Настройка прокси» → «Вручную».
Android: «Настройки» → «Сеть и интернет» → «Интернет» → шестерёнка рядом с сетью → карандаш → «Дополнительно» → «Прокси» → «Вручную». На старых Android: долгое нажатие на сеть → «Изменить сеть».
Теперь откройте на телефоне любую страницу по http://. Если не грузится, порт
блокирует брандмауэр на компьютере; это выясняется за десять секунд, и прокси тут
ни при чём. Если грузится, в прокси уже видны запросы к http и попытки соединений
с https.
Шаг 4. Поставить сертификат. Сертификат отдаётся через прокси, поэтому сначала должен работать шаг 3. В Solpuga меню «SSL-сертификат» показывает QR-код для сканирования или отправляет файл по AirDrop.
iOS требует ещё двух шагов, и оба обязательны. Установите загруженный профиль: «Настройки» → «Основные» → «VPN и управление устройством» → профиль в разделе «Загруженный профиль» → «Установить». Затем включите полное доверие: «Настройки» → «Основные» → «Об этом устройстве» → «Настройки доверия сертификатов». Шаги разобраны подробнее.
Android положит сертификат в пользовательское хранилище, а приложения с target API
24 (Android 7) и выше его игнорируют. Chrome в том числе. Лечится только в самом
приложении: network_security_config, который доверяет пользовательским
сертификатам. Разбор лежит здесь.
Что обычно мешает
Брандмауэр на компьютере. Windows по умолчанию не пускает входящие соединения. В macOS брандмауэр из коробки выключен, но стоит включить его или поставить защитную утилиту, и он тоже начнёт блокировать. Проверка из шага 3 ловит оба случая.
VPN на телефоне. Включённый VPN забирает трафик себе, и настройка прокси в Wi-Fi перестаёт действовать. Выключите.
iCloud Private Relay на iOS. Трафик Safari уходит мимо прокси. Быстрее всего выключить его для одной сети: «Настройки» → Wi-Fi → ⓘ → «Ограничить отслеживание IP-адреса». Целиком он отключается в «Настройки» → Apple ID → iCloud → «Частный узел».
DNS over HTTPS (RFC 8484).
Перехват он не ломает: прокси по-прежнему видит все запросы. Он лишь добавляет
соединения с резолвером вида dns.google или cloudflare-dns.com. Не принимайте их
за трафик приложения.
Приложение с пиннингом. Никакой сертификат ему не подойдёт. Добавьте его хост в список исключений, и приложение продолжит работать: трафик запишется, но останется нерасшифрованным. Чтобы его прочитать, нужна сборка, которая доверяет вашему CA.
QUIC и HTTP/3. Прокси в Wi-Fi работает только с TCP. Всё, что говорит по
QUIC поверх UDP, проходит мимо. В Chrome отключите QUIC на chrome://flags/#enable-quic;
для остальных приложений закройте исходящий UDP на порт 443 на роутере.
Как увидеть это у себя
Когда все четыре шага сделаны, в прокси виден каждый запрос: хост, метод, путь, заголовки, тело, ответ. Сертификат установлен, а браузер на компьютере всё равно ругается? Это ERR_CERT_AUTHORITY_INVALID. Полный справочник — системное и пользовательское хранилище на Android, заметки про ADB на Linux и Windows — в Мобильных устройствах.
Рядом
- iOS: профиль установлен, но сертификату нет доверияНа iOS корневой сертификат ставится в два шага, а не в один. Второй спрятан в «Об этом устройстве», и без него не работает ничего.
- Android не доверяет сертификату проксиПриложения под Android 7+ игнорируют пользовательские сертификаты. Как разрешить их отладочной сборке через network_security_config и чего это не починит.
- ERR_CERT_AUTHORITY_INVALID через прокси — как починитьChrome не доверяет корневому сертификату прокси. Куда его установить на macOS, Windows и Linux и почему Firefox не смотрит в системное хранилище.