포트를 열 때 다른 서비스에서 포트를 사용하는 것을 방지하는 방법은 무엇입니까?

포트를 열 때 다른 서비스에서 포트를 사용하는 것을 방지하는 방법은 무엇입니까?

제한된 범위(1024+)의 연속 포트(수신)에서 여러 서비스가 실행되고 있습니다. 때때로 해당 서비스를 다시 시작해야 하며 서비스 중 하나가 다른 서비스의 포트를 로컬 포트로 사용하여 데이터베이스에 연결하는 경우가 있습니다. 결과적으로 다른 서비스는 현재 사용 중인 포트를 수신할 수 없다고 불평합니다. 이 서비스를 다시 시작하여 포트 변경을 강제하려면 netstat로 서비스를 수동으로 결정해야 하므로 이제 다른 서비스에서 포트를 자유롭게 사용할 수 있습니다.

포트가 열기로 사용되는 것을 방지하고 청취 모드에서만 열리도록 허용하는 방법이 있습니까?

시스템: 리눅스

현재 9000-9100의 포트 범위를 사용하고 있습니다.

답변1

일반적으로 이러한 포트는 이미 "임시" 포트 범위(권한이 없는 포트와 동일하지 않음) 외부에 있어야 합니다. 범위는 다음에 의해 설정됩니다.net.ipv4.ip_local_port_range sysctl, 내 시스템에서는 기본적으로 32768–60999를 표시합니다.

local_port_range가 충분히 높으면 포트 9000이 자동으로 소스 포트로 선택되어서는 안 된다는 의미입니다.명시적으로이 포트에 바인딩).

net.ipv4.ip_local_reserved_ports(/etc/sysctl.d를 통해) sysctl 에 포트를 추가할 수도 있습니다 . 이 옵션은 공백으로 구분된 개별 포트 번호 목록을 사용합니다.

관련 정보