42.2. 显示添加到内核的接受队列中的 TCP 连接
内核在 TCP 3 向握手中接收 ACK
数据包后,内核会将来自 SYN
队列的连接移到 accept
队列,直到连接的状态变为 ESTABLISHED
。因此,只有成功的 TCP 连接才能在此队列中看到。
tcpaccept
工具使用 eBPF 特性显示内核添加到 accept
队列的所有连接。该工具是轻量级的,因为它跟踪内核的 accept()
函数,而不是捕获和过滤数据包。例如,使用 tcpaccept
进行常规故障排除,来显示服务器已接受的新连接。
步骤
输入以下命令来启动对内核
accept
队列的追踪:# /usr/share/bcc/tools/tcpaccept PID COMM IP RADDR RPORT LADDR LPORT 843 sshd 4 192.0.2.17 50598 192.0.2.1 22 1107 ns-slapd 4 198.51.100.6 38772 192.0.2.1 389 1107 ns-slapd 4 203.0.113.85 38774 192.0.2.1 389 ...
每次内核接受一个连接时,
tcpaccept
都会显示连接的详情。- 按 Ctrl+C 停止追踪过程。
其他资源
-
tcpaccept(8)
手册页 -
/usr/share/bcc/tools/doc/tcpaccept_example.txt
file