linux伺服器上的11中狀態

2021-09-30 16:25:57 字數 2173 閱讀 7388

說明: 通常情況下:乙個正常的tcp連線,都會有三個階段:1、tcp三次握手;2、資料傳送;3、tcp四次揮手

裡面的幾個概念:

客戶端發起乙個和服務建立tcp鏈結的請求,這裡是syn(j)

服務端接受到客戶端的建立請求後,返回兩個資訊: syn(k) + ack(j+1)

客戶端在接受到服務端的ack資訊校驗成功後(j與j+1),返回乙個資訊:ack(k+1)

服務端這時接受到客戶端的ack資訊校驗成功後(k與k+1),不再返回資訊,後面進入資料通訊階段

客戶端/服務端 read/write資料報

客戶端發起關閉請求,傳送乙個資訊:fin(m)

服務端接受到資訊後,首先返回ack(m+1),表明自己已經收到訊息。

服務端在準備好關閉之前,最後傳送給客戶端乙個 fin(n)訊息,詢問客戶端是否準備好關閉了

客戶端接受到服務端傳送的訊息後,返回乙個確認資訊: ack(n+1)

最後,服務端和客戶端在雙方都得到確認時,各自關閉或者**對應的tcp鏈結。

syn_send

syn_received

established

fin_wait1

close_wait

fin_wait2

lask_ack

time_wait

主動關閉方在接收到被動關閉方的fin請求後,傳送成功給對方乙個ack後,將自己的狀態由fin_wait2修改為time_wait,而必須再等2倍的msl(maximum segment lifetime,msl是乙個資料報在internetwork中能存在的時間)時間之後雙方才能把狀態 都改為closed以關閉連線。目前rhel裡保持time_wait狀態的時間為60秒

keepalive策略可以有效的避免進行三次握手和四次關閉的動作

tcpdump [ -adeflnnopqstvx ] [ -c 數量 ] [ -f 檔名 ][ -i 網路介面 ] [ -r 檔名] [ -s snaplen ][ -t 型別 ] [ -w 檔名 ] [表示式 ]

-l    使標準輸出變為緩衝行形式;

-n    不把網路位址轉換成名字;

-c    在收到指定的包的數目後,tcpdump就會停止;

-i    指定監聽的網路介面;

-w    直接將包寫入檔案中,並不分析和列印出來;

-s         指定記錄package的大小,常見 -s 0 ,代表最大值65535,一半linux傳輸最小單元mtu為1500,足夠了

-x         直接輸出package data資料,預設不設定,只能通過-w指定檔案進行輸出

關於型別的關鍵字,主要包括host,net,port

傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src

協議的關鍵字,主要包括fddi,ip ,arp,rarp,tcp,udp等型別

邏輯運算,取非運算是 'not ' '! ', 與運算是'and','&&';或運算 是'or' ,'||'

其他重要的關鍵字如下:gateway, broadcast,less,greater

tcpdump tcp port 80 -n -x -s 0   指定80埠進行輸出

tcpdump tcp port 80 -n -s 0  -w /tmp/tcp.cap

對應的/tmp/tcp.cap基本靠肉眼已經能看一下資訊,比如http header , content資訊等

tcpdump tcp port 80 -n -s 0  -x -l | grep ***x

這樣可以實時對資料報進行字串匹配過濾

線上伺服器apache+jetty,通過apache mod_proxy進行乙個反向**,80 apache埠, 7001 jetty埠

apache埠資料抓包: tcpdump tcp port 80 -n -s 0 -x  -i eth0   注意:指定eth0網路介面

jetty埠資料抓包: tcpdump tcp port 7001 -n -s 0 -x  -i lo           注意:指定loopback網路介面

tcpdump tcp host 10.16.2.85 and port 2100 -s 0 -x 

需要使用tcp表示式的組合,這裡是host指示只監聽該ip

操作: 

注意: 

zabbix監控伺服器的11中狀態

安裝了zabbix 此步驟跳過 本機的ip是 59.110.26.9 2.建立指令碼目錄 1 2 root web02 cd etc zabbix root web02 zabbix mkdir shells 3.上傳zabbix userparameter需要呼叫的指令碼 1 2 3 4 5 6 ...

Linux伺服器上搭建svn伺服器

使用yum安裝svn,命令如下 yum y install subversion安裝完成之後,驗證安裝結果 在 opt目錄下面建立乙個svn目錄,用來作為svn儲存目錄,命令如下 mkdir opt svn執行如下命令,建立乙個倉庫 svnadmin create opt svn myproject...

無狀態伺服器與有狀態伺服器

定義 是指兩個來自相同發起者的請求在伺服器端是否具備上下文關係,具有上下文關係則為有狀態伺服器,沒有則為無狀態伺服器 狀態化請求 那麼伺服器端一般都要儲存請求的相關資訊,每個請求可以預設地使用以前的請求資訊,傳送的資訊量較少 無狀態請求 伺服器端所能夠處理的過程必須全部來自於請求所攜帶的資訊,以及其...