특정 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]

관련 정보