linux中tcp連接不釋放怎么辦

解決方法:1、利用修改keepalive配置為合適的值可以快速釋放端口連接,利用echo設置“設置tcp_keepalive_time”即可,語法為“echo “指定值” > ?/proc/sys/net/ipv4/tcp_keepalive_time”;2、編輯“/etc/sysctl.conf”文件,語法為“net.ipv4.tcp_keepalive_time=指定值”。

linux中tcp連接不釋放怎么辦

本教程操作環境:linux7.3系統、Dell G3電腦。

linux中tcp連接不釋放怎么辦

問題描述

在開發測試時發現斷開與服務器端口后再次連接時拒絕連接。

分析:服務器上查看端口占用情況,假設端口為8080。

netstat?-anp?|grep?8080

發現端口8080端口顯示被占用(ip為本機ip確定是上次連接)且狀態為ESTABLISHED,然而實際上連接已經斷開,但是服務端沒有斷開連接,查看TCP的keepalive配置。

sysctl?-a?|grep?keepalive

發現為默認的配置

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

默認情況下在連接空閑7200秒即2個小時后才會發送keepalive探測包來確認連接情況。

解決方案

解決:

1、通過修改keepalive配置為合適的值(如改為200秒)可以快速釋放端口連接。

臨時修改,通過echo設置tcp_keepalive_time。

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

2、永久生效,編輯/etc/sysctl.conf,新增或修改為

net.ipv4.tcp_keepalive_time?=?200

然后執行命令使修改后的配置生效

推薦學習:Linux視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享