Wie kann verhindert werden, dass der Port von anderen Diensten verwendet wird, als einen zu öffnen?

Wie kann verhindert werden, dass der Port von anderen Diensten verwendet wird, als einen zu öffnen?

Ich habe mehrere Dienste auf aufeinanderfolgenden Ports laufen (und lausche auf ihnen) in einem eingeschränkten Bereich (1024+). Von Zeit zu Zeit muss ich diese Dienste neu starten und es kommt vor, dass einer der Dienste den Port eines anderen Dienstes als lokalen Port verwendet, um eine Verbindung zur Datenbank herzustellen. Als Ergebnis beschwert sich ein anderer Dienst, dass er auf dem jetzt belegten Port nicht lauschen kann. Ich muss den Dienst manuell mit netstat ermitteln, um eine Portänderung zu erzwingen, indem ich genau diesen Dienst neu starte, damit der Port jetzt für die Verwendung durch einen anderen Dienst frei ist.

Gibt es eine Methode, um zu verhindern, dass der Port zum Öffnen verwendet wird, und um zuzulassen, dass er nur im Abhörmodus geöffnet wird?

System: Linux

Derzeit wird der Portbereich von 9000-9100 verwendet.

Antwort1

Normalerweise sollten diese Ports bereits außerhalb des "flüchtigen" Portbereichs liegen (der nicht dasselbe ist wie unprivilegierte Ports). Der Bereich wird durch dennet.ipv4.ip_local_port_range sysctl, und auf meinem System werden standardmäßig 32768–60999 angezeigt.

Wenn der local_port_range hoch genug ist, bedeutet dies, dass Port 9000 nie automatisch als Quellport ausgewählt werden sollte (obwohl dies Programme nicht daran hindert,ausdrücklichBindung an diesen Port).

Sie können Ihre Ports auch zum net.ipv4.ip_local_reserved_portsSysctl hinzufügen (über /etc/sysctl.d); diese Option erfordert eine durch Leerzeichen getrennte Liste einzelner Portnummern.

verwandte Informationen