如何监视传入的HTTP请求


31

如何监视HTTP到端口的传入请求80?我已经使用DynDNS和在本地计算机上设置了网络托管Nginx我想知道每天服务器上有多少个请求。

目前,我正在使用以下命令:

netstat -an | grep 80

Answers:


41

您可以使用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


太有帮助了。节俭消息是否有类似内容?
Darth Egregious 2015年

2
那https呢?
FooBar'3

7

我一直在tcpflow检查aws实例的传入请求,也许有一种每天汇总请求的方法。

步骤1-安装

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

步骤2-在端口80跟踪GET / POST请求

# 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

它将每2秒监视8080端口上的流量

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.