web-dev-qa-db-ja.com

netstatを使ってどのプロセスがポートをリスンしているかを表示する方法

私はOS X Mountain Lionラップトップを使っていて、それにVagrantボックスをいくつか持っています。私はどのプロセスがポート8080をリッスンしているのかを把握しようとしています。私は次のように想定しています:

netstat -XXX | grep 8080
26
timpone

残念ながら、OSXではBSDのnetstatにこだわっていて、与えられたポートに添付されているプロセスIDは表示されません。代わりにlsofを使用してください。使用する必要がある構文は次のとおりです。

lsof -i :8080

これで大量の情報が出力されますが、そのほとんどは気にする必要はありませんが、フィールドにはよくラベルが付けられています。たとえば、この出力例をチェックしてください。

lsof -i :53237
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest   29u  IPv4 0x2c3f7f95244855c3      0t0  TCP localhost:53237 (LISTEN)

これはポート53237がプロセスID 927によって使用中であることを私に告げています。COMMANDフィールドを読むとき、この出力が切り捨てられることを覚えておいてください、実際にバイナリのフルネームはGoogleTalkPluginです。

52
Scott Pack

これは私がリスニングポートのPIDを探すときに使いたいものです。 Linuxの場合はnetstat -tunlp

  • nネットワーク
  • lリスニングポート
  • pプロセス
  • t tcp
  • u udp

追加情報はmanページにあります。

8
CDSU

私はこの機能を提供するためにOS Xでnetstatを修正する過程にあり、-vがソケットに関連したpidを与えるという事実につまずいた。

5
Sean Hamilton

私にとっては、次の2行がどのアプリがリスニングポートを開いてトンネルを開いているかを示すのに最適です。

netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN
4
Tomachi

特定のポートを調べるには、below netstatコマンドを使用してください。

  netstat -an | grep ':8080'

男からnetstat

-p、--program各ソケットが属するプログラムのPIDと名前を表示します。

私はたいていこれをやるだけです。 grep 8080

1
Hermes Conrad

下記のコマンドは接続を表示します。

netstat -antop | grep :8080

完全なフローをリアルタイムで表示するには、watchを使用できます。

watch -d -t -n 1 'lsof -n -i :8080'
0
suhas