Linux Ephemeral Port 범위를 변경하는 것이 얼마나 안전합니까 포트 범위가 표시됩니다. sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range

Linux 상자에 다음과 같은 임시 포트 범위가 표시됩니다.

sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

포트 범위를 약 16000에서 시작하도록 확장하고 싶습니다. 여기서 빠른 질문은 다른 응용 프로그램에 따라 범위를 변경하는 것이 얼마나 안전합니까? 다른 응용 프로그램이이 변경의 영향을 받습니까? 응용 프로그램이 지정된 포트 범위에서 포트를 사용하는 경우에만 영향을 받는다는 것을 이해합니다. 그러나 일반적으로 이러한 종류의 문제는 어떻게 처리됩니까?



답변

임시 포트 범위를 변경하면 Mesos를 사용하는 경우 문제가 발생할 수 있습니다 .

Mesos는 호스트의 리소스를 다양한 Mesos Framework에 알리고 광고 된 리소스를 사용하도록 선택할 수 있습니다. 보급 자원에는 CPU, 메모리, 포트 등이 포함 됩니다. Mesos가 보급하는 기본 포트 세트는 31000-32000 입니다. 이것은 기본 Linux 임시 포트 범위 32768-61000 과의 충돌을 피합니다 .

특히 Mesos는 다른 프로세스에서 포트가 사용되는지 여부를 알지 못하고 오케스트레이션하는 엔티티에 대한 포트 할당을 추적합니다 ( Mesos Tasks & Mesos Executors ). 따라서 임시 포트 범위를 Mesos 포트 범위와 겹치도록 변경하면 임의의 프로세스에서 실제로 “Mesos 포트”중 하나 인 임시 포트를 사용하게됩니다. 이로 인해 Mesos는 해당 포트를 Mesos Framework 에 제공 할 수 있으며,이 포트는 해당 포트에 바인딩 할 수 없으므로 Mesos Executor 및 / 또는 Mesos Tasks가 무작위로 실패하는 것처럼 보입니다 .

임시 포트 범위를 늘려야하고 Mesos를 실행해야하는 경우의 구성 매개 변수 mesos-slave를 곧바로 변경하여 광고 포트를 수정할 수 있습니다 .mesos-agent--resources


답변

다음과 같이 로컬 /etc/services파일 에서 해당 범위의 내용을 확인하여 잠재적으로 영향을받는 서비스 목록을 얻을 수 있습니다 .

awk '/^#/ { next } $2+0 >= 16000 && $2+0 < 32768 { print }' /etc/services

또는 권위있는 장소에서 :

wget http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
awk -F, '$2+0 >= 16000 && $2+0 < 32768 { print }' service-names-port-numbers.csv


답변