たとえば postgresql がどのポートをリッスンしているかを確認したいので、次のようにします。
netstat -l
しかし、これは巧妙なやり方で、ポートの代わりにプロセス名を出力します。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:postgresql *:* LISTEN
tcp 0 0 *:31416 *:* LISTEN
netstat を使用して、どのプロセスがリッスンしているかを判断するにはどうすればよいでしょうか?
答え1
netstat
(デフォルトの) ポートをサービス名に変換する場合、このマッピングは/etc/services
ファイルから取得されます。
したがって、ポートは次の場所から取得できます/etc/services
。
grep '^postgresql' /etc/services
または、(ホスト、ポート、ホスト名) の解決を防止し、出力を数値で投稿する-n
オプションを追加する方がよいでしょう。netstat
netstat -nl
-t
リスニング中の TCP ソケットのみを表示するオプションを追加することで、検索インターフェイスを制限できます( -u
UDP の場合も同様、-x
UNIX ドメイン ソケットの場合)。
netstat -nlt
結果に対して任意の標準テキスト処理ツールを使用し、必要なものだけを取得することもできます。