Флаги командной строки: форматирование вывода и переключение опций
Теперь давайте перейдем к рассмотрению более важных флагов и опций, описанных в таблице 14.2.
-a | Разрешает IP-адреса к именам хостов. |
-c <num> | Прослушивает до тех пор, пока мы не получили <num> пакетов, а затем выходит. |
-d, -dd, -ddd | Берет фильтр, который вы указали в командной строке и, вместо прослушивания, выводит пакеты, код которых соответствует этому фильтру, в скомпилированном ассемблерном коде, фрагментах программы на языке C, или в десятичном представлении. Используется главным образом для отладки и редко полезен для новичков и пользователей среднего уровня. |
-e | Отображает заголовок канального (link-level) уровня. Например, если вы находитесь в сети Ethernet, вы можете отображать Ethernet-заголовки своих пакетов. Опция полезна, если вы интересуетесь низкоуровневыми деталями определенной части сетевого трафика (например, определением MAC-адреса другой машины). |
-F <file> | Определяет выражение для фильтра из файла вместо командной строки. |
-i | Прослушивает определенный интерфейс. В системе Unix вы можете использовать ifconfig, чтобы увидеть доступные сетевые интерфейсы. В Windows вы можете использовать windump-D, чтобы найти номер интерфейса, который соответствует интересующему вас сетевому интерфейсу. |
-l | Осуществляет буферизацию строк, использующуюся в стандартном выводе tcpdump, так что вы можете просматривать файл постранично. Без этой опции, перенаправление вывода будет препятствовать печати любого вывода до выхода из утилиты tcpdump. |
-n | Не разрешает IP-адреса к именам хостов. |
-N | Подавляет печать FQDN хоста (полностью квалифицированное имя домена), используя только имя хоста. |
-O | Подавляет оптимизатор кода фильтрации пакетов. Используйте эту опцию, если вам кажется, что пакетный фильтр, которым вы снабдили tcpdump, теряет нужные пакеты или наоборот включает пакеты, которые должны быть отфильтрованы. |
-p | Вынуждает tcpdump не помещать сетевой интерфейс в смешанный режим. Опция полезна, если вы заинтересованы только в прослушивании локального трафика (то есть трафика, идущего к машине, на которой вы работаете, и от нее). |
-q | Вынуждает tcpdump не печатать слишком много информации о заголовке пакета. Вы потеряете много практически важных деталей, но все еще будете видеть время передачи и вовлеченные хосты. |
-r <file> | tcpdump может записать свой вывод в двоичный файл (см. -w). Эта опция вынуждает tcpdump читать этот файл и отображать его. Так как tcpdump перехватывает необработанные данные, основываясь на пакетном фильтре, который вы определяете в командной строке, то можно использовать -r, чтобы заново считать данные перехваченного пакета и использовать флаги командной строки, предназначенные для форматирования вывода (-n, -s, -e и -X) для отображения его в разных видах. |
-s <bytes> | Определяет, сколько байтов на пакет должна попытаться "схватить" утилита tcpdump. Значение по умолчанию - 68. Если сделать это значение слишком большим, tcpdump может начать пропускать пакеты. |
-S | Вынуждает tcpdump печатать абсолютные порядковые номера TCP-пакетов. По умолчанию используются относительные порядковые номера так, чтобы вы могли видеть, на сколько байтов изменяется порядковый номер между пакетами за время TCP-подключения. Использование абсолютных номеров означает, что вам понадобится делать некоторые вычисления самостоятельно. |
-t, -tt | Вынуждает tcpdump не печатать метку времени вообще, или печатать не отформатированную метку (число секунд, начиная с 1 января 1970). |
-T <type> | tcpdump может естественно интерпретировать некоторые другие IP-протоколы, и отображать соответствующим образом отформатированный вывод для них, например DHCP, NBT и ARP. Эта опция вынуждает tcpdump особым образом интерпретировать выбранные пакеты, как определенный тип протокола, типа RPC или SNMP. |
-v, -vv, -vvv | Управляет уровнем многословия утилиты tcpdump. Чем большее количество символов -v вы установили, тем больше получите информации. |
-w <file> | Означает, что не надо переводить данные перехваченного пакета в удобочитаемый формат, а писать их в двоичный файл, с именем <file>. Опция полезна, если вы перехватили данные и хотите использовать tcpdump или другой инструмент типа Ethereal, чтобы рассмотреть их позже различными способами (см. -r). Так как в этом случае данные не переводятся в удобочитаемый формат, это делает утилиту tcpdump более эффективной, и снижает вероятность пропуска пакетов. Полезно использовать в системе с чрезвычайно большим объемом трафика. |
-x | Отображает пакет в шестнадцатеричном формате. Посидите с выводом этой команды и с книгой по TCP/IP, если вы хотите больше узнать о TCP-заголовках и такого рода вещах. Эта продвинутая функция может помочь в прослушивании пакетов, которые могут скрывать данные в опциях IP или другим способом искореженные пакеты. |
-X | Подобна шестнадцатеричной опции, но это как раз та опция, которую мы искали! В дополнение к шестнадцатеричному дампу, она отображает содержание пакета в ASCII-коде, позволяя нам видеть любые ясные текстовые символьные данные, содержащиеся в пакете. Это та опция, с которой мы могли бы прослушивать имена пользователей, пароли и другую интересную информацию, плавающую в сети. |