web-dev-qa-db-ja.com

Mac OS XでTCP / IPポートが開いているプロセスを確認するにはどうすればよいですか?

どのプロセスで TCP/IP ポートが Mac OS X で開いているかを確認するにはどうすればよいですか?

19
Yazz.com

1つの代替方法は、lsofユーティリティの使用です。具体的には、lsof -i 4tcpは、何らかの種類のTCP IPv4ネットワークソケットが開いている状態ですべてのプロセスを一覧表示します。lsofのマンページには、ユーティリティの使用方法と解釈方法の詳細情報が記載されています。出力。

22
ayaz

特定のポートに関心がある場合は、次の例を使用できます。

lsof -i 4tcp:8080 -sTCP:LISTEN

プロセスIDのみを取得したい場合は、次のコマンドを実行できます。

lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
9
Zsolt Balogh

TCPまたはUDP。-nオプションは、IPアドレスをドメイン名に解決しようとする試みを無効にし、-P特定のポートの名前を理解しようとする試みを無効にします。また、rootとして実行すると、通常のユーザーとして実行するよりも多くのプロセスが表示されます。

Sudo lsof -iTCP:53 -iUDP:53 -n -P

1
M. Scott Ford

次のコード例は、ローカルOSXマシンで実行中のすべてのTCPサーバーを示しています。

netstat -a -Ptcp | egrep 'tcp4.*LISTEN'

tcp4       0      0  127.0.0.1.2022         *.*                    LISTEN               0          0
tcp4       0      0  *.3141                 *.*                    LISTEN               0          0

LISTENは、接続を待機しているソケットのみを表示します。つまり、サーバーです。

最初の行は、localhost、別名127.0.0.1、ポート2022にバインドされたサーバーを示しています。ローカルの要求には応答しますが、インターネットベースの要求には応答しません。

2行目は、すべてのアドレスにバインドされたサーバー、つまり*、ポート3141です。それはwillインターネットの質問に答えます。

クライアントが使用するポートを一覧表示するにはandサーバーを使用するには、次のコマンドを使用します。

netstat -an -Ptcp | grep tcp4
0
johntellsall