![포트를 열 때 다른 서비스에서 포트를 사용하는 것을 방지하는 방법은 무엇입니까?](https://rvso.com/image/1598550/%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EC%97%B4%20%EB%95%8C%20%EB%8B%A4%EB%A5%B8%20%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90%EC%84%9C%20%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
제한된 범위(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 에 포트를 추가할 수도 있습니다 . 이 옵션은 공백으로 구분된 개별 포트 번호 목록을 사용합니다.