Мне нужно поддерживать некоторый устаревший клиентский код, который устанавливает сетевое соединение с сервером с использованием проприетарного протокола через порт 1234. Прямое интернет-соединение на клиентском компьютере работает нормально, но некоторые люди используют его внутри корпоративной сети с прокси. По большей части это работает, но мне нужно внести некоторые изменения в клиентский код, и я хочу протестировать его с помощью прокси.
Я установил mitmproxy на вторую рабочую станцию, и если я настрою свою основную рабочую станцию на использование этого прокси-сервера, все в порядке - я могу делать безопасные веб-запросы, используя браузер по умолчанию, поэтому я почти уверен, что у меня установлен прокси вверх ОК. Он не требует прокси-аутентификации и, кажется, работает.
Но когда я запускаю это конкретное приложение и настраиваю его для использования прокси, я вижу в его отладочных выводах, что оно пытается это сделать, но в окне отладки mitmproxy я просто вижу:
192.168.0.28:59278: clientconnect
192.168.0.28:59278: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)
192.168.0.28:59278: ProtocolException("ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)",)
192.168.0.28:59278: clientdisconnect
Я предполагаю, что это связано с тем, что приложение не выполняет «правильно сформированные» веб-запросы, а использует свой собственный протокол через TCP. Прав ли я, думая, что в таком случае mitmproxy не сможет действовать как прокси? Если да, то есть ли другое простое, в идеале бесплатное прокси-приложение, которое я могу использовать для тестирования? Я посмотрел на pfSense, но для этого мне нужно настроить виртуальную машину, а работа в сети через виртуальную машину приносит совершенно новый мир боли из предыдущего опыта: |.
Читая дальше документацию mitmproxy, я обнаружил «Прозрачный» режим, который больше похож на то, что я хочу. Но (а) он по-прежнему очень ориентирован на HTTP и HTTPS, а во-вторых, этот указывает, что требуется другое программное обеспечение для маршрутизации TCP. я думаю что я только ищу это, так что не буду больше пытаться сгибать его.