2

Я пробовал 3 разных способа захвата потока пакетов, поступающих на мой сервер. Два из них работают, а третий нет. Я пытаюсь определить, почему это упущено третьим подходом:

tcpdump -i eth1 udp port 5052
tcpdump -i eth1 -p udp port 5052
tcpdump -i any udp port 5052
tcpdump udp port 5052 #Does not work

Моя теория заключалась в том, что любой подход не удался, потому что захват был беспорядочным, и его где-то отбрасывали iptables. Однако, даже когда я делаю первый захват беспорядочным (путем явной установки -p), он захватывает пакеты. Что еще может отличаться между ними?

ОБНОВЛЕНИЕ: я понял, что я не делал точно, что я думал. На самом деле есть 4 варианта, и тот, который терпит неудачу, только тогда, когда я не определяю интерфейс. Что будет отличаться между no -i flag и -i any?

1 ответ1

1

Когда вы запускаете tcpdump , он сообщает вам, на каком интерфейсе он слушает:

# tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

Страница справочника очень ясна по этому вопросу:

-i Слушай по интерфейсу. Если не указано, tcpdump ищет в системном списке интерфейсов настроенный интерфейс с наименьшим номером (исключая обратную связь). Связи разрываются, выбрав самый ранний матч.

Это означает, что до тех пор, пока у вас настроен интерфейс eth0 , eth1 никогда не будет выбран в качестве интерфейса захвата по умолчанию.

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