Я использую tcpdump уже около месяца, и недавно он прекратил захватывать любые пакеты, которые не были отправлены на или с компьютера, на котором запущен tcpdump. Я сократил свою команду до просто:

sudo tcpdump -i en2

Я проверил свои интерфейсы с помощью ifconfig, и en2 находится в режиме "PROMISC". При указании определенного хоста в качестве фильтра, я вижу только несколько сообщений "arp", но ничто по сравнению с тем, что на самом деле происходит в сети.

Есть идеи, почему это будет происходить? Очень признателен, если кто-нибудь может дать совет!

Ричард

2 ответа2

1

Возможно, ваша сеть была недавно переведена с концентратора на коммутатор. Коммутаторы узнают, к какому порту подключен данный MAC-адрес, и перенаправляют трафик только для этого MAC-адреса на этот один порт. Многоадресные и широковещательные рассылки (такие как ARP) по-прежнему отправляются на все порты.

Чтобы увидеть одноадресный трафик для других хостов при подключении к коммутатору, типичным решением является использование управляемого коммутатора, который поддерживает "зеркалирование портов", где вы можете настроить его для копирования всего трафика, который прошел бы через определенный порт, а также для копирования. ко второму порту, к которому подключен ваш сниффер.

Существуют также инструменты для хакерских атак, которые можно использовать для просмотра одноадресного трафика других устройств в коммутируемой сети, например, с помощью инструментов отравления ARP, чтобы другие машины отправляли вам свой трафик, как если бы вы были маршрутизатором сети по умолчанию.

0

Когда tcpdump запускается без опции -n , он выполнит поиск DNS для IP-адресов, которые видит, что может объяснить, почему вы не видите пакеты, как только они приходят. Из справочной страницы tcpdump:

-n     Don't convert addresses (i.e., host addresses,
       port numbers, etc.) to names.

Я всегда использую tcpdump с опцией -n чтобы избежать этой проблемы:

sudo tcpdump -n -i en2

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