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

linux中tcp連線不釋放怎麼辦

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2022-07-13 10:53:15
原創
3770 人瀏覽過

解決方法: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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
centos7 - git的linux版本沒有centos的?
來自於 1970-01-01 08:00:00
0
0
0
學習Linux的先行知識
來自於 1970-01-01 08:00:00
0
0
0
Linux下連接資料庫
來自於 1970-01-01 08:00:00
0
0
0
Linux 批次修改檔名
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板