Захват трафика локального хоста Wireshark - программирование
Подтвердить что ты не робот

Захват трафика локального хоста Wireshark

Я написал простое серверное приложение в C, которое работает на localhost. Как захватить локальный трафик с помощью Wireshark?

4b9b3361

Ответ 1

Если вы используете Windows , это невозможно - читайте ниже. Вместо этого вы можете использовать локальный адрес своего компьютера, а затем сможете записывать данные. См. CaptureSetup/Loopback.

Сводка: вы можете loopback-интерфейс в Linux, on различные BSD, включая Mac OS X, и на Digital/Tru64 UNIX, и вы можете быть в состоянии сделать это на Irix и AIX, но вы определенно не можете это сделать Solaris, HP-UX или Windows.


EDIT: Спустя 3 года этот ответ больше не является полностью правильным. Связанная страница содержит инструкции для захвата в интерфейсе loopback.

Ответ 2

На платформе Windows также возможно захватывать трафик локального хоста с помощью Wireshark. Что вам нужно сделать, это установить петлевой адаптер Microsoft, а затем прослушать его.

Ответ 3

По какой-то причине ни один из предыдущих ответов не работал в моем случае, поэтому я опубликую кое-что, что сделало трюк. Есть небольшая жемчужина под названием RawCap, которая может захватить локальный трафик в Windows. Преимущества:

  • всего 17 кБ!
  • не нужны внешние библиотеки
  • чрезвычайно простой в использовании (просто запустите его, выберите loopback-интерфейс и файл назначения и все)

После того, как трафик был захвачен, вы можете открыть его и проверить в Wireshark в обычном режиме. Единственный недостаток, который я обнаружил, заключается в том, что вы не можете устанавливать фильтры, т.е. Вы должны захватить весь трафик localhost, который может быть тяжелым. Существует также одна ошибка в отношении Windows XP SP 3.

Еще несколько советов:

Ответ 4

Я на самом деле не пробовал это, но этот ответ из Интернета звучит многообещающе:

Wireshark фактически не может захватывать локальные пакеты в Windows XP из-за характер стека TCP стека. Когда пакеты отправляются и полученные на том же компьютере, они, похоже, не пересекают сеть границы, которые контролируют проводники.

Однако есть способ обойти это, вы можете маршрутизировать локальный трафик (маршрутизатор), установив (временно) статический маршрут на вашем компьютере Windows XP.

Скажите, что ваш IP-адрес XP - 192.168.0.2, а ваш шлюз (маршрутизатор) адрес 192.168.0.1, вы можете запустить следующую команду из Windows XP, чтобы принудительно отключить весь локальный трафик граница сети, поэтому wirehark может отслеживать данные (примечание что wirehark будет сообщать пакеты дважды в этом сценарии, один раз, когда они покидают ваш компьютер и один раз, когда они возвращаются).

route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1

http://forums.whirlpool.net.au/archive/1037087, доступ только сейчас.

Ответ 5

Попробуйте Npcap: https://github.com/nmap/npcap, он основан на WinPcap и поддерживает захват трафика в Windows. Npcap является подпроектом Nmap (http://nmap.org/), поэтому, пожалуйста, сообщите о любых проблемах в списке разработки Nmap (<а2 > ).

Ответ 6

Вы можете просматривать циклический трафик в прямом эфире в Wireshark, мгновенно считывая вывод RawCap. cmaynard описывает этот изобретательный подход на форумах Wireshark. Я приведу его здесь:

[...] Если вы хотите просмотреть прямой эфир в Wireshark, вы все равно можете сделать это, запустив RawCap из одной командной строки и запустив Wireshark из другого. Предполагая, что у вас есть хвост cygwin, это можно сделать, используя что-то вроде этого:

cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap

cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -

Для этого требуется хвост cygwin, и я не смог найти способ сделать это с помощью готовых Windows-инструментов. Его подход работает очень хорошо для меня и позволяет мне использовать все возможности фильтров Wiresharks на захваченном кольцевом трафике в реальном времени.

Ответ 7

Для Windows,

Вы не можете захватить пакеты для Локального Loopback в Wireshark, однако вы можете использовать очень маленькую, но полезную программу под названием RawCap;

RawCap

Запустите RawCap в командной строке и выберите Loopback Pseudo-Interface (127.0.0.1), а затем просто напишите имя захвата пакета файл (.pcap)

Простая демонстрация такова, как показано ниже:

C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
 0.     169.254.125.51  Local Area Connection* 12       Wireless80211
 1.     192.168.2.254   Wi-Fi   Wireless80211
 2.     169.254.214.165 Ethernet        Ethernet
 3.     192.168.56.1    VirtualBox Host-Only Network    Ethernet
 4.     127.0.0.1       Loopback Pseudo-Interface 1     Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File        : test.pcap
Packets     : 48^C

Ответ 8

Вы не можете захватить loopback в Solaris, HP-UX или Windows, однако вы можете очень легко обойти это ограничение с помощью инструмента, такого как RawCap.

RawCap может захватывать сырые пакеты на любом ip, включая 127.0.0.1 (localhost/loopback). Rawcap также может генерировать файл pcap. Вы можете открыть и проанализировать файл pcap с помощью Wireshark.

См. здесь для получения полной информации о том, как контролировать локальный хост с помощью RawCap и Wireshark.

Ответ 9

Да, вы можете контролировать трафик localhost с помощью Npcap Loopback Adapter