Консольная версия Wireshark. Идеальна для автоматизации и работы на серверах.
sudo apt install tshark
Wireshark — это анализатор сетевого трафика, или «сниффер», для Linux, macOS, *BSD и других Unix и Unix-подобных операционных систем, а также для Windows. Он использует Qt — библиотеку графического интерфейса, а также libpcap и npcap в качестве библиотек для перехвата и фильтрации пакетов.
В дистрибутив Wireshark также входит TShark, который является строчно-ориентированным сниффером (аналогичным snoop от Sun или tcpdump), использующим тот же код для разбора пакетов, чтения и записи файлов перехвата, а также фильтрации пакетов, что и Wireshark, а также editcap — программа для чтения файлов перехвата и записи пакетов из этого файла, возможно, в другом формате файла перехвата, при этом некоторые пакеты могут быть удалены из перехвата.
Официальный сайт Wireshark: https://www.wireshark.org.
Последнюю версию дистрибутива можно найти в подкаталоге https://www.wireshark.org/download
Проект Wireshark регулярно собирается и тестируется на следующих платформах:
Официальные установочные пакеты доступны для Microsoft Windows и macOS.
Он доступен в виде стандартного или дополнительного пакета для многих популярных операционных систем и дистрибутивов Linux, включая Debian, Ubuntu, Fedora, CentOS, RHEL, Arch, Gentoo, openSUSE, FreeBSD, DragonFly BSD, NetBSD и OpenBSD.
Кроме того, он доступен через многие сторонние системы управления пакетами, такие как pkgsrc, OpenCSW, Homebrew и MacPorts.
Он должен работать на других Unix-подобных системах без особых проблем.
В некоторых случаях текущая версия Wireshark может не поддерживать вашу операционную систему. Это касается Windows XP, которая поддерживается Wireshark версии 1.10 и ранее. В других случаях стандартный пакет для Wireshark может быть просто устаревшим. Это касается Solaris и HP-UX.
Для сборки Wireshark необходим Python 3. AsciiDoctor требуется для сборки документации, включая man-страницы. Perl и flex необходимы для генерации некоторой части исходного кода.
Поэтому на системах, где они отсутствуют, необходимо установить Python 3, AsciiDoctor и GNU "flex" (обычный "lex" не подойдёт). Возможно, потребуется установить и Perl.
Полные инструкции по установке можно найти в файле INSTALL и в Руководстве разработчика по адресу https://www.wireshark.org/docs/wsdg_html_chunked/
Смотрите также соответствующие файлы README.ОС для инструкций по установке для конкретных ОС. Использование
Для перехвата пакетов из сети необходимо назначить программе dumpcap
set-UID root или получить доступ к соответствующей записи в каталоге /dev, если ваша система
это поддерживает (системы, основанные на BSD, а также системы вроде Solaris и HP-UX, поддерживающие DLPI,
обычно относятся к этой категории). Хотя и может возникнуть соблазн сделать
исполняемые файлы Wireshark и TShark setuid root или запускать их от имени root, пожалуйста, не делайте этого.
Процесс перехвата вынесен в отдельную программу dumpcap; эта простая программа менее подвержена
утечкам безопасности, и поэтому ее запуск от имени root безопаснее.
Пожалуйста, обратитесь к man-странице для описания каждого параметра командной строки и особенности интерфейса.
Wireshark может читать пакеты из множества различных типов файлов. Список поддерживаемых форматов файлов можно найти в man-странице Wireshark или в Руководстве пользователя Wireshark.
Wireshark может прозрачно читать сжатые версии любых из этих файлов, если необходимая библиотека сжатия была доступна при компиляции Wireshark. В настоящее время поддерживаются следующие форматы сжатия:
GZIP и LZ4 (при использовании независимых блоков, что является настройкой по умолчанию) поддерживают
быстрый произвольный доступ, что обеспечивает значительно лучную производительность графического интерфейса при работе с большими файлами.
Любой из этих форматов сжатия можно отключить на этапе компиляции, передав
соответствующую опцию в cmake, например, cmake -DENABLE_ZLIB=OFF,
cmake -DENABLE_LZ4=OFF или cmake -DENABLE_ZSTD=OFF.
Хотя Wireshark может читать файлы AIX iptrace, документация по
команде отслеживания пакетов AIX iptrace скудна. Команда iptrace
запускает демон, который необходимо остановить для завершения трассировки. В ходе
экспериментов было выяснено, что отправка сигнала HUP этому демону iptrace
вызывает корректное завершение работы, и полный пакет записывается
в файл трассировки. Если в конце сохраняется неполный пакет, Wireshark
будет ругаться при чтении этого файла, но вы сможете прочитать все
остальные пакеты. Если это произойдет, сообщите разработчикам Wireshark
по адресу wireshark-dev@wireshark.org; обязательно пришлите нам копию этого файла трассировки,
если он небольшой и не содержит конфиденциальных данных.
Поддержка продуктов Lucent/Ascend ограничена отладочным выводом трассировки,
генерируемым продуктами серий MAX и Pipeline. Wireshark может читать
вывод команд wandsession, wandisplay, wannext и wdd.
Wireshark также может читать вывод дампа-трассировки от маршрутизаторов Toshiba "Compact Router"
серии ISDN (TR-600 и TR-650). Вы можете подключиться к маршрутизатору по telnet и начать сессию дампа
с помощью команды snoop dump.
Вывод отладки CoSine L2 также может быть прочитан Wireshark. Чтобы получить вывод отладки L2,
сначала введите режим diags, а затем используйте
команды create-pkt-log-profile и apply-pkt-lozg-profile в категории layer-2. Для получения более подробной информации об использовании этих команд
ознакомьтесь с справкой командой layer-2 create ? или layer-2 apply ?.
Чтобы использовать трассировки Lucent/Ascend, Toshiba и CoSine в Wireshark, вы должны
перехватывать вывод трассировки в файл на диске. Трассировка происходит внутри
маршрутизатора, и маршрутизатор не имеет возможности сохранить трассировку в файл за вас.
Простой способ сделать это в Unix — выполнить telnet <ascend> | tee <outfile>.
Или, если в вашей системе установлена команда "script", вы можете сохранить
сессию оболочки, включая telnet, в файл. Например, чтобы вести лог в файл
с именем tracefile.out:
$ script tracefile.out
Script started on <date/time>
$ telnet router
..... perform your trace, then exit from the router's telnet session.
$ exit
Script done on <date/time>
Wireshark будет пытаться использовать возможности обратного разрешения имён при декодировании пакетов IPv4 и IPv6.
Если вы хотите отключить разрешение имен при использовании Wireshark, запустите
Wireshark с опцией -n, чтобы отключить все разрешение имен (включая
разрешение адресов MAC и номеров портов TCP/UDP/SMTP в имена), или
с опцией -N mt, чтобы отключить разрешение имен для всех
сетевых адресов (IPv4, IPv6, IPX).
Вы можете сделать эти настройки стандартными, открыв диалог Preferences с помощью пункта Preferences в меню Edit, выбрав "Name resolution", отключив соответствующие опции разрешения имен и нажав "OK".
Wireshark может выполнять базовое декодирование пакетов SNMP; он также может использовать
библиотеку libsmi для более сложного декодирования путем чтения файлов MIB
и использования информации из этих файлов для отображения OID и
значений привязки переменных в более удобном виде. CMake автоматически
определит, есть ли у вас библиотека libsmi в системе. Если
у вас есть библиотека libsmi, но вы не хотите, чтобы Wireshark ее использовал, вы можете запустить
cmake с опцией -DENABLE_SMI=OFF.
Как сообщить об ошибке
Wireshark находится в постоянной разработке, поэтому возможно, что вы встретите ошибку при его использовании. Пожалуйста, сообщайте об ошибках по адресу https://gitlab.com/wireshark/wireshark/-/issues. Обязательно укажите в отчете об ошибке:
Полную информацию о сборке из пункта "About Wireshark"
в меню Help или вывод команды wireshark -v для
ошибок Wireshark и вывод команды tshark -v для ошибок TShark;
Если ошибка произошла в Linux, какой дистрибутив Linux вы использовали и версию этого дистрибутива;
Команду, которую вы использовали для запуска Wireshark, если вы запускали Wireshark из командной строки, или TShark, если вы запускали TShark, а также последовательность действий, которые привели к появлению ошибки.
Если ошибка вызвана конкретным файлом трассировки, пожалуйста, прикрепите к отчету файл трассировки вместе с описанием ошибки. Если файл трассировки содержит конфиденциальную информацию (например, пароли), то, пожалуйста, не отправляйте его.
Если Wireshark завершился с ошибкой 'segmentation violation', 'bus error', 'abort' или другой ошибкой, порождающей файл core dump в UNIX, вы можете очень помочь разработчикам, если у вас установлен отладчик. Трассировку стека можно получить, используя ваш отладчик ('gdb' в этом примере), бинарный файл wireshark и полученный файл core. Вот пример того, как использовать команду gdb 'backtrace' для этого.
$ gdb wireshark core
(gdb) backtrace
..... prints the stack trace
(gdb) quit
$
Файл дампа core может называться "wireshark.core", а не "core" на некоторых платформах (например, системах BSD). Если вы получили дамп core от TShark, а не от Wireshark, используйте "tshark" в качестве первого аргумента для отладчика; дамп core может называться "tshark.core".
Wireshark распространяется под лицензией GNU GPLv2. Полный текст лицензии смотрите в файле COPYING. В случае сомнений юридически обязывающей является полная версия текста. Эти примечания предназначены только для того, чтобы сделать понятнее информацию для людей, не знакомых с GPLv2.
Нет никаких ограничений на его использование. Ограничения распространяются на его распространение в исходном или бинарном виде.
Большинство частей Wireshark покрыты лицензией "GPL версии 2 или более поздней". Некоторые файлы покрыты другими лицензиями, совместимыми с GPLv2.
В качестве заметного исключения, некоторые утилиты, распространяемые с исходным кодом Wireshark, покрыты другими лицензиями, которые не являются напрямую совместимыми с GPLv2. Это допустимо, поскольку только сами инструменты лицензированы таким образом, выходные данные инструментов не считаются производной работой и, следовательно, могут быть безопасно лицензированы для использования в Wireshark. Неполный список этих инструментов включает: - утилита pidl (tools/pidl) лицензирована под GPLv3+.
Некоторые части Wireshark могут быть собраны и распространены как библиотеки. Эти части по-прежнему покрыты лицензией GPL, а НЕ лицензией Lesser General Public License или какой-либо другой лицензией.
Если вы интегрируете всю или часть Wireshark в собственное приложение и вы решите опубликовать или выпустить его, то объединенная работа должна быть выпущена в соответствии с условиями GPLv2. Отказ от ответственности
Нет никаких гарантий, явных или подразумеваемых, связанных с этим продуктом. Используйте на свой страх и риск.
Gerald Combs gerald@wireshark.org
Gilbert Ramirez gram@alumni.rice.edu
Guy Harris gharris@sonic.net