Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was tun, wenn die TCP-Verbindung unter Linux nicht freigegeben ist?

Was tun, wenn die TCP-Verbindung unter Linux nicht freigegeben ist?

WBOY
WBOYOriginal
2022-07-13 10:53:153690Durchsuche

Lösung: 1. Sie können die Portverbindung schnell freigeben, indem Sie die Keepalive-Konfiguration auf einen geeigneten Wert ändern. Verwenden Sie echo, um „tcp_keepalive_time“ festzulegen. Die Syntax lautet „echo „specify value“ > /proc/sys/net/“. ipv4/ tcp_keepalive_time“; 2. Bearbeiten Sie die Datei „/etc/sysctl.conf“. Die Syntax lautet „net.ipv4.tcp_keepalive_time=angegebener Wert“.

Was tun, wenn die TCP-Verbindung unter Linux nicht freigegeben ist?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Was tun, wenn die TCP-Verbindung unter Linux nicht freigegeben wird?

Problembeschreibung

Während der Entwicklung und Tests habe ich festgestellt, dass die Verbindung abgelehnt wurde, wenn der Server-Port getrennt und dann erneut verbunden wurde.

Analyse: Überprüfen Sie die Portbelegung auf dem Server, vorausgesetzt, der Port ist 8080.

netstat -anp |grep 8080

Es ​​wurde festgestellt, dass Port 8080 belegt ist (die IP ist die lokale IP und muss die letzte Verbindung sein) und der Status lautet ESTABLISHED. Die Verbindung wurde jedoch tatsächlich getrennt, der Server wurde jedoch nicht getrennt TCP-Keepalive-Konfiguration.

sysctl -a |grep keepalive

Es ​​wurde festgestellt, dass es sich um die Standardkonfiguration handelt

net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75

Standardmäßig wird ein Keepalive-Erkennungspaket gesendet, um den Verbindungsstatus zu bestätigen, nachdem die Verbindung 7200 Sekunden oder 2 Stunden lang inaktiv war.

Lösung

Lösung:

1. Durch Ändern der Keepalive-Konfiguration auf einen geeigneten Wert (z. B. Änderung auf 200 Sekunden) kann die Portverbindung schnell freigegeben werden.

Vorübergehende Änderung, tcp_keepalive_time über Echo festlegen.

echo "200" >  /proc/sys/net/ipv4/tcp_keepalive_time

2. Um es dauerhaft zu machen, bearbeiten Sie /etc/sysctl.conf, fügen Sie es hinzu oder ändern Sie es in

net.ipv4.tcp_keepalive_time = 200

und führen Sie dann den Befehl aus, damit die geänderte Konfiguration wirksam wird

Empfohlenes Lernen: Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn die TCP-Verbindung unter Linux nicht freigegeben ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn