日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

tcp連接數(shù)過高原因 查看tcp端口連接數(shù)

一、本次監(jiān)控的服務(wù)器環(huán)境為:
操作系統(tǒng)版本:centos7
zabbix-agnet版本:3.0.8
zabbix-server版本: 3.4.10
二、在安裝之前先了解一下tcp的一些知識 , 各個狀態(tài)的意義如下:
LISTEN – 偵聽來自遠方TCP端口的連接請求;
SYN-SENT – 在發(fā)送連接請求后等待匹配的連接請求;
SYN-RECEIVED – 在收到和發(fā)送一個連接請求后等待對連接請求的確認(rèn);
ESTABLISHED – 代表一個打開的連接 , 數(shù)據(jù)可以傳送給用戶;
FIN-WAIT-1 – 等待遠程TCP的連接中斷請求 , 或先前的連接中斷請求的確認(rèn);
FIN-WAIT-2 – 從遠程TCP等待連接中斷請求;
CLOSE-WAIT – 等待從本地用戶發(fā)來的連接中斷請求;
CLOSING – 等待遠程TCP對連接中斷的確認(rèn);
LAST-ACK – 等待原來發(fā)向遠程TCP的連接中斷請求的確認(rèn);
TIME-WAIT – 等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認(rèn);
CLOSED – 沒有任何連接狀態(tài);
TCP連接過程是狀態(tài)的轉(zhuǎn)換 , 促使發(fā)生狀態(tài)轉(zhuǎn)換的是用戶調(diào)用:OPEN , SEND , RECEIVE , CLOSE , ABORT和STATUS;傳送過來的數(shù)據(jù)段 , 特別那些包括以下標(biāo)記的數(shù)據(jù)段SYN , ACK , RST和FIN;還有超時 , 上面所說的都會使TCP狀態(tài)發(fā)生變化 。
詳解
1、LISTENING狀態(tài)
FTP服務(wù)啟動后首先處于偵聽(LISTENING)狀態(tài) 。
2、ESTABLISHED狀態(tài)
ESTABLISHED的意思是建立連接 。表示兩臺機器正在通信 。
3、CLOSE_WAIT
對方主動關(guān)閉連接或者網(wǎng)絡(luò)異常導(dǎo)致連接中斷 , 這時我方的狀態(tài)會變成CLOSE_WAIT 此時我方要調(diào)用close()來使得連接正確關(guān)閉
4、TIME_WAIT
我方主動調(diào)用close()斷開連接 , 收到對方確認(rèn)后狀態(tài)變?yōu)門IME_WAIT 。TCP協(xié)議規(guī)定TIME_WAIT狀態(tài)會一直持續(xù)2MSL(即兩倍的分 段最大生存期) , 以此來確保舊的連接狀態(tài)不會對新連接產(chǎn)生影響 。處于TIME_WAIT狀態(tài)的連接占用的資源不會被內(nèi)核釋放 , 所以作為服務(wù)器 , 在可能的情 況下 , 盡量不要主動斷開連接 , 以減少TIME_WAIT狀態(tài)造成的資源浪費 。
目前有一種避免TIME_WAIT資源浪費的方法 , 就是關(guān)閉socket的LINGER選項 。但這種做法是TCP協(xié)議不推薦使用的 , 在某些情況下這個操作可能會帶來錯誤 。
5、SYN_SENT狀態(tài)
SYN_SENT狀態(tài)表示請求連接 , 當(dāng)你要訪問其它的計算機的服務(wù)時首先要發(fā)個同步信號給該端口 , 此時狀態(tài)為SYN_SENT , 如果連接成功了就變?yōu)?ESTABLISHED , 此時SYN_SENT狀態(tài)非常短暫 。但如果發(fā)現(xiàn)SYN_SENT非常多且在向不同的機器發(fā)出 , 那你的機器可能中了沖擊波或震蕩波 之類的病毒了 。這類病毒為了感染別的計算機 , 它就要掃描別的計算機 , 在掃描的過程中對每個要掃描的計算機都要發(fā)出了同步請求 , 這也是出現(xiàn)許多 SYN_SENT的原因 。
三、服務(wù)端安裝部署
1、先在服務(wù)器上新建腳本vim
/etc/zabbix/tcp_connections.sh
#!/bin/bash
#netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ | grep -w “ESTABLISHED” |cut -d” ” -f2
#netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ | grep -w “TIME_WAIT” |cut -d” ” -f2
#netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ | grep -w “LISTEN” |cut -d” ” -f2
ARGS=1
if [ $# -ne “$ARGS” ];then

推薦閱讀