Я пытаюсь отладить некоторые, просматривая пакеты, и я хотел бы избежать передачи всего трафика 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 ~]#
И tshark, и tcpdump используют pcap
библиотека, поэтому фильтры захвата используют синтаксис pcap-filter. Фильтр, который вам нужен, как говорит @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