Использование wireshark/tshark в командной строке для игнорирования соединений ssh

Я пытаюсь отладить некоторые, просматривая пакеты, и я хотел бы избежать передачи всего трафика SSH на сервер. Есть ли способ игнорировать?

Я пытался сделать что-то вроде tshark -f "port !22" но он перестал слушать после команды.

[root@vpn ~]# tshark -f "port !22"
tshark -f "port ls"
Running as user "root" and group "root". This could be dangerous.
Capturing on venet0
tshark: arptype 65535 not supported by libpcap - falling back to cooked socket.

tshark: Invalid capture filter: "port ls"!

That string isn't a valid capture filter (unknown port 'ls').
See the User's Guide for a description of the capture filter syntax.
0 packets captured
[root@vpn ~]#

2 ответа

Решение

И tshark, и tcpdump используют pcap библиотека, поэтому фильтры захвата используют синтаксис pcap-фильтра. Фильтр, который вы хотите, как говорит @tristan, "not port 22", Вы можете ввести это как строковый аргумент в кавычках -f вариант или в качестве аргумента без кавычек для команды. Следующие команды эквивалентны:

# tshark -f "not port 22"
# tshark -- not port 22

Причина, по которой tshark пожаловался на вашу команду выше, состоит в том, что ваша оболочка (вероятно, Bash) расширила "!22" до команды номер 22 в истории команд, которая в данном случае была "ls". Документация Bash содержит больше информации о расширении истории.

У меня нет доступа к установке tshark, но предполагается, что она такая же, как и у tcpdump:

sudo tcpdump not port 22

Итак, потенциально:

tshark not port 22 
Другие вопросы по тегам