2011-09-01 2 views
16

우리는 자체 포트 번호에 대한 요청을 처리해야하는 사용자 지정 응용 프로그램이 있습니다. 우리는 우리가 결정한 후에 그 항구에 충실 할 것이지만 번호가 무엇인지 상관하지 않습니다. 사용자 시스템에서 실행중인 다른 응용 프로그램 또는 서비스와 충돌 할 가능성이 적은 번호를 선택하려면 어떻게합니까?맞춤 앱의 고정 포트 번호를 선택하는 방법은 무엇입니까?

따라야 할 규칙이나 기준이 있습니까?

설명 : 일단 포트를 선택하면이를 고수해야합니다. 동적 인 것을 사용할 수 없습니다. 우리는 사용자 정의 SFTP 서버를 구축하고 있으며 고객에게 어떤 포트가 실행 중인지 알려야합니다.

+0

명확한 설명 : 일단 포트를 선택하면이를 고수해야합니다. 동적 인 것을 사용할 수 없습니다. 우리는 사용자 정의 SFTP 서버를 구축하고 있으며 고객에게 어떤 포트가 실행 중인지 알려야합니다. – ccleve

답변

8

응용 프로그램이 실행될 정확한 환경을 예측할 수 없다면, 이것에 신경 쓰지 마라. 1024 이상의 숫자를 선택하고 다른 서비스/응용 프로그램과 충돌하는 경우 사용자가 변경할 수 있도록 구성 할 수도 있습니다.

물론 8080 (대체 HTTP)이나 3128 (오징어 같은 프록시), 1666 (퍼 코어) 등과 같은 매우 일반적인 포트는 피할 수 있습니다. 알려진 포트 here의 포괄적 인 목록을 확인하거나/etc/services.

12

정적 응용 프로그램의 경우 /etc/services을 확인하여 사용중인 다른 것과 충돌하지 않으며 다른 곳에서는 공통적으로 사용되지 않는 포트를 찾으십시오.

$ tail /etc/services 
nimspooler  48001/udp      # Nimbus Spooler 
nimhub   48002/tcp      # Nimbus Hub 
nimhub   48002/udp      # Nimbus Hub 
nimgtw   48003/tcp      # Nimbus Gateway 
nimgtw   48003/udp      # Nimbus Gateway 
com-bardac-dw 48556/tcp      # com-bardac-dw 
com-bardac-dw 48556/udp      # com-bardac-dw 
iqobject  48619/tcp      # iqobject 
iqobject  48619/udp      # iqobject 
6

포트 번호에 대해 걱정하지 않는다, 그것은 프로그램이 실행될 때마다 변경하는 것이 괜찮다면, 단순히 당신이 그것을 듣고 전에 포트를 바인드 (또는 포트와 결합하지 않는다 0, 특정 IP 주소를 Y 인드하려는 경우). 두 경우 모두 운영 체제에 무료 포트를 선택하라는 의미입니다.

청취를 시작한 후 getsockname을 사용하여 어떤 포트가 선택되었는지 확인하십시오. 파일에 쓰거나, 화면에 표시하거나, 어린이가 fork 등을 통해 상속하도록 할 수 있습니다.

관련 문제