Прокси-сервер: разбираем, что происходит с пакетом — 15 июля 2026 г. в 10:48:05.194
Прокси-сервер: разбираем, что происходит с пакетом 👋 Приветствую в мире цифровой безопасности! В прошлый раз разобрали, что такое прокси. Теперь посмотрим, что реально происходит с запросом и почему один и тот же сайт может видеть вообще разные данные. ⏺ Представим обычный HTTP-запрос: curl http://example.com Клиент сам открывает TCP-соединение с сервером, отправляет HTTP-запрос и получает ответ. Сервер видит твой IP, User-Agent, заголовки и всё содержимое запроса. ⏺ Теперь добавим HTTP-прокси: curl -x http://proxy:8080 http://example.com Соединение устанавливается уже с прокси. Именно ему клиент отправляет команду: GET http://example.com/ HTTP/1.1 Host: example.com После этого прокси самостоятельно создаёт новое соединение с example.com и отправляет запрос уже от своего имени. Для сайта твоего IP больше не существует. ⏺ С HTTPS всё работает иначе: curl -x http://proxy:8080 https://example.com Сначала клиент говорит прокси: CONNECT example.com:443 HTTP/1.1 Если прокси разрешает соединение, отвечает: HTTP/1.1 200 Connection established После этого внутри созданного TCP-туннеля начинается обычный TLS-обмен. Без MITM-прокси содержимое HTTPS уже никто по пути не увидит. ⏺ Проверить, какой IP видит внешний сервис, можно буквально одной командой: curl https://ifconfig.me А затем повторить через прокси: curl -x socks5://127.0.0.1:9050 https://ifconfig.me Если всё настроено правильно, адрес изменится. ⏺ Увидеть сам HTTP-запрос помогает tcpdump: sudo tcpdump -A -i any port 8080 Для HTTP будут видны заголовки и содержимое запроса. Для HTTPS после CONNECT - только зашифрованный TLS-трафик. ⏺ Чтобы понять, используется ли прокси в системе, достаточно посмотреть переменные окружения: env | grep -i proxy Во многих корпоративных сетях именно так приложения автоматически начинают работать через прокси без дополнительных настроек. ⏺ А если хочется быстро поднять собственный HTTP-прокси для тестов, достаточно Squid: sudo apt install squid sudo systemctl start squid После этого браузер или curl можно направить на порт 3128 и посмотреть, как меняется весь маршрут запросов. 🤖Бесплатный ChatGPT

