在 Ubuntu 中,我可以运行某些程序来检查传入的 HTTP 请求吗?

在 Ubuntu 中,我可以运行某些程序来检查传入的 HTTP 请求吗?

我正在运行 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 一起使用的表达式)

相关内容