我正在运行 Node.js。但由于某种原因,服务器无法捕获请求。(https://stackoverflow.com/questions/9247482/node-js-server-not-receiving-ajax-requests)
有什么方法可以检查是否有 HTTP 请求传入?理想情况下,我希望运行某个程序来“监听”HTTP 请求,然后在它们传入时打印它们,以及该 http 请求的 URl(如果可能)
答案1
标准工具只需安装并运行tcpdump。
像这样的捕获过滤器 tcpdump -qn -s 0 -A port 80
将捕获并打印出该系统上发往端口 80 的每个数据包。请参阅手册页,tcpdump 非常灵活。
答案2
我喜欢 Zoredache 对 tcpdump 的回答,因为它确实是一个标准工具,您也可以尝试一下ngrep
。
首先使用以下命令安装它:
apt-get install ngrep
然后,您可以使用它来过滤网络流,寻找特定的关键字,例如GET
。
ngrep -W byline 'GET' 'port 80'
-W byline
是为了让它看起来更漂亮GET
是我们正在寻找的关键字port 80
可以用 bpf 表达式替换(例如与 tcpdump 一起使用的表达式)