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
.