Как захватывать пакеты через 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