Solaris10マシンの一部のプロセスがTCP SYNをリモートマシンに送信しています。リモートマシンが応答しないため、接続が確立されていません。これを開始しているプロセスを確認するにはどうすればよいですか?
私はDTraceスクリプトを見てきましたが、a)自分で作成するのに十分なDtraceを知らない、b)既存のスクリプトが見つからない、c)自分のバージョンで使用できないプローブを使用していることがわかったものがあります。
洞察力をありがとう。ゲイリー
このDtraceスクリプトを見てください: conntrack
# ./conntrack -h
USAGE: ./conntrack [-h] [-p port] [-c command] [-u user]
-p port # filter by port (incompatible with user and command)
-c command # filter by command (incompatible with port and user)
-u user # filter by user (incompatible with port and command)
eg,
./conntrack -p 22 # snoop connections to port 22
宛先IPとポートがわかっている場合は、次のコマンドを実行できます。
pfiles $pid
システム上のすべてのプロセスについて、属性でソケットが開かれているプロセスを判別します。使ってみるのもいいかもしれません
lsof -i
rootとして、まだ稼働している間にソケットを取得できるかどうかを確認します。
マシンは外部にあるため、マシンが誰に属しているか、どのソフトウェアを使用しているかを確認して、確認する必要のあるプロセスを制限できる場合があります。
システム上のプロセスごとに、kill -STOP $pid
で一時停止し、接続の試行が停止するかどうかを確認してから、kill -CONT $pid
で再開します。