Linux에서 최대 동시 포트 수를 제한하는 방법이 있습니까?단일 사용자동시에 바인딩/수신이 가능합니까(네트워크 장치별로 가능합니까)?
즉, 사용자가 무제한의 포트를 동시에 바인딩/수신할 수 있는 경우 악의적인 사용자는 포트가 소진되고 다른 사용자가 어떤 포트에서도 수신할 수 없을 때까지 사용 가능한 모든 포트에서 수신하여 다른 사용자의 포트 가용성을 조작하려고 시도할 수 있습니다. .
답변1
포트에서 수신 대기하려면 소켓을 만들어야 합니다. 이는 다음에 의해 수행됩니다.
sockfd = socket(AF_INET, SOCK_STREAM, 0);
(C에서). 그러면 해당 파일 설명자를 들을 수 있습니다.
사용자가 열 수 있는 최대 파일 수는 ulimit -h
시스템의 최대 파일 수를 참조하세요.
파일의 ulimit를 열기 위해 실제 연결이 필요한지, 아니면 소켓에서 수신하는 것도 파일을 여는 것으로 간주되는지 기억이 나지 않습니다. 듣는 것도 중요하다고 생각해요.
일반 사용자는 1024 이하의 포트에는 바인딩할 수 없습니다.
Selinux와 의류는 또한 사용자가 포트로 바인딩할 수 있는 것을 제어할 수 있어야 합니다(이것을 시도하지 마십시오. 문서에서만 참조).
실제 생활에서는 임시 포트에 대해서만 포트 고갈을 본 적이 있고 서버 포트에 대해서는 한 번도 본 적이 없습니다.