IT/Back-end

서버 기동시 port 중복 해결방법!

omaeng 2020. 3. 18. 11:40

프론트와 백을 막론하고 컴퓨터를 부팅시킨 상태에서 몇일 동안 작업을 하다가 보면 가끔 보는 에러가 있다.

 

그것은 바로

 

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

 

이것은 내가 실행하려는 어플리케이션이 다른 사용중인 포트로 접속 하려는 것을 말한다.

 

주로 localhost:8080이나 localhost:3000을 사용중인 필자는 자주 이 현상을 겪는다. 

 

프론트 같은 경우에는 포트가 중복되어 어플리케이션을 실행할 수 없는 경우

 

위와 같이 포트 번호를 일시적으로 바꿔주고 어플리케이션을 실행 시켜준다.

 

포트 번호는 영속적인 것이 아니라 일시적인 것으로 설정된 기본 포트 localhost:3000에서 1을 더한 값을 기동 시켜 준다. 만약에 3001번이 있는 경우에도 마찬가지고 1을 더해 기동시켜 줄 수 있게 한다. 

 

하지만 이렇게 친절한 서버는 몇 없다...

 

대부분의 서버 같은 경우에는 

 

위와 같이 중복된 포트의 번호를 알려주고 다른 포트를 사용하라고 고지를 한뒤 Shut down 시킨다.

 

해결법


위와 같은 현상을 해결할 두 가지의 방법이 있다.

 

첫 번째로

cmd 창에서 사용중인 포트를 확인하고 중지하는 방법

 

1. win key + R 을 눌러 cmd 창을 띄운다.

 

2. netstat -a -n -o 를 입력하고 난 뒤 엔터를 누른다. (netstat은 명령어에서 유추할 수 있듯 네트워크에 관련된 명령어 이다. netstat /?를 입력하면 자세한 명령어의 종류와 설명을 볼 수 있다.)

 

3. 현재 기동되고 있는 IP와 포트가 보인다. (-a는 all의 의미로 모든 포트의 번호를 표시해준다. -n같은 경우에는 IP:Port의 형태로 보여준다. 000.000.0.00:1234 . -o 는 프로세스 ID를 표시해준다 =PID)

 

4. 내가 중지 시키려는 IP:Port 를 찾아 PID(프로세스ID)를 기억한다.

 

5. taskkill /f /pid 1111 <--1111에 본인이 kill하려는 PID를 입력

 

6. 엔터를 치면 성공이라는 문구와 함께 종료된 PID가 보인다.

 

이제 기동하려는 서버를 기동하면 빈 포트에 성공적으로 기동을 할 수 있다.

 

두 번째로

내가 기동하려는 어플리케이션의 포트번호를 바꿔 기동하는 것이다.

 

이 방법은 정말 간단한데. application.properties에서 포트번호를 명시해 주면 된다.

 

server.port = 1234

1234로 포트를 지정해 바꿔준 모습이다. 

 

혹시나 포트가 또 중복될 가능성이 있으니, cmd 창에서 netstat -a -o -n을 친후 빈 포트를 확인하자!