Как захватывать пакеты через eth0 и lo одновременно?

На моем компьютере два сетевых интерфейса.

netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0     27186      0      0 0         20784      0      0      0 BMRU
lo        65536 0     42025      0      0 0         42025      0      0      0 LRU

Пакеты через Ло могут быть захвачены.

sudo tcpdump  -i lo 

Пакеты через eth0 могут быть захвачены.

sudo tcpdump  -i eth0 

Как захватывать пакеты через eth0 и lo одновременно?
sudo tcpdump -i eth0 -i вот не может работать.
sudo tcpdump -i eth0 -i lo = sudo tcpdump -i eth0=sudo tcpdump

3 ответа

Решение

Предполагая, что ваше ядро ​​поддерживает это, вы можете запустить tcpdump -i any, но это будет захватывать на всех интерфейсах, а не только на lo а также eth0 интерфейсы. Также, согласно tcpdump Страница man, "... захват на любом устройстве не будет выполняться в случайном режиме"., поэтому, если вам нужно перевести сетевой адаптер в беспорядочный режим, чтобы захватить интересующий вас трафик, это решение может не сработать для вас. В этом случае вы могли бы:

  • Начните 2 отдельных экземпляра tcpdump один захват на lo а другой захват на eth0, Если вы пишете пакеты в отдельные файлы, вы можете использовать такой инструмент, как mergecap объединить их вместе потом.
  • использование dumpcap или же tshark вместо этого любой из которых может захватывать на нескольких интерфейсах.

Другой вариант, который вы можете попробовать, - запустить процесс tcpdump на двух интерфейсах параллельно, например

sudo tcpdump -i lo &sudo tcpdump -i eth0 &

& заставит его работать в фоновом режиме

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

с https://serverfault.com/questions/805006/tcpdump-on-multiple-interfaces

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

Это также позволяет анализировать потоки пакетов для каждого интерфейса без сложной фильтрации.

Я бы записал в 3 терминала или выделил команду с помощью &

Флаги -nn отключают разрешение DNS для скорости, -s 0 сохраняет полный пакет, а -w записывает в файл.

tcpdump -i wan0 -nn -s 0 -w wan0.dump tcpdump -i wan1 -nn -s 0 -w wan1.dump tcpdump -i lan0 -nn -s 0 -w lan0.dump Затем я объединю файлы с Команда mergecap из wirehark:

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump

Другие вопросы по тегам