簡素化のための netstat
netstat
の使用 そして PID またはプロセス名を grep します:
# netstat -np --inet | grep "thunderbird"
tcp 0 0 192.168.134.142:45348 192.168.138.30:143 ESTABLISHED 16875/thunderbird
tcp 0 0 192.168.134.142:58470 192.168.138.30:443 ESTABLISHED 16875/thunderbird
watch
を使用できます 動的更新の場合:
watch 'netstat -np --inet | grep "thunderbird"'
と:
-n
:シンボリックなホスト名、ポート名、またはユーザー名を決定しようとする代わりに、数値アドレスを表示します-p
:各ソケットが属するプログラムの PID と名前を表示します。--inet
:raw、udp、および tcp プロトコル ソケットのみを表示します。
冗長性のための strace
あなたは strace
を試したと言った ツールですが、オプション trace=network
を試しましたか ?出力は非常に冗長になる可能性があるため、greping が必要になる場合があることに注意してください。 「sin_addr」を grep することから始めることができます。
strace -f -e trace=network <your command> 2>&1 | grep sin_addr
または、すでに実行中のプロセスの場合は、PID を使用します:
strace -f -e trace=network -p <PID> 2>&1 | grep sin_addr
sysdig
カーネルのすべてのアクティビティ、またはシステムで実行されているいくつかのコマンドのすべてのアクティビティを同時に監視できます。これには、ネットワーク アクティビティが含まれますが、これに限定されません。
出力が大きくなる可能性があるため、フィルターを作成する必要があります。最も基本的なフィルターのデフォルト ページは非常にわかりやすいものです。
strace
のようにアプリケーション ラッパーとして使用されないという利点もあります。 であり、非常に強力です。
Sysdig の例から
<ブロック引用>ネットワーキング
ネットワーク帯域幅の使用量に関して上位のプロセスを表示
sysdig -c topprocs_net
ホスト 192.168.0.1 と交換されるネットワーク データを表示します
バイナリとして:
sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1
アスキーとして:
sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1
上位のローカル サーバー ポートを参照してください:
確立された接続に関して:
sysdig -c fdcount_by fd.sport "evt.type=accept"
総バイト数に関して:
sysdig -c fdbytes_by fd.sport
上位のクライアント IP を見る
確立された接続に関して
sysdig -c fdcount_by fd.cip "evt.type=accept"
総バイト数に関して
sysdig -c fdbytes_by fd.cip
Apache によって提供されていない着信接続をすべてリストします。
sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
新しいネットワーク名前空間を作成し、それを実際のネットワークにブリッジしてから、 tcpdump
でブリッジを監視します .