web-dev-qa-db-ja.com

特定のプロセス(Linux)によって開かれているTCP / UDPポートを特定する方法は?

Lsofまたはnetstatを使用して反対の方法(特定のポートが開いているプロセスを見つける)を知っていますが、Googleでの広範な調査は、逆の問題を解決するのに役立ちませんでした。

「netstat-np」をいくつかのgrepとsedと組み合わせて使用​​できることは知っていますが、ハッキーのようです。特定のプロセスによって開かれたすべてのローカルポートを表示する「lsof-itcp:80」の逆バージョンはありますか?

3
Alex G

マニュアルページを見ると、-pオプションを使用してプロセスIDを指定し、-iオプションを使用して表示をインターネットドメインソケット(ipv4のみの場合は-i4、ipv6のみの場合は-i6)に制限できることがわかります。だからあなたがそれらをつなぎ合わせると...

lsof -p <pid> -i

...デフォルトではlsofまたはリクエストをまとめるため、必要なものが得られません。したがって、-aand)フラグを追加します...

lsof -p <pid> -a -i

...指定したプロセスIDで開いているIPv4ソケットのリストが表示されます。

11
larsks

netstat -npをいくつかのgrepおよびsedと組み合わせて使用​​できることは知っていますが、ハッキーのようです。

これはどう:

# netstat --inet -nlp | grep <processname>

特定のプロセスによって開かれたすべてのローカルポートを表示するlsof -i tcp:80の逆バージョンはありますか?

# lsof -c <processname> | grep LISTEN
1
quanta