답변:
(2 ^ 16) -1 또는 0-65,535 (-1은 포트 0이 예약되어 사용할 수 없기 때문에)입니다. (o_O Tync가 포트 0을 사용할 수 없음을 상기 시켰고 Steve Folly가 포트 수가 아닌 가장 높은 포트를 요청했음을 알려 주었기 때문에 편집 됨)
그러나 당신은 아마 이것에 대해 잘못된 길을 가고있을 것입니다. 비표준 포트를 반대하는 사람들이 있습니다. 가장 일반적인 스캐너를 제외하고는 관련이 없으며 최신 소프트웨어와 적절한 방화벽 기술과 강력한 암호를 사용하여 가장 일반적인 스캐너를 완벽하게 유지할 수 있습니다. 다시 말해 보안 모범 사례입니다.
1-65535는 합법적 인 TCP 포트이지만 1-1023은 잘 알려진 포트 서비스를위한 것입니다. 임시 포트가 설정된 후 시작되면 자체 서비스에 임의의 문제가 발생할 수 있습니다. 모르는 사람들을 위해 임시 포트는 원격 엔드 포인트 (또는 그 영향을받는 것)를 위해 로컬로 연결된 포트입니다. 따라서 포트 20001에서 수신 대기하는 TCP 서비스를 작성하면 오늘과 내일도 좋을 것입니다. 그러나 언젠가 서비스가 시작되어 20001에 바인딩하려고 시도 할 수 있으며 임시 포트로 사용되기 때문에 실패합니다. 해결책이 있습니다. 서버 관리자 나 관리자가 시스템 임시 포트 범위 정책을 변경해야합니다. Linux 시스템에서는 두 단계로 수행됩니다.
재부팅 할 계획이더라도 두 단계를 모두 수행해야합니다.이 경우 동적 단계는 필요하지 않습니다. 범위를 40000에서 65535까지 설정하려면 다음을 수행하십시오.
동적
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
또는
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
영구적 인
/etc/sysctl.conf에 다음을 추가하십시오.
net.ipv4.ip_local_port_range = 40000 65535
현재 설정을 읽거나 변경을 확인하려면
/sbin/sysctl net.ipv4.ip_local_port_range
출력은 다음과 같습니다.
net.ipv4.ip_local_port_range = 9000 65500
서버의 목적을 이해해야합니다. 범위를 너무 줄이면 다른 문제가 발생할 수 있습니다.
행복한 코딩! (또는 당신이 무엇이든)