Kubernetes
Netstat 和 ss 看不到連接
我試圖找出 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
我發現這與網路名稱空間有關。我的問題與此問題類似,但我需要找到從 34226 埠建立連接的程序的 PID。
幾週後,我找到了答案。我需要
netstat -tapn
使用以下命令在所有命名空間中執行:sudo ip -all netns exec netstat -tapn | grep 34226
現在我有了從 34226 埠開始 tcp 連接的程序的 PID 號。