1

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

Моя проблема в том, что я не могу перехватить любой пакет, используя только tcpdump без каких-либо параметров.

когда я tcpdump , я получаю такой ответ:

tcpdump: печать пакетов не поддерживается для типа ссылки BLUETOOTH_HCI_H4_WITH_PHDR: используйте -w

Поэтому я попытался tcpdump: tcpdump -w archivito И у меня есть это:

прослушивание по каналу Bluetooth0, тип соединения BLUETOOTH_HCI_H4_WITH_PHDR (транспортный уровень Bluetooth HCI UART плюс псевдозаголовок),

размер захвата 65535 байт

0 перехваченных пакетов

62 пакетов, полученных фильтром

0 пакетов отброшено ядром

Итак, файл archivito был пуст, поэтому я попробовал: tcpdump port 80 И я получил такой ответ:

tcpdump: фильтрация по типу канала связи Bluetooth не реализована

Как я могу получить вывод из tcpdump? Я прочитал справочные страницы об этой команде, но не мог понять, почему она не работает для меня.

Итак, я попробовал sudo tcpdump -w archivito , и у меня получился следующий вывод:

tcpdump: ПРЕДУПРЕЖДЕНИЕ: eth0: IPv4-адрес не назначен. tcpdump: прослушивание eth0, тип канала EN10MB (Ethernet), размер захвата 65535 байт.

Это остается там некоторое время, но все, что я все еще получаю,

0 перехваченных пакетов

0 пакетов, полученных фильтром

0 пакетов отброшено ядром

Наконец я попытался sudo tcpdump -i any , и это сработало (он захватил несколько пакетов). Но почему он работал ТОЛЬКО при запросе его контролировать во всех интерфейсах?

2 ответа2

9

Согласно справочной странице tcpdump :

   -i     Listen  on  interface.   If  unspecified, tcpdump searches the system interface list for the lowest numbered, configured up interface (excluding loop‐
          back), which may turn out to be, for example, ``eth0''.

          On Linux systems with 2.2 or later kernels, an interface argument of ``any'' can be used to capture packets from all interfaces.  Note  that  captures
          on the ``any'' device will not be done in promiscuous mode.

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

Однако, если указать для -i флаг any , вы выбираете любой доступный интерфейс, который позволяет печатать пакеты, и именно поэтому он работает в этом случае.

4

Я не перед этим прямо сейчас, но

В tcpdump есть переключатель для отображения всех интерфейсов, после чего вы можете указать именно тот, который вам нужен. Попробуйте tcpdump --list-interfaces тогда вы можете сделать, например, tcpdump -i eth0 или любой другой интерфейс, который вы хотите прослушивать.

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