Netstat 和 ss 没有看到连接

Qki*_*kiZ 3 netstat tcpdump network-namespace kubernetes

我正在尝试查找 Kubernetes 集群上运行的哪个应用程序正在使用特定端口与 RabbitMQ 集群进行通信。在 RabbitMQ 上,我看到连接来自 192.168.1.10:34226。192.168.1.10是Kubernetes节点之一。登录到 192.168.1.10 后,我检查是否通过 tcpdump 命令从该节点建立了连接tcpdump -i eth0 port 34226。我看到两个方向的交通。现在我正在尝试查找哪个进程正在建立此连接。首先我尝试了 netstat:

netstat -tapn | grep 34226

结果什么也没发现。然后我尝试了 ss 但仍然一无所获。连接已建立,通过 tcpdump 我可以看到发送到 RabbitMQ 的心跳数据包以及来自 RabbitMQ 的响应。但 netstat 和 ss 不报告已建立的连接。

更新1

我发现这与网络命名空间有关。我的问题与this问题类似,但我需要找到从34226端口建立连接的进程的PID。

Qki*_*kiZ 5

几周后我找到了答案。我需要使用以下命令在所有命名空间中运行netstat -tapn

sudo ip -all netns exec netstat -tapn | grep 34226
Run Code Online (Sandbox Code Playgroud)

现在我有从 34226 端口启动 tcp 连接的进程的 PID 号。