TCP 포트 사용 불가 이슈 해결법
Windows에서 TCP 포트 사용 범위 제외 문제 해결 방법
문제 발생¶
MSSQL을 도커로 사용하고 있는데 어느날 갑자기 평범하게 도커를 실행시켰는데 아래와 같은 문제가 발생했다.
Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:1433 -> 0.0.0.0:0: listen tcp 0.0.0.0:1433: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
찾아보니 도커 컨테이너에서 사용하려는 TCP 포트가 사용 범위에서 제외되었기 때문에 발생하는 오류라고 한다.
문제 확인¶
- 현재 사용 범위에서 제외된 포트의 범위 확인
프로토콜 tcp 포트 제외 범위
시작 포트 끝 포트
---------- --------
1074 1173
1174 1273
1374 1473
1474 1573
1574 1673
1942 2041
2869 2869
5357 5357
11324 11423
11424 11523
12424 12523
12524 12623
12708 12807
12808 12907
14777 14876
14877 14976
50000 50059 *
* - 관리 포트 제외입니다.
해결법¶
사용하려는 포트가 사용 범위에서 제외되었기 때문에 발생하는 문제인데, 아래와 같이 Windows NAT을 재시작하면 해결된다.
-
관리자 권한으로 cmd 실행
-
Windows NAT 사용 중지
- Windows NAT 시작
- 현재 사용 범위에서 제외된 포트의 범위 확인
예방법¶
- 특정 포트 범위에 대해 동적 예약 금지