내부 애플리케이션을위한 최상의 TCP 포트 번호 범위 [닫기]


95

저는 각 내부 애플리케이션이 개별 Tomcat 인스턴스에서 실행되고 특정 TCP 포트를 사용하는 곳에서 일합니다. 서버의 다른 프로세스와의 포트 번호 충돌을 피하기 위해 이러한 앱에 사용할 가장 좋은 IANA 포트 범위는 무엇입니까?

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml을 기반으로 현재 볼 수있는 옵션은 다음과 같습니다.

  1. 시스템 포트 (0-1023) : 서버가이 범위의 표준 포트에서 서비스를 실행 중일 수 있으므로 이러한 포트를 사용하고 싶지 않습니다.
  2. 사용자 포트 (1024-49151) : 애플리케이션이 내부적이라는 점을 감안할 때 IANA에 애플리케이션 번호를 예약하도록 요청하지 않습니다. 그러나 1521의 Oracle Net Listener와 같은 다른 프로세스에서 동일한 포트를 사용할 가능성을 줄이고 싶습니다.
  3. 동적 및 / 또는 개인 포트 (49152-65535) :이 범위는 사용자 지정 포트 번호에 이상적입니다. 내 유일한 관심사는 이것이 발생하는 경우입니다.

    ㅏ. 내 응용 프로그램 중 하나를 포트 X
    b 를 사용하도록 구성합니다 . 응용 프로그램이 몇 분 또는 몇 시간 동안 중단되고 (앱 특성에 따라 다름) 잠시 동안 포트를 사용하지 않은 상태로 둡니다
    . c. 운영 체제는 포트 번호 X를 다른 프로세스에 할당합니다 (예 : 해당 프로세스가 다른 서버에 대한 TCP 연결이 필요한 클라이언트 역할을 할 때). 이는 동적 범위에 속하고 운영 체제에 관한 한 X가 현재 사용되지 않는 경우 성공합니다
    . d. 포트 X가 이미 사용 중이기 때문에 앱이 시작되지 않습니다.


2
나는 당신이 도움이 될 수 있는 비슷한 질문에 여기 stackoverflow.com/a/38141340/3333759 에 대답했습니다 .
adrianwadey

답변:


34

당신이 왜 신경을 쓰는지 모르겠습니다. "1024 미만의 포트를 사용하지 마십시오"권한 규칙 외에, 클라이언트가 모든 IP 주소 및 포트와 통신하도록 구성 할 수 있어야 하므로 모든 포트를 사용할 수 있어야합니다 !

그렇지 않다면 잘되지 않은 것입니다. 돌아가서 제대로하세요 :-)

즉, IP 주소 X와 포트 에서 서버를 실행 Y한 다음 해당 정보로 클라이언트를 구성합니다. 그런 다음와 충돌 하는 다른 서버를 실행 해야하는 경우 새 포트를 사용하도록 서버와 클라이언트를 다시 구성하십시오. 클라이언트가 코드이든 브라우저에 URL을 입력하는 사람들이든 마찬가지입니다.XY

나는 당신과 마찬가지로 IANA가 할당하는 번호를 얻으려고 시도하지 않을 것입니다. 서비스가 너무 일반적이기 때문에 많은 환경에서 사용할 수 있습니다 (SSH, FTP 또는 TELNET 등).

귀하의 네트워크는 귀하의 네트워크이며, 포트 1234 (또는 해당 문제에 대한 TELNET 또는 FTP 포트)에있는 서버를 원한다면 그것이 귀하의 비즈니스입니다. 예를 들어, 메인 프레임 개발 영역에서 포트 23은 텔넷과는 매우 다른 짐승 인 3270 터미널 서버에 사용됩니다. 메인 프레임의 UNIX 측에 텔넷을 사용하려면 포트 1023을 사용합니다. 포트 1023을 지정하지 않고 텔넷 클라이언트를 사용하면 텔넷 프로토콜을 전혀 모르는 서버에 연결되기 때문에 때때로 성가신 일입니다. 텔넷 클라이언트에서 제대로 수행하십시오.

telnet big_honking_mainframe_box.com 1023

클라이언트 측을 구성 가능하게 만들 수없는 경우 48042와 같은 두 번째 범위에서 하나를 선택하고 사용하여 해당 상자에있는 다른 소프트웨어 (향후 추가되는 소프트웨어 포함)를 방해해야한다고 선언합니다. .


