HTTP-прокси устройства¶
FIRERPA предоставляет на телефоне HTTP-прокси — мостовой прокси (bridge proxy) в конфигурации сервиса, то есть tunnel2.*. Если вы укажете на компьютере или в браузере прокси-сервер, ведущий на телефон, трафик компьютера сначала пойдёт через телефон, а затем выйдет через сеть телефона; внешний IP-адрес будет совпадать с IP-адресом телефона. По направлению это противоположно настройке прокси. Сравнение:
К типичным сценариям относятся: использование одного и того же исходящего IP для компьютера и телефона при совместной отладке и диагностике, настройка upstream в mitmproxy на телефон при перехвате трафика, чтобы трафик по-прежнему выходил с устройства, или использование сетей нескольких устройств в качестве источника IP-адресов.
Использование прокси¶
Эта функция включена по умолчанию; прокси использует общий с удалённым рабочим столом служебный порт, по умолчанию 65000. Посмотрите текущий IP в настройках WLAN телефона (в примерах ниже — 192.168.0.2), а если вы изменяли port, не забудьте заменить порт в примерах. Компьютер должен иметь доступ к служебному порту FIRERPA на телефоне: обычно он должен находиться в одной локальной сети с телефоном, либо служебный порт должен быть проброшен в интернет.
На компьютере можно быстро проверить работу следующей командой (замените IP на адрес вашего устройства):
curl -x http://192.168.0.2:65000 https://httpbin.org/ip
Если возвращённый IP совпадает с внешним IP телефона, всё работает. В Firefox можно задать HTTP-прокси 192.168.0.2, порт 65000 и включить параметр «также использовать этот прокси для HTTPS». В Python можно написать:
requests.get("https://httpbin.org/ip", proxies={"http": "http://192.168.0.2:65000", "https": "http://192.168.0.2:65000"})
Если сервисный сертификат не включён, прокси по умолчанию не требует аутентификации. Если при запуске используется сервисный сертификат, необходимо использовать имя пользователя lamda; пароль — это PASSWD из первой строки PEM-файла сервисного сертификата (тот же пароль, что и для входа в удалённый рабочий стол по HTTPS, но не пользовательский пароль WebUI). Кроме того, в конфигурации сервиса можно задать tunnel2.password, чтобы указать отдельный пароль прокси. Пример curl в этом случае:
curl --proxy-insecure -x https://lamda:пароль_сертификата@192.168.0.2:65000 https://httpbin.org/ip
Пример на Python:
requests.get("https://httpbin.org/ip", verify=False, proxies={"http": "https://lamda:пароль_сертификата@192.168.0.2:65000", "https": "https://lamda:пароль_сертификата@192.168.0.2:65000"})
Настройка прокси¶
Мостовой прокси можно настроить в конфигурации сервиса. Например, задайте tunnel2.login и tunnel2.password для собственных учётных данных:
tunnel2.login=lamda
tunnel2.password=ваш_новый_пароль
tunnel2.iface задаёт исходящий сетевой интерфейс: wlan означает выход через Wi-Fi, rmnet — через мобильные данные (4G/5G; даже если Wi-Fi подключён, приоритет будет у мобильного трафика). Если параметр не задан, используется системная сеть по умолчанию; если выбранный интерфейс в данный момент не имеет сети, прокси будет недоступен.
tunnel2.iface=rmnet