我正在寻找一个可以与 Linux 系统服务器监控工具配合使用的 HTTP 协议。我知道,但谁或免费软件中没有它?
例如,当我使用数据包监视器转储 80/tcp 时
# tethereal -i ppp0 port 80 -x
Capturing on ppp0
1244206390.030474 219.111.xx.xx -> 74.125.xx.xx HTTP GET /search?output=js&num=0&dt=1244206414703&client=pub-3031568651010206&q=Cagliari%20Flight&ad=n3&ie=utf8&oe=utf8&channel=0091594208&adtest=off HTTP/1.1
0000 00 04 02 00 00 00 00 00 00 00 00 00 00 00 08 00 ................
0010 45 00 01 e5 ee 82 40 00 40 06 d2 b5 db 6f 02 5b E.....@[email protected].[
0020 4a 7d 4f 93 d4 29 00 50 3e df 4c 63 4b 6b 42 e0 J}O..).P>.LcKkB
提供了这样的输出,但有太多不必要的信息,例如 SYN 数据包或标头。我想要的是
- 客户端的IP地址及发送字符串(Get;POST的内容)
- 服务器的输出字符串中只有HTML(Content-Type:text/html)的东西是凿子。
我可以设置一个过滤器,如果只有想要的信息可以积累在日志中那就最好了。
答案1
tcp流TCP 流记录器 - 确实是一个调试 http 的好工具,过滤器语法与 tcpdump 相同,无需学习其他语法:)
google.com 的 curl 示例:
$ tcpflow -c port 80 and host 74.125.43.103
010.190.001.182.55535-074.125.043.103.00080: GET / HTTP/1.1
User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.10
Host: 74.125.43.103
Accept: */*
074.125.043.103.00080-010.190.001.182.55535: HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Mon, 08 Jun 2009 06:28:04 GMT
Expires: -1
Content-Type: text/html; charset=ISO-8859-1
Server: gws
Transfer-Encoding: chunked
[....]
答案2
你可以用 tcpdump 进行记录,然后通过 wireshark 获取你需要的内容