tcpdump -r file.trace - tcp dst port 80
как вы обнаружили, это не допустимая команда tcpdump. Если вы удалите лишнее -
, то вы получите
tcpdump -r file.trace tcp dst port 80
которая является действительной командой tcpdump, которая покажет вам только трафик на TCP-порт 80. Он не будет показывать вам трафик с TCP-порта 80, поэтому, например, если file.trace
имеет HTTP-трафик к порту 80 и от него, он покажет вам трафик HTTP-запроса, но НЕ трафик ответа HTTP.
Если вы хотите видеть трафик к порту 80 и от него, используйте
tcpdump -r file.trace tcp port 80
Однако, если есть трафик TCP, отличный от трафика HTTP к порту 80 или от него, это также будет показано.
Кроме того, трафик HTTP, не идущий к порту 80 или от него, такой как трафик HTTP-over-SSL/TLS ("https") или трафик к портам, таким как порт 8080, не будет показан. Например, чтобы посмотреть трафик к порту 80 (для HTTP) и порту 443 (для HTTPS), выполните
tcpdump -r file.trace tcp port 80 or 443
Так что же "не работает"?
Разве это не показывает, например, HTTPS трафик? Если это так, вам нужно добавить порт 443.
Разве это не показывает трафик на другие порты? Если это так, вам нужно добавить эти порты. Tcpdump не может распознать трафик HTTP (а Wireshark распознает его только по номеру порта).
Это показывает только запросы, а не ответы? Если вы хотите видеть ответы, используйте tcp port
а не tcp dst port
. Если вы хотите видеть только запросы, использовать tcp dst port