TCP/IP 포트에서 수신 대기하는 앱을 개발할 때 기본 포트를 어떻게 선택해야합니까? 이 응용 프로그램은 많은 컴퓨터에 설치되며 포트 충돌을 피하는 것이 바람직하다고 가정합니다.새 서비스를위한 기본 TCP/IP 포트를 선택하는 방법은 무엇입니까?
답변
첫 번째 단계 : IANA listing보고 :
이당신이 목록
"동적 및/또는 개인의 꼬리에서 볼 수 포트는 49152에서 65535 사이의 값입니다. "
이렇게하면 더 나은 선택이 될 수 있지만, 한 번 선택하면 항상 인기있는 앱이 있는지 알아볼 수 있습니다. 모자는 이미 "claim"했다.
하지만 동적 포트를 사용하면 간헐적 인 (드물지만) 포트 충돌이 발생하지 않을까요? 등록되지 않은 포트 또는 모호한 앱에 할당 된 등록 된 범위의 포트를 사용하는 것이 더 안전 할 수도 있습니다. –
명시 적으로 포트 선택을 IANA에 등록하지 않으면, "UNASSIGNED"를 사용하여 동일한 충돌 확률을 실행합니다. 실제로 많은 사람들이 할당되지 않았기 때문에 아마 IMHO 일 가능성이 높습니다. – curtisk
가능한 충돌을 처리하기 위해 사용자/관리자 구성 가능한 포트 옵션을 사용하여 항상 할당되지 않은 범위에서 시작하십시오. 응용 프로그램이 광범위하게 사용되는 경우에만 (비트 토런트 또는 다른 큰 사용법을 생각해보십시오.) 할당 된 포트를 실제로 신청해야합니다. 그렇지 않으면 지정된 범위를 벗어나지 마십시오. 이것이 엄격하게 내부/개인을위한 것이라면 다양한 서비스로 사용중인 포트를 문서화하면 사람들이 온라인 어딘가에서 그들을 볼 수있는 한 괜찮습니다. 비 라우트 IP와 비슷한 개인/동적 범위를 생각해보십시오. 작은/개인적인 용도로 완벽합니다. – jefflunt
자주 사용되는 포트 번호 here을 참조하고 다른 사람을 사용하지 않도록 할 수 있습니다.
"대중에게 공개"하면 자신의 시스템에서 포트를 여는 것이고 시스템 관리자와 어떤 일을하는지 쉽게 알 수 있습니다.
this list (위키 백과)의 포트는 사용하지 않는 것이 좋습니다.
하나만 선택하면 대중이 앱을 사용하면 포트 번호가 인식되어 해당 목록에 포함됩니다.
내가 nmap-services 알고 공식 IANA 포트 번호와 비공식 포트 번호의 가장 포괄적 인 목록이 아닙니다 verycommon
숫자를 선택합니다.
널리 사용에 의해, 당신은 미래에 그것을 사용하는 다른 사용자로부터 보호하려는 의미하는 경우, 당신은에서 할당되지 않은 하나를 선택 IANA here
하여 응용 프로그램을 위해 예약대로 표시하도록 적용 할 수 있습니다 대개 IANA 목록으로 충분하지만 상업적으로 출시 된 제품에 대해 이야기하는 경우 IANA에 신청하여 귀하에게 할당해야합니다. 이 작업을 수행하는 과정은 간단하지만 느립니다. 마지막으로 제가 한 명을 신청했을 때 일 년이 걸렸습니다.
널리 사용되기를 기대하는 응용 프로그램의 경우 here을 등록하여 다른 사람이 사용하지 않도록하십시오.
그렇지 않으면 사용하지 않은 것을 무작위로 선택하십시오.
동적 범위에서 하나를 사용하면 동적 포트 번호로 사용될 수 있으므로 사용하지 못할 수 있습니다.
가장 일반적인 데몬과 서버를 방해하지 않는 기본 포트를 선택하십시오. 또한 포트 번호가 일부 바이러스에 대한 공격 경로로 나열되지 않도록하십시오. 어떤 회사는 무엇이든 상관없이 그러한 포트를 차단하는 엄격한 정책을 가지고 있습니다. 마지막으로 포트 번호를 구성 할 수 있는지 확인하십시오.
다른 언급이 있으면 IANA를 확인하십시오.
그런 다음 로컬 시스템/etc/services를 점검하여 이미 사용중인 사용자 정의 포트가 있는지 확인하십시오.
그리고 하드 코딩하지 마십시오. 구성 할 수 있는지, 어쨌든, 어쨌든 - 다른 이유로 개발자가 자신의 현지화 된 빌드를 동시에 사용할 수 있기를 원하는지 확인하십시오.
IATA? IANA를 말하는거야? – bortzmeyer
iana 목록을 사용하십시오. 에서 CSV 파일을 다운로드 :
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
및 unregistred 포트 검색이 쉘 스크립트를 사용
for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;
이 더 잘 대답한다 N 및 M.
의 두 숫자 대신 넣어 여기 : http://stackoverflow.com/questions/10476987/best-tcp-port-number-range-for-internal-applications – matt2000