43.2. カーネルの受け入れキューに追加された TCP 接続の表示
tcpaccept ユーティリティーを使用すると、カーネルの accept() 関数をトレースして、新しく受け入れられた接続を監視できます。
カーネルは、TCP 3 方向ハンドシェイクで ACK パケットを受け取ると、カーネルは接続の状態が ESTABLISHED に変更された後に SYN キューから accept キューに移動します。そのため、正常な TCP 接続だけがこのキューに表示されます。
tcpaccept ユーティリティーは、eBPF 機能を使用して、カーネルが accept キューに追加するすべての接続を表示します。このユーティリティーは、パケットをキャプチャーしてフィルタリングする代わりにカーネルの accept() 関数を追跡するため、軽量です。たとえば、一般的なトラブルシューティングには tcpaccept を使用して、サーバーが許可した新しい接続を表示します。
手順
次のコマンドを実行して、カーネルの
許可キューの追跡を開始します。# /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 を押して、追跡プロセスを停止します。