![监控出站服务器http头信息?](https://linux22.com/image/3734/%E7%9B%91%E6%8E%A7%E5%87%BA%E7%AB%99%E6%9C%8D%E5%8A%A1%E5%99%A8http%E5%A4%B4%E4%BF%A1%E6%81%AF%EF%BC%9F.png)
我们可以在运行 CentOS 的 Linux 服务器上使用什么工具/功能来监视从我们的应用程序发送到不同服务器上的另一个应用程序的 http 标头?寻找从服务器到服务器的http标头监控。我的问题是我不知道如何捕获从服务器发送的数据,这意味着通过帖子发送的 http 标头。
我尝试过很多方法和第三方软件提琴手2和 ieinspector 等等,但它们似乎只捕获客户端标头,而不捕获从服务器发送的内容。我只需要捕获通过 post 函数发送的字符串以及返回的内容。看起来很简单,但在这种情况下,我已经迷失了方向,没有时间来解决应该是简单的解决方案。
我们可以使用 fiddler2 查看从服务器到客户端的标头,但是,我们的应用程序正在不同的服务器上调用 api。所以顺序是:客户端到服务器-服务器到服务器-服务器返回服务器-服务器返回客户端。我们无法判断从我们的服务器发送到其他服务器的 http 标头是否正确。
另一台服务器的支持人员无法捕获该信息并迫使我们揭露数据。我们知道我们认为自己正在发送什么,但无法验证它。我们想要的是一个类似 fiddler2 的工具,驻留在我们的服务器上来跟踪这一点,它可以监控服务器到服务器的流量。如果 fiddler2 可以做到这一点,请告诉我们如何做到这一点。
答案1
最简单的事情就是向应用程序添加日志记录。在发送之前和接收之后记录标头,然后读取日志。这是唯一“简单”的事情。我假设你不能这样做。显然,浏览器上的软件无法捕获互联网上两个远程系统之间的通信。其他一切都更加复杂。
假设您不想离线重新组装捕获的数据包(如wireshark),实现此目的的最正确方法是在两个应用程序之间设置代理。因此,您的系统不再直接连接到远程系统,而是连接到本地代理。如果它不想接受重新配置,你就愚弄它(将它们的 DNS 在本地路由回代理,然后代理连接到它们的真实 IP)。
代理在两者之间传递的所有内容基本上没有改变,但它使您有机会记录您想要的有关请求和响应的任何内容。这实际上与您能够检查你们之间交换机上的请求/响应相同。
请注意,这是一个侵入性更改,并且可能会破坏应用程序,直到您正确解决为止。因此,您应该使用测试服务器进行尝试,这可能足以建立有问题的内容。如果你想追求的话我推荐nginx作为您的代理守护进程。
答案2
只要您拥有服务器的 root 访问权限,就可以使用wireshark 或tcpdump。