Создать HTTP прокси с помощью netcat?

657
user908559

Можно ли использовать ncв качестве HTTP-прокси? Я надеюсь использовать nc на VPS в качестве HTTP-прокси и настроить свой браузер на использование сервера netcat. Это возможно?

Несколько результатов по поиску "netcat http proxy", но не совсем то, что я пытаюсь сделать. Кажется, что эти конфигурации сначала принимают соединения netcat, а затем передают их другому слушателю netcat. Мне нужен netcat для прокси, похожий на прокси SOCKS5.

https://stackoverflow.com/questions/4053876/using-netcat-nc-as-an-http-proxy-server-and-monitor

https://notes.tweakblogs.net/blog/7955/using-netcat-to-build-a-simple-tcp-proxy-in-linux.html

1
По какой причине вы хотите использовать netcat, а не, скажем, HTTP-прокси с открытым исходным кодом? Spiff 5 лет назад 1
@Spiff просто развлекается с netcat. также думал, что это может быть проще, чем использовать что-то полнофункциональное, как Squid? Вы знаете, возможно ли то, что я пытаюсь сделать? user908559 5 лет назад 0
Почему это было бы проще? Выделенное прокси-программное обеспечение существует по причине - есть больше вещей, чем просто пересылка байтов через интерфейс. slhck 5 лет назад 0
Это может быть полезно для вас. https://unix.stackexchange.com/questions/38783/how-to-make-netcat-use-an-existing-http-proxy Tim_Stewart 5 лет назад 0
И это: https://serverfault.com/questions/405822/how-do-i-use-socat-as-a-proxy-server Tim_Stewart 5 лет назад 0

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

2
davidgo

Я почти уверен, что вы не можете использовать netcat в качестве (общего назначения) http-прокси. Вот почему:

Netcat похож на telnet тем, что создает TCP-соединение с известной конечной точкой. К сожалению, это создает 2 препятствия для использования его в качестве HTTP-прокси.

  1. Он имеет статическое конечное соединение, поэтому он не знает, к какому IP-адресу подключаться.
  2. Протокол HTTP 1.1, который обычно используется, добавляет в запрос строку заголовка, чтобы указать, какой веб-сайт получить. Netcat не предназначен для извлечения этого заголовка и установления соединения с его использованием.