Please Enable JavaScript!
Gon[ Enable JavaScript ]

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

윈도우10

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

환경: Windows 10

 

네트워크를 통해서 데이터를 주고받는 프로그램은 반드시 포트(Port) 가 필요합니다. 같은 IP 를 사용하는 공간에서 다른 프로그램이 사용하지 않는 포트가 있어야 한다는 의미입니다. 프로그램에서 사용하는 포트는 중복해서 사용할 수 없기 때문입니다. 현재 돌아가고 있는 프로그램의 동일한 포트를 사용하기 위해 또 다른 프로그램을 실행한다면 포트 충돌 에러가 발생합니다. 동시에 여러 프로그램에서 실행할 수 없기 때문에 하나를 제외한 나머지는 종료해야 합니다. 충돌이 일어날 경우 어느 프로그램이 동일한 포트를 사용하는지 알아보고 종료하는 방법을 알려 드리겠습니다.

 

컴퓨터에 데이터베이스 앱인 mariadb 를 설치하는 과정에서 포트 충돌 에러가 발생했습니다. 기본 포트는 3306 인데 현재 실행되고 있는 어느 프로그램이 동일한 포트를 사용하고 있나 봅니다. 방법은 두 가지입니다. 충돌이 발생한 포트를 포기하고 다른 포트를 사용하거나 포트를 사용하고 있는 프로그램을 종료하고 설치하는 것입니다.

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

사용 중인 포트 검색

 

먼저 동일한 포트를 사용하는 프로그램을 찾아야 합니다. 명령어는 netstat 입니다. 현재 네트워크 상태를 알려주는 도구로 콘솔창을 띄워 netstat 를 실행합니다. 그런데 컴퓨터에서 사용하고 있는 모든 네트워크 상태를 체크해야 되기 때문에 시간이 오래 걸립니다. 검색 시간을 줄이기 위해 여러 옵션을 조합해서 명령어를 실행해 보겠습니다

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

명령어와 인수를 조합해서 프로세스 ID 와 포트 형태를 지정합니다. 명령어 뒤에 옵션은 -ano 입니다. 마지막에 o PID 를 표시하기 위한 옵션입니다. PID 는 프로세스 ID 로 프로그램을 찾는데 사용합니다. 검색 결과에서 찾아야 할 포트는 3306 입니다. 그림처럼 3306 사용하는 Port PID 2784 네요.


 

netstat -ano

l  a : 모든 포트를 표시한다.

l  n : IP : 포트 형태로 표시한다.

l  : PID(프로세스 ID) 를 표시한다

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

검색 결과를 좀더 줄여 보겠습니다. findstr 은 검색 결과에서 동일한 텍스트를 찾아 주는 옵션입니다. findstr 의 파라미터인 ":3306" 이 포함된 결과값만 보여줄 것입니다.  

 

$ netstat -ano | findstr :3306

 

검색 결과에서 netstat 의 상태값은 다양합니다.  검색한 목록에서 상태값이 LISTEN 인 것을 찾아야 합니다.

 

l  LISTEN : 서버의 데몬이 클라이언트 요청을 기다리는 상태

l  SYN-SENT : 클라이언트가 원격 호스트에 연결을 요청한 상태

l  SYN_RECEIVED : 서버가 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답했지만 클라이언트에게 확인 메시지를 받지 못한 상태

l  ESTABLISHED : 서버와 클라이언트 간에 세션이 연결되어 통신이 이루어지고 있는 상태웹페이지 연결

l  FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : 서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받아 종료하는 과정의 상태

l  CLOSING : 확인 메시지가 전송도중 분실된 상태

l  CLOSED : 완전히 종료

l  TIME_WAIT : 연결은 종료되었지만 약 1분정보 소켓을 열어 놓고 패킷을 기다리는 상태

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

동일한 포트를 사용하고 있는 프로세스 종료

 

netstat 명령어로 3306 포트를 사용하는 프로세스 ID 2784 알아냈습니다. 다음은 프로세스 ID 를 힌트로 어떤 프로그램인지 찾아보겠습니다. 작업 표시줄에서 작업 관리자 창을 띄웁니다

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

작업 관리자 창에서 세부 정보 탭으로 이동합니다. 프로세스 목록에서 PID 항목에 2784 를 찾습니다. 프로그램은 mysql.exe 네요. MySQL 이라는 데이터베이스 프로그램으로 백그라운드에서 돌아가고 있습니다. 해당 프로그램을 종료해야 다른 프로그램이 동일한 포트를 사용할 수 있습니다. 오른쪽 마우스를 눌러 작업 끝내기 메뉴를 선택합니다

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

 

실행한 결과 아무것도 나타나지 않습니다. 이제 3306 을 사용하는 포트가 없으므로 mariaDB 프로그램 설치를 진행하시기 바랍니다

윈도우10 포트 충돌 나는 경우 사용중인 포트 확인하고 종료하기

Posted by 녹두장군

댓글을 달아 주세요