我们如何跟踪服务器中的 TCP/IP 数据包

我们如何跟踪服务器中的 TCP/IP 数据包

我正在开发后端服务。后端包含一些进程,意味着当客户端向我的服务器发送请求时,该请求将经过这些进程。

例如,请求将首先发送到进程nginx,然后发送到进程http_proxy,然后发送到进程request_handler

我需要做的是跟踪请求的路径,如下所示:

req             ---> nginx:8888
nginx:4444      ---> http_proxy:7777
http_proxy:2222 ---> request_handler:6666

意思是通过该端口req向该进程发送另一个数据包,并从该端口向该端口发送另一个数据包,以便该进程接收到该数据包,然后,从该端口向该端口发送另一个数据包,以便该进程接收到该数据包通过过程。nginx8888nginx44447777http_proxyhttp_proxy22226666request_handler

看来不是这样,netstat并且lsof可以做我需要的事情。有什么方法或工具可以做到这一点吗?

答案1

很遗憾地说,您要么需要更好地理解 TCP/IP,要么根本不需要 TCP/IP。

应用程序日志记录可能是您问题的答案,但这取决于您的应用程序。

你写“nginx从端口发送另一个数据包4444到端口7777”。我很确定它不是从固定端口发送的。这样做会将“并发”请求限制为一个。此外,一个请求不是一个数据包,而是多个数据包,查看网络详细信息通常对于处理应用程序级别的问题没有用处。

如果您想查看 TCP/IP 数据包,该工具是tcpdump, 而不是netstatlsof

相关内容