Study/OS

[Linux/Ubuntu] 사용 중인 포트 종료(port kill) 방법

 

리눅스(우분투)에서 사용중인 포트를 닫는 방법에 대해 설명드리겠습니다.

포트 번호로 바로 종료하는 방법과 PID로 종료하는 방법을 설명드리겠습니다.

Ubuntu 18.04.6 LTS에서 진행하였습니다.

 

사용중인 포트 조회

PID로 종료하기 위해서는 포트가 사용하고 있는 프로세스의 번호를 조회해야합니다.

 

윈도우랑 리눅스 둘다 netstat 명령어를 사용합니다.

netstat 명령어는 간단하게 설명하면 네트워크 상태를 보여주는 명령어입니다.

netstat 명령어를 사용하는 것은 같지만, 옵션이 다릅니다.

netstat -tnlp | grep <포트 번호>

netstat 명령어로 현재 사용중인 포트 표시
netstat 명령어로 현재 사용중인 포트 표시

8081 포트 번호를 사용중인 프로세스를 조회하였습니다.

grep 명령어 없이 사용하면 현재 사용중인 모든 프로세스를 조회할 수 있습니다.

 

윈도우는 netstat -a -o 로 조회했는데, 리눅스는 -tnlp를 사용했습니다.

tnlp 옵션의 의미는 다음과 같습니다.

-t는 TCP 프로토콜만 보여줍니다(위의 이미지에서 tcp6 부분).

-n은 IP, 포트 번호로 보여줍니다(:::8081 부분).

-l은 LISTEN 상태(대기 중)인 포트를 보여줍니다(LISTEN 부분).

-p는 해당 네트워크를 사용하는 프로그램의 이름과 PID를 보여줍니다(31497/java 부분).

 

포트번호로 종료

포트를 종료하는 방법은 여러가지가 있습니다.

포트 번호로 바로 종료하는 방법에 대해 설명드리겠습니다.

fuser -k <포트 번호>/tcp

fuser 명령어로 포트 종료
fuser 명령어로 포트 종료

fuser는 파일이나 파일 시스템을 사용하는 프로세스나 사용자를 확인하고 제어할 수 있는 명령어입니다.

포트 번호를 종료하기 위해서 -k 옵션을 사용합니다.

-k 대신에 -kill을 사용해도 됩니다.

-k 옵션으로 포트를 종료하기 위해서는 포트번호와 유형(tcp나 udp)이 필요한데, 

위에 netstat 명령어를 통해 네트워크 유형을 확인할 수 있습니다.

 

정상적으로 종료가 되었다면 종료된 프로세스 번호(PID)를 확인할 수 있습니다.

 

 

 

 

PID로 포트 종료

PID로 종료하는 방법에 대해 설명드리겠습니다.

kill -9 <PID>

kill 명령어로 포트 종료
kill 명령어로 포트 종료

이전에 예시로 들었던거는 위에서 종료를 시켜버려서 다시 실행하였습니다.

netstat으로 PID를 조회하고 조회된 PID를 가지고 kill 명령어를 실행합니다.

kill 명령어 실행 후에 다시 netstat으로 해당 포트를 조회하면 실행중인 프로세스가 없는 것을 확인할 수 있습니다.

 

fuser -k와 kill 명령어의 차이

그냥 궁금해서 찾아봤는데, 검색해도 자세한 설명이 안 나와서 ChatGPT한테 물어봤습니다. 

ChatGPT가 설명하는 fuser -k과 kill 명령어의 차이
ChatGPT가 설명하는 fuser -k과 kill 명령어의 차이

 

뭔지는 알 것 같은데, 질문을 애매하게 한것 같아서 자세히 질문해봤습니다.

 

ChatGPT가 설명하는 fuser -k과 kill 종료 기능의 차이
ChatGPT가 설명하는 fuser -k과 kill 종료 기능의 차이

이전에 물어본 내용과 비슷하지만 조금 더 자세한 느낌의 답변입니다.

 

둘다 프로세스를 종료하는 것은 같지만 kill은 PID로 제어할 때, fuser -k은 PID말고도 다른걸로도 제어가 가능하다라고 설명하는것 같습니다.

재밌네요