Solution : 1. Vous pouvez rapidement libérer la connexion du port en modifiant la configuration keepalive à une valeur appropriée. Utilisez echo pour définir "set tcp_keepalive_time". La syntaxe est "echo "specify value" > /proc/sys/net/. ipv4/ tcp_keepalive_time"; 2. Editez le fichier "/etc/sysctl.conf", la syntaxe est "net.ipv4.tcp_keepalive_time=specified value".
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
Description du problème
Pendant le développement et les tests, j'ai constaté que la connexion était refusée lorsque le port du serveur était déconnecté puis reconnecté.
Analyse : Vérifiez l'occupation du port sur le serveur, en supposant que le port est 8080.
netstat -anp |grep 8080
On constate que le port 8080 est occupé (l'IP est l'IP locale et doit être la dernière connexion) et l'état est ESTABLISHED. Cependant, la connexion a effectivement été déconnectée, mais le serveur n'a pas été déconnecté. Vérifiez le TCP. configuration keepalive.
sysctl -a |grep keepalive
Trouvé comme étant la configuration par défaut
net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 75
Par défaut, un paquet de détection keepalive sera envoyé pour confirmer l'état de la connexion après que la connexion soit inactive pendant 7 200 secondes ou 2 heures.
Solution
Solution :
1. En modifiant la configuration keepalive à une valeur appropriée (par exemple en passant à 200 secondes), la connexion du port peut être rapidement libérée.
Modification temporaire, définissez tcp_keepalive_time via echo.
echo "200" > /proc/sys/net/ipv4/tcp_keepalive_time
2. Pour le rendre permanent, éditez /etc/sysctl.conf, ajoutez-le ou modifiez-le en
net.ipv4.tcp_keepalive_time = 200
puis exécutez la commande pour que la configuration modifiée prenne effet
Apprentissage recommandé : Tutoriel vidéo Linux
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!