Kubernetes

Netstat 和 ss 看不到連接

  • April 2, 2019

我試圖找出 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 號。

引用自:https://serverfault.com/questions/955259