Могу ли я туннелировать другой протокол через HTTP-прокси?

3137
Yomanxup

Я хотел бы знать, как работают HTTP-туннели. Я попробовал Google, но не нашел то, что искал.

Насколько я знаю, HTTP-прокси похожи на обратные. Вы запрашиваете веб-сайт, HTTP-прокси получает и понимает этот запрос и отправляет его на исходный сервер. Ответ идет с исходного сервера на HTTP-прокси и обратно на ваш компьютер. Кроме прокси SOCKS, который просто туннелирует TCP / IP, прокси HTTP читает HTTP-запрос, верно?

Если это так, вот мой вопрос:
как вы можете туннелировать другие протоколы через HTTP прокси? Например, Мессенджеры предлагают такие настройки прокси и используют свой собственный протокол.

4

1 ответ на вопрос

5
grawity

Помимо обычного GET/ POST/ HEAD/ PUT, многие HTTP прокси - серверы понимают дополнительный CONNECTзапрос, который устанавливает соединение TCP сырец с удаленным хостом. Это требуется для правильной поддержки HTTPS, но часто может использоваться для других протоколов.

 $ nc proxy.example.com 8080 -> CONNECT mail.example.com:587 HTTP/1.0 -> <- HTTP/1.0 200 Connection Established <- Proxy-agent: Apache/2.2.19 (Debian) <- <- 220 mail.example.com ESMTP Badger badger badger badger badger postfix postfix! -> ehlo grawity-pc <- 250-mail.example.com <- 250-PIPELINING <- 250-SIZE 10240000 <- 250-STARTTLS <- 250-ENHANCEDSTATUSCODES <- 250-8BITMIME <- 250 DSN -> quit <- 221 2.0.0 Bye 

Похожие вопросы