Как отслеживать входящие http запросы


31

Как я могу отслеживать входящие HTTPзапросы на порт 80? Я настроил веб-хостинг на локальном компьютере, используя DynDNSи Nginx. Я хотел знать, сколько запросов делается на моем сервере каждый день.

В настоящее время я использую эту команду:

netstat -an | grep 80

Ответы:


42

Вы можете использовать tcpdump.

# tcpdump filter for HTTP GET 
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

Для решения с помощью tsharkсм .:

https://serverfault.com/questions/84750/monitoring-http-traffic-using-tcpdump


Это так полезно. Есть ли что-то подобное для благотворительных сообщений?
Дарт Эгредиус

2
Как насчет https?
FooBar

7

Я использую tcpflowдля проверки входящих запросов в экземплярах aws, может быть, есть способ агрегировать запросы по дням.

ШАГ 1 - установка

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

ШАГ 2 - отслеживать запросы GET / POST на порту 80

# tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'

Ссылка

https://github.com/simsong/tcpflow


Для Ubuntu это: sudo apt install tcpflow Также в Ubuntu «eth0» называется как «ens33». Вы можете использовать команду ifconfig, чтобы увидеть имя вашего сетевого адаптера.
nivs1978

5

У вас включены файлы журнала для вашего сервера? Если вы это сделаете, я бы порекомендовал установить AwStats и запустить ваши файлы журналов вместе с ним, чтобы получить точные отчеты.

Если вы хотите просто отслеживать весь входящий / исходящий трафик, вы можете использовать WireShark.


4

Вы также можете добавить файл журнала:

tail -f /path/to/access_log

Параметр -f заставит tail постоянно обновлять экран при записи новых записей в журнал.


0

Запустить это

while true
do
echo -----`date '+%r'` -----:
netstat -ant | grep :8080 | awk '{print $6}' | sort | uniq -c | sort -n
echo httpd processes: [`ps aux | grep httpd | wc -l`]
echo .
sleep 2
done

Он будет контролировать трафик на порту 8080 каждые 2 секунды

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.