linux中tcp連接不釋放怎么辦
解決方法:1、利用修改keepalive配置為合適的值可以快速釋放端口連接,利用echo設(shè)置“設(shè)置tcp_keepalive_time”即可,語法為“echo "指定值" > /proc/sys/net/ipv4/tcp_keepalive_time”;2、編輯“/etc/sysctl.conf”文件,語法為“net.ipv4.tcp_keepalive_time=指定值”。
本教程操作環(huán)境:Linux7.3系統(tǒng)、Dell G3電腦。
linux中tcp連接不釋放怎么辦
問題描述
在開發(fā)測試時發(fā)現(xiàn)斷開與服務(wù)器端口后再次連接時拒絕連接。
分析:服務(wù)器上查看端口占用情況,假設(shè)端口為8080。
netstat -anp |grep 8080
發(fā)現(xiàn)端口8080端口顯示被占用(ip為本機ip確定是上次連接)且狀態(tài)為ESTABLISHED,然而實際上連接已經(jīng)斷開,但是服務(wù)端沒有斷開連接,查看TCP的keepalive配置。
sysctl -a |grep keepalive
發(fā)現(xiàn)為默認的配置
net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 75
默認情況下在連接空閑7200秒即2個小時后才會發(fā)送keepalive探測包來確認連接情況。
解決方案
解決:
1、通過修改keepalive配置為合適的值(如改為200秒)可以快速釋放端口連接。
臨時修改,通過echo設(shè)置tcp_keepalive_time。
echo "200" > /proc/sys/net/ipv4/tcp_keepalive_time
2、永久生效,編輯/etc/sysctl.conf,新增或修改為
net.ipv4.tcp_keepalive_time = 200
然后執(zhí)行命令使修改后的配置生效
推薦學習:Linux視頻教程
以上就是linux中tcp連接不釋放怎么辦的詳細內(nèi)容,更多請關(guān)注其它相關(guān)文章!
版權(quán)聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系網(wǎng)站客服處理。