お持ちですか?きれいLinuxプロセス/サービスが実行/受信しているポートを確認する方法は?
fuser
、、netcat
などlsof
はすべてその情報を見つける方法ですが、同時にさまざまな情報を返すことがわかります。たとえば、 netstat -ltnp | grep -w process_name"
成功しますが返されます。
tcp 0 0 127.0.0.1:1234 0.0.0.0:* LISTEN 4880/process
tcp6 0 0 ::1: :::* LISTEN 4880/process
また、特定のポートで実行されているプロセスではなく、プロセスが実行されているポートが必要です。
magic_command -abcd process_name
ポート番号を返します。それ以外の場合は何も返されません。
PS:私は明らかなリンクを確認しました。https://ostechnix.com/how-to-find-which-service-is-listening-on-a-pspecial-port/
答え1
lsof
この目的に使用できます。 Magic_commandは次のとおりです。
sudo lsof -i -P -n | grep LISTEN | grep <your_process_name>
エイリアスでラップできます。
alias magic="sudo lsof -i -P -n | grep LISTEN | grep "
出力例:
$ magic httpd
httpd 9438 apache 3u IPv4 2087313137 0t0 TCP *:80 (LISTEN)
httpd 9438 apache 4u IPv4 2087321333 0t0 TCP *:49383 (LISTEN)
httpd 9438 apache 5u IPv4 2087321335 0t0 TCP *:49384 (LISTEN)
httpd 9438 apache 6u IPv4 2087345343 0t0 TCP *:443 (LISTEN)
httpd 23940 root 3u IPv4 2087313137 0t0 TCP *:80 (LISTEN)
httpd 23940 root 4u IPv4 2087321333 0t0 TCP *:49383 (LISTEN)
httpd 23940 root 5u IPv4 2087321335 0t0 TCP *:49384 (LISTEN)
httpd 23940 root 6u IPv4 2087345343 0t0 TCP *:443 (LISTEN)
ポート以外に本当に興味がない場合、一部の出力処理は無関係な情報をブロックします。
$ magic httpd | awk -F: '{print $2}' | cut -d\ -f1 | sort -un
80
443
49383
49384
答え2
Linuxでは、/ procをマウントすると、次の情報が得られます。
ls -l /proc/<pid>/fd/
(<pid>プロセスpidを入力してください)