У меня установлено веб-приложение на сервере apache (порт 80, без SSL). Задача этого приложения - собирать некоторую информацию из файлов клиентов. Моя цель - проверить, отправляют ли мои клиенты правильные файлы. Итак, я хочу захватить файлы, переданные в мой Apache, а затем проверить правильность формата данных.
Я запускаю tcpdump так: tcpdump -s0 -i eth0 'port 80' -vv
но результат не то, что я хочу.
Возможно ли это, если tcpdump работает на том же сервере?
Я думаю ты хочешь netcat (NC), tcpdump предназначен для отладки на уровне пакетов, NC предназначен для перенаправления сетевого трафика.
Это нетривиально (из-за проблем с безопасностью), но шаги
На этой странице есть более подробная запись как это сделать.
Наконец, есть 2 версии netcat. Убедитесь, что у вас есть тот, который позволяет вам нарушать практически все известные правила безопасности, и имейте в виду, что только root может прослушивать порты ниже 1024.
Изменить: tcpdump жестяная банка делайте то, что вы ищете, но это не будет так прямолинейно - это дает вам фактические пакеты, вы звучите так, как будто вам просто нужен текст HTTP. Чтобы сделать это с помощью tcpdump, вам нужно сбросить его, а затем открыть файл дампа в чем-то вроде wirehark.
Wireshark удобнее для такой задачи. Вы можете запустить cli версию, tshark
для захвата сетевого трафика в файл, затем скопируйте его на свой компьютер, откройте с помощью GUI wirehark, найдите нужный запрос и экспортируйте с помощью export objects
.
Wireshark также поддерживает tcpdump
файлы, сделанные с -w
флаг