2

Я НЕ ищу такой совет, как «попробуйте Wireshark». Я пытаюсь понять, что такое netcat, а что нет.

Когда я пытаюсь прослушать (-l) порт 80, он говорит «адрес уже используется». Может ли netcat не прослушивать используемые порты, как это делает браузер? Или это действительно неправильное понимание того, как работают браузеры? Возможно, netcat обходит какой-то механизм совместного использования в операционной системе?

Я думаю, что ответ на мой вопрос скрыт в этом объяснении с использованием прокси, но я не могу этого понять. http://pankaj-k.net/weblog/2010/05/using_netcat_to_view_tcpip_tra.html

2 ответа2

3

Я пытаюсь понять, что такое netcat, а что нет.

Во-первых, это не анализатор.

Если что-то на вашей машине уже прослушивает порт 80, например, веб-сервер, ничто другое не может прослушивать порт 80 (по крайней мере, с тем же локальным IP-адресом, что и у уже прослушивающей программы), поскольку пакеты на порт 80 принимаются Ваш компьютер может быть отправлен только в одну программу.

Анализаторы пакетов используют механизмы, отличные от используемых в "обычных" сетевых приложениях, таких как браузеры и netcat; механизм, который они используют, зависит от операционной системы, в которой вы работаете (libpcap/WinPcap существует, чтобы скрыть эту информацию от приложения), и эти механизмы позволяют анализатору получать копии всех пакетов, полученных в виде необработанных пакетов канального уровня или необработанных IP-пакетов.

Может ли netcat не прослушивать используемые порты, как это делает браузер? Или это действительно неправильное понимание того, как работают браузеры?

Да, это неправильное понимание того, как работают браузеры. Браузер, работающий на вашем компьютере, не прослушивает порт 80 на вашем компьютере, он отправляет трафик на порт 80 на компьютере веб-сервера.

0

исходя из того, что парень сказал

браузер не прослушивает используемые порты (я не думаю, что какой-либо клиент или сервер может, по определению, иначе ОС не будет знать, какой процесс, в частности, какое конкретное соединение - отправлять пакет). браузер находит порт, который не используется.

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

не под 1024 и фактически не под 49152! очень высокие пронумерованные порты. этот эфемерный диапазон портов 49152–65535

если бы вы знали, как использовать netstat, вы бы лучше познакомились с вещами.

Попробуйте из командной строки: netstat -aon или netstat -n и посмотрите результат.

вот пример из netstat -n

Вы видите два столбца IP-адресов, один локальный, другой удаленный (поэтому он не покажет вам, является ли соединение входящим или исходящим). ip, который относится к вашему компьютеру, показан слева. посмотрите на правую сторону, посмотрите линии, где правая сторона имеет:80 только одна строка в этом случае, но обычно много, теперь смотрите порт на левой стороне, выбранный браузером, например, 50714

если вы выполните netstat -on или -aon, то -o получит столбец для идентификатора процесса, и вы увидите в диспетчере задач, какой процесс какой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .