特定のIPとポートで実行されているプロセスを終了するには? [閉鎖]

特定のIPとポートで実行されているプロセスを終了するには? [閉鎖]

特定のIPで実行されているプロセスを終了する方法があるかどうかを知りたいです。そしてUbuntu 14.04のローカルIPとポートは何ですか?コマンドを使用することをお勧めしますが、そうでない場合は、bashスクリプトは完璧です。

答え1

おそらくもっときれいな方法があるでしょう。しかし、次のように進みます。

netstat -lnp | grep 'tcp .*127.0.0.1:9984' | sed -e 's/.*LISTEN *//' -e 's#/.*##' | xargs kill

答え2

以下を使用して、特定のIPおよびポート(srcおよびポート用)をリッスンするプロセス/接続に関する詳細をss取得できます。127.0.0.180

sudo ss -lp  '( dport = :80 )' src 127.0.0.1

それから私達はそれらをPID得、使用し、grep殺すためにだけ使用することができます。xargskill

sudo ss -lp  '( dport = :80 )' src 127.0.0.1 | grep -Po "(?<=pid=).*(?=,)"\
| sort | uniq | xargs kill

-a代わりに、スイッチを使用して-lすべての受信ソケットと非受信ソケットのリストをインポートすることもできます。

答え3

fuserLinuxには、必要な操作を正確に実行するオプションがあります。

たとえば、fuser 80/tcpそのポートにバインドされているプロセスのPIDを印刷してfuser -k 80/tcpプロセスを終了します。

答え4

ローカルコンピュータのプロセスを実行できる唯一のIPは、127.0.0.1ループバックデバイスloですlocalhost。そのポートは、ネットワーク構成を介してパブリックIPアドレスに転送できます。

私は通常sudo lsof -i :<port>原因が何であるかを判断するために使用します。EADDRINUSEタイピングがより速いからです。

sudo lsof -i :443 | tail -1 | cut -f2 -d' ' | xargs kill

lsof次の出力を提供すると、ポート443で実行されているプロセスが終了します。

COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
python3 32233  cat    4u  IPv4 24123106      0t0  TCP *:http-alt (LISTEN)

からlsof --help

-i i   select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]

関連情報