/proc/sys/net/ipv4/tcp_keepalive_time」; 2.編輯「/etc/sysctl.conf」文件,語法為「net.ipv4.tcp_keepalive_time=指定值」。"/> /proc/sys/net/ipv4/tcp_keepalive_time」; 2.編輯「/etc/sysctl.conf」文件,語法為「net.ipv4.tcp_keepalive_time=指定值」。">

首頁 >運維 >linux運維 >linux中tcp連線不釋放怎麼辦

linux中tcp連線不釋放怎麼辦

WBOY
WBOY原創
2022-07-13 10:53:153740瀏覽

解決方法: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影片教學

以上是linux中tcp連線不釋放怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn