Linux의 최대 포트 번호는 얼마입니까?

Linux의 최대 포트 번호는 얼마입니까?

일부 Linux 서비스를 비표준 포트로 설정하고 싶습니다. 유효한 가장 높은 포트 번호는 무엇입니까?

답변1

(2^16)-1 또는 0-65,535(-1은 포트 0이 예약되어 있어 사용할 수 없기 때문입니다). (o_O Tync가 포트 0을 사용할 수 없다는 점을 상기시켜 주었고 Steve Folly가 포트 수가 아닌 가장 높은 포트를 요청했다는 점을 상기시켜 주었기 때문에 편집됨)

하지만 아마도 당신은 이 문제에 대해 잘못된 방향으로 가고 있을 것입니다. 비표준 포트에 대해 논쟁을 벌이는 사람들도 있습니다. 가장 일반적인 스캐너를 제외하고는 관련이 없으며 가장 일반적인 스캐너는 강력한 비밀번호와 함께 최신 소프트웨어와 적절한 방화벽 기술을 사용하여 막을 수 있습니다. 즉, 보안 모범 사례입니다.

답변2

1~65535를 사용할 수 있으며 범위 1~1023의 포트는특권을 받은것들: 이러한 포트를 수신하려면 애플리케이션을 루트로 실행해야 합니다.

답변3

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

서버의 목적을 이해하고 있는지 확인하십시오. 범위를 너무 많이 줄이면 다른 문제가 발생할 수 있습니다.

즐거운 코딩하세요! (또는 당신이 무엇을 하든)

답변4

65,535라고 말하는 사람들은 모두 맞습니다.

하지만!!! 조심스럽게 커널 조정 가능 매개변수를 조작하면 Linux에게 더 많은 것을 사용하도록 지시할 수 있습니다. 일부 상용 UNIX 시스템은 기술적으로 범위를 벗어난 포트에서 문제 없이 서비스를 실행합니다. 일부 방화벽/ACL 보호 네트워크를 매우 간단하게 우회할 수 있습니다! :피

나는 tcp/99999에서 두 번째 텔넷 서버를 실행하곤 했는데 그것은 항상 나에게 효과적이었습니다. 일반적인 권한 있는 포트(1-1024)가 ACL 또는 네트워크 방화벽에 의해 차단되는 경우에도 마찬가지입니다.

65,535 이상의 포트를 수신하는 포트를 검색하는 사람은 거의 없습니다. 대부분의 네트워크 장비는 정의된 범위(0-65535)를 벗어나는 항목을 검사할 수 없으며 규칙에서 달리 지시하지 않는 한 맹목적으로 트래픽을 전달할 수 없습니다. 이제 64비트 시스템이 있으므로 상위 범위는 기술적으로 64비트 경계입니다. 네트워크가 트래픽을 전달한다는 의미는 아니지만 일반적으로 삭제하거나 거부할 규칙이 없는 모든 항목을 전달합니다.

관련 정보