Как предотвратить использование порта другой службой в качестве открывающего?

Как предотвратить использование порта другой службой в качестве открывающего?

У меня есть несколько служб, работающих на последовательных портах (прослушивающих их) в ограниченном диапазоне (1024+). Время от времени мне нужно перезапускать эти службы, и случается так, что одна из служб использует порт другой службы в качестве локального порта для подключения к базе данных. В результате другая служба жалуется на невозможность прослушивать now-busy-port. Мне нужно вручную определить службу с помощью netstat, чтобы принудительно сменить порт, перезапустив эту самую службу, чтобы порт теперь был свободен для использования другой службой.

Есть ли способ запретить использование порта в качестве открывающегося и разрешить его открытие только в режиме прослушивания?

Система: Linux

В настоящее время используется диапазон портов 9000-9100

решение1

Обычно эти порты должны быть уже за пределами диапазона "эфемерных" портов (который не то же самое, что и непривилегированные порты). Диапазон задаетсяnet.ipv4.ip_local_port_range sysctl, а в моей системе по умолчанию отображается 32768–60999.

Если local_port_range достаточно велик, это означает, что порт 9000 никогда не должен автоматически выбираться в качестве исходного порта (хотя это не мешает программамявнопривязка к этому порту).

Вы также можете добавить свои порты в net.ipv4.ip_local_reserved_portssysctl (через /etc/sysctl.d); эта опция принимает список отдельных номеров портов, разделенных пробелами.

Связанный контент