您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux中tcp連接不釋放怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“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=指定值”。
本教程操作環境:linux7.3系統、Dell G3電腦。
問題描述
在開發測試時發現斷開與服務器端口后再次連接時拒絕連接。
分析:服務器上查看端口占用情況,假設端口為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中tcp連接不釋放怎么解決”的內容了,經過本文的學習后,相信大家對linux中tcp連接不釋放怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。