Ubuntu/Debian の lsof コマンドでは、以下のような行が多数表示されます。
PROGRAM 829 root 140u sock 0,8 0t0 244182 protocol: TCP
これらの線は何ですか?
これらは TCP 接続試行の失敗の結果である可能性がありますか?
答え1
lsof
この行は、TCP ソケットに関する追加情報が見つからない場合に表示されます。TCP ソケットであることは分かっていますが、それ以上のことは分かりません。
考えられる理由は 2 つあります。
あり得ない: ソケットはまだリッスンも接続もしていない: つまり、例えばサーバーまたはクライアントが使用されている
socket(AF_INET, SOCK_STREAM, 0)
TCPソケットを作成するが、まだ呼び出していないlisten(2)
またはconnect(2)
これは、リソース不足またはソフトウェアのバグが原因である可能性があります。lsof
今日最も可能性が高いのは、他の実行で見られるプロセスネットワーク名前空間通常はコンテナー (Docker、LXC、LXD ...) 内にあるため、lsof
関連する情報にアクセスできず、表示されません。その後、
lsof
プロセスと同じネットワーク名前空間から実行する必要があります。lsns
そしてnsenter
コマンドはこれに大いに役立ちます。あなたの場合、おそらくこれが機能するでしょう:nsenter -t 829 --net lsof -n -p 829
通常の場合、の代わりにまたは がlsof
表示され、リスニング ポートや関連するアドレスなどの追加情報が表示されます。接続がまだ進行中の場合でも、関連するアドレスとともに が表示されます (例: ) 。IPv4
IPv6
sock
SYN_SENT