IntelliJ 실행 시 Address already in use 에러

박지우·2023년 2월 8일
0

평소와 다름없이 인텔리제이를 실행할려고 하던 중 다음과 같은 에러를 만나게 되었다. 사실 예전 같으면 재부팅을 통해서 해결될거라 생각하고 시도했었고 실제로도 해당 문제를 해결할 수 있었다.

과연 이런 방식이 올바른 것일까??

좀 더 근본적인 문제점을 찾아보고자 확인했고 오류를 곰곰히 읽어보던 중 아래 문장을 확인했다.

간단하게 생각하면 주소가 이미 사용중, 즉 포트가 이미 사용중이란 뜻인데 이 부분에서 의문을 느꼈다. 그렇다면 어떤 프로그램이 할당중인 것일까?

Hyper-V 포트 할당 문제

과거 Docker 학습과 리눅스 체제를 연습하기 위해 윈도우에 리눅스 환경을 설치했다. 당연히 1차원적인 해결방법은 Hyper-V 서비스를 중지하면 해결이다! 이 때문에 재부팅을 할 경우 포트 번호가 재할당되어 프로그램이 실행된 것이다.

그러나 결국 양자택일이라는 소리 아닌가..?

포트 번호의 경우 동적으로 할당된다. 이미 선점된 포트일 경우 다른 포트 번호를 탐색하게 된다.

내가 알고있는 기본적인 포트 번호 할당 원리이다. 무수히 많은 프로그램이 실행되는 중 왜 이런 충돌이 발생하는 것일까? 분명히 포트 번호가 부족할리는 없는데...

이런 생각을 하면서 이곳저곳 구글링을 해보니 동적 포트 범위를 확인해보라는 글이 있었고 한 번 나도 확인해보았다.

ipv4, ipv6 둘 다 udp 와 tcp 의 범위가 다르다. 원래 이런 것인가? 아님 내 컴퓨터가 이상한 것일까?? 이 부분은 공식 문서를 통해 해결할 수 있었다.

TCP/IP의 기본 동적 포트 범위

IANA(Internet Assigned Numbers Authority) 권장 사항 을 준수하기 위해 Microsoft는 나가는 연결에 대한 동적 클라이언트 포트 범위를 늘렸습니다. 새 기본 시작 포트는 49152이고 새 기본 끝 포트는 65535입니다. 이 증가는 1025~5000의 기본 포트 범위를 사용했던 이전 버전의 Windows 구성에서 변경된 것입니다.

MS Docs

위 글을 보면 동적 포트 범위 시작이 49152 인 것을 확인할 수 있다.
-> 아니 그렇다면 나는 왜??

확인해보니 윈도우 과거 업데이트때 포트 범위가 잘못 설정되는 버그가 존재했는데 이후 업데이트가 진행되었음에도 불구하고 이 범위가 그대로 유지된 것이다..

어쨌든 해결하면 되는 거니까!


원하는 대로 둘 다 변경이 되었다. UDP 같은 경우 정상적으로 설정된 거 같으니 이제는 문제가 없을 것이다. 근데 이 부분이 또 다른 문제를 만드는 건 아닐 지 조금은 두렵기도 하다..

profile
다양한 학습을 진행합니다!

0개의 댓글