Мне нужно запустить Wireshark всю ночь, чтобы захватывать пакеты с определенного IP-адреса. Я заметил, что чем дольше работает Wireshark, тем больше он занимает оперативной памяти, потому что в нем хранятся все пакеты, найденные во время выполнения. Для меня есть 3 возможных решения, но я не нашел ответов в Интернете:
Для сред Windows (например, моей, где очень сложно установить wirehark на сервер), начиная с Win7 / 2008R2, был доступен встроенный захват пакетов.
Это захватит все, пока вы не скажете, чтобы он остановился: netsh trace start capture=yes persistent=yes tracefile=c:\temp\results.etl
Наблюдайте за следом: netsh trace show status
Остановить след: netsh trace stop
Он поддерживает все обычные функции: фильтрацию, циклическое ведение журнала и даже может сохраняться при перезагрузке. Еще один плюс - команда help: попробуйте netsh trace ?
или netsh trace show ?
Вам необходимо установить Microsoft Message Analyzer для просмотра / экспорта результатов.
Похоже, что для вашей ситуации вы должны быть настроены с помощью следующей команды:
netsh trace start capture=yes persistent=yes tracefile=c:\temp\results.etl maxSize=500
Это даст вам циклическое ведение журнала с файлами размером 500 МБ и сохранится при перезагрузке.
Я всегда просто использую tcpdump
. Wireshark может открыть полученный файл захвата позже, хотя, если он огромен, вам все равно может потребоваться разделить его чем-то вроде editcap
. Вот некоторые примеры:
Захватить весь трафик:
tcpdump -s 0 -n -w <filename>
Захватить весь трафик, кроме трафика SSH (полезно при работе tcpdump
по SSH-соединению`):
tcpdump -s 0 'port not 22' -n -w <filename>
Вам нужен -s 0
параметр так, чтобы tcpdump
не накладывает ограничений на количество пакетов.
Вам может не понадобиться -n
; Я всегда использую его, чтобы Wireshark не тратил время на поиск имен. (Это может быть более полезно без -w
.)
Некроед, но ...
Wireshark поддерживает отдельные фильтры на уровне захвата (libpcap или winpcap) и фильтры отображения, по крайней мере, с 2008 года. Пакеты, исключенные фильтром захвата, вообще не сохраняются и не используют память. Синтаксис фильтра захвата проще и менее мощный, чем синтаксис фильтра отображения Wireshark, но от (и / или до) IP-адреса в пределах его возможностей.
В расположение где вы указываете, фильтр захвата менялся с течением времени. В старых версиях вам приходилось дважды щелкать интерфейс в окне параметров захвата; теперь (или, по крайней мере, недавно) он появляется в окне приветствия и в окне параметров захвата под списком интерфейсов. я считать это изменение произошло в версии 2.0, но я не клянусь.
Оказывается, в этом случае вам действительно нужно только захватить, а отобразить его можно будет позже. В этом случае у Wireshark уже давно есть возможность немедленно записать в файл или серию файлов (в зависимости от временного интервала или объема данных), а также если вы также отключите `` список обновлений в реальном времени '' (отдельный параметр) это не требует столько оперативной памяти. (Очевидно, вам нужно место на диске для файла (ов).)
Эти варианты тоже переехали. В старых версиях они всегда отображались в окне параметров захвата (фактически они использовали большую часть нижней половины окна, что затрудняло их просмотр); теперь вы должны перейти на вторую и третью вкладки окна параметров захвата.
Пакет Wireshark, включая установщик (ы) Windows, также включает версию для командной строки. tshark[.exe]
. С опцией -w
и связанные параметры, такие как -b
и -a
, tshark аналогичным образом имеет возможность захвата с дополнительной фильтрацией захвата и / или фильтрацией «отображение» (!) непосредственно в файл или серию файлов, не отображая вообще, следовательно, практически не требует ОЗУ. Позже вы можете прочитать этот файл (или каждый / любой из этих файлов) в полной версии Wireshark для отображения и анализа.
Эта опция похожа на tcpdump с -w
(но не идентичны). другие режимы tshark - для захвата, немедленного декодирования и отображения; или прочитать файл захвата с помощью -r
и декодирование и отображение - в основном похожи на tcpdump, но отображение немного отличается.
Поскольку это программа командной строки, вам необходимо прочитать ее справочную страницу для получения подробных инструкций. Поскольку в Windows (кроме 10 + WSL) нет справочных страниц, установщик Windows вместо этого предоставляет HTML-файл в папке installdir (\Program Files\Wireshark\tshark.html
), который также доступен из программы с графическим интерфейсом (Wireshark) в разделе Help / ManualPages (!).
По возможности избегайте захвата всех пакетов. При выборе интерфейса вставьте фильтр, чтобы охватить расширенный набор пакетов, которые вы ищете для отображения позже. Это значительно сократит использование памяти и диска Wireshark:
пример: чтобы отфильтровать http-пакеты, введите tcp port http
и начинаем захват.
ПРИМЕЧАНИЕ: ЭТО Capture Filter
ПРИМЕНЯЕТСЯ ПРИ ВЫБОРЕ ИНТЕРФЕЙСА (это не Display Filter
).