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