감사. 귀하의 답변을 읽고 조금 더 생각한 후 두 번째 범위 내에서 포트를 사용하는 옵션을 사용하기로 결정했습니다. IANA에는 현재이 하위 범위 링크에 할당 된 포트가 거의 없기 때문에 46xxx를 선택했습니다 . 세 번째 범위는 내가 설명한 이론적으로 가능한 (가능성은 낮지 만) 시나리오 때문에 선택하지 않았습니다.
Juanal

119

IANA에서 할당 된 포트 번호를 다운로드하고 사용 된 포트를 필터링 한 다음 각 "할당되지 않은"범위를 사용 가능한 대부분의 포트 순서로 내림차순으로 정렬하기로 결정했습니다. csv 파일에 다른 포트 번호 예약과 겹치는 "Unassigned"로 표시된 범위가 있기 때문에 작동하지 않았습니다. 할당 된 포트 번호 의 범위를 수동으로 확장하여 할당 된 모든 포트 번호 목록을 남겼습니다. 그런 다음 해당 목록을 정렬하고 할당되지 않은 범위의 자체 목록을 생성했습니다.

이 stackoverflow.com 페이지가 주제에 대한 검색에서 매우 높은 순위를 차지했기 때문에 관심있는 다른 사람을 위해 여기에 가장 큰 범위를 게시 할 것이라고 생각했습니다. 범위의 포트 수가 500 개 이상인 TCP 및 UDP 모두에 해당됩니다.

Total   Start   End
829     29170   29998
815     38866   39680
710     41798   42507
681     43442   44122
661     46337   46997
643     35358   36000
609     36866   37474
596     38204   38799
592     33657   34248
571     30261   30831
563     41231   41793
542     21011   21552
528     28590   29117
521     14415   14935
510     26490   26999

출처 (CSV 다운로드 버튼 사용) :

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml


"그것은 모두 tcp와 udp입니다"에서와 같이-모든 포트를 열 수 있습니다. 44100-44199udp와 tcp 모두에서 오디오 44100 샘플링을 안전하게하기 때문에 쉽게 기억할 수 있습니다 . udp 44100-44199와 tcp 44100-44199는 모두 무료입니까?
Lapsio

1
불행하게도. 게시 한 이후 추가 예약이있었습니다. 이제 범위에 포트가 있습니다. "z-wave-tunnel 44123 tcp Z-Wave 보안 터널"
David Vereb 2016 년

운 좋게도 개발 서버에 Z-Wave 스마트 홈 보안 시스템을 설치할 것이라고 생각하지 않습니다. 이전에 사용 된 포트 범위는 일부 VMWare 도구를 포함하여 많은 중요한 항목을 다루었으므로 훨씬 더 나빴습니다. 그것이 지금 유일한 충돌이라면 나는 그 감사로 멋지다 :)
Lapsio

3
그래서 새로운 데이터를 기반으로 새로운 범위 세트를 찾기 위해 목록을 다시 실행하기로 결정했습니다. "Unassigned"범위가 제대로 번호가 매겨지지 않은 것으로 밝혀졌습니다. 예를 들어 43124-44320은 할당되지 않음으로 표시되지만 해당 범위에있는 44123은 할당 된 것으로 바로 위에 나열됩니다. 잘못 계산 된 것처럼 보이는 할당되지 않은 범위를 수동으로 찾아야 할 것 같습니다.
David Vereb

6

간단한 대답 : 할당되지 않은 사용자 포트 사용

성취 자의 대답 이상-리소스 검색 솔루션을 선택하고 배포하십시오. 서버가 개인 포트를 동적으로 선택하도록합니다. 클라이언트가 리소스 검색을 사용하도록합니다.

수신하려는 포트를 사용할 수 없기 때문에 서버가 실패 할 위험은 실제입니다. 적어도 나에게 일어난 일입니다. 다른 서비스 나 클라이언트가 먼저 도착할 수 있습니다.

클라이언트에게 동적으로 전달되는 개인 포트를 피함으로써 클라이언트의 위험을 거의 완전히 줄일 수 있습니다.

사용자 포트를 사용하는 경우 다른 서비스에서 발생하는 위험은 최소화됩니다. 할당되지 않은 포트의 위험은 다른 서비스가 구성 될 때 (또는 동적으로) 해당 포트를 사용한다는 것입니다. 그러나 적어도 그것은 당신의 통제하에있을 것입니다.

사용자 포트를 포함하여 모든 포트 할당이 포함 된 거대한 문서는 여기에 있습니다. http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt Unassigned 토큰을 찾습니다 . .


4
네트워크에서 사용되지 않는 프로토콜에 할당 된 포트를 사용하는 것이 더 낫지 않습니까? 할당되지 않은 포트는 언제든지 할당되어 문제를 일으킬 수 있습니다.
adrianwadey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.