天天看點

Linux學習之網絡相關執行個體應用

1、100.0.0.16/28對應網段的網關位址、廣播位址、可配置設定IP位址範圍。

28位掩碼,掩碼為255.255.255.240,前28位表示網絡位址,
後四位表示可配置設定的主機,是以可配置設定的IP位址範圍為100.0.0.17到100.0.0.30
廣播位址為100.0.0.31,網關為100.0.0.16。
           

2、使用man手冊學習tcpdump指令的使用。

1、tcpdump是用來抓取網絡包内容描述資訊的工具,在抓包結束後,會報告三個count資料:
	captured:tcpdump接收并處理的包數量。
	received by filter:被filter expression比對到的包數量。
	dropped by kernel:緩沖區滿後,被核心丢棄的包數量(取決于系統會不會通知tcpdump)。
2、用法:tcpdump [options] [expression]
3、options:
	-A:以ASCII編碼顯示包内容,對于抓取web頁面非常友好。
	-B cuffer_size:設定作業系統的緩沖區大小。
	-c count:指定最多抓取多少個包,預設會一直抓取。
	-C file_size:配置-w使用,檔案超過file_size之後,自動滾動,原檔案名加上數字字首,從1開始。file_size機關是mb,是整數機關(1000 * 1000 bytes),不是計算機機關(1024 * 1024 bytes)。
	-d:将可讀性強的抓包代碼轉換成标準格式。
	-dd:将可讀性強的抓包代碼轉換成C語言風格的代碼段。
	-D:列出目前系統可用于抓包的網絡接口和序号。
	-e:顯示鍊路層的頭資訊。
	-E:使用[email protected] algo:secret來解密IPsec ESP包。可用算法:des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, none,預設為des-cbc。
	-f:顯示外部ipv4位址時,使用數字格式,而不是使用名稱
	-F file:從檔案中讀取filter expression,忽略指令行中的filter expression。
	-G rotate_seconds:滾動輸出檔案的時間間隔,機關秒。每一次滾動的檔案,會添加字尾,格式為strftime(3)生成的格式。如果同時指定-C選項,檔案名格式采取-C的格式。
	-i:指定監聽的網絡接口(可用-D選項檢視可用接口)。如果不指定,會預設選擇序号最小的非本地回環接口。如果指定any接口,會攫取所有接口的包,但無法開啟混雜模式。
	-I:進入監視模式(隻針對wifi裝置)。使用-I後,指定的接口不能再與網絡通信。
	-j tstamp_type:修改時間戳格式。
	-J:列出接口支援的時間戳格式。
	--time-stamp-precision=tstamp_precision:指定時間戳的精度,具體精度依賴于平台和硬體。可用機關為micro和nano,預設是micro。
	-K:不驗證IP、TCP、UDP的校驗和。
	-l:将結果輸出到标準輸出(預設)。
	-L:列出可用的資料連結層的類型。
	m module:從module檔案中加載SMI MIB module,可指定多個。
	-M secret:如果tcp包中指定了TCP-MD5摘要,使用secret進行校驗。
	-n:以數字方式顯示主機位址。
	-nn:以數字方式顯示端口号。
	-N:不顯示域名。
	-O:不優化packet-matching。
	-p:禁用混雜模式。
	-Q/-P in|out|inout:指定捕捉哪個流向的包。
	-q:隻輸出較少的協定資訊。
	-r file:從檔案中讀取包,可用-指明從标準輸入中讀取。
	-S:輸出TCP序号的絕對值。
	-s:設定抓取包的長度,0代表預設值65536bytes。
	-T type:使用指定的type解析包,可用的類型為aodv、cnfp、rpc、rtp、rtcp、snmp、tftp、vat、wb。
	-t:不輸出時間戳。
	-tt:輸出未格式化的時間戳。
	-ttt:輸出較上一行的相對時間戳。
	-tttt:輸出預設格式的時間戳。
	-ttttt:輸出較第一行的相對時間戳。
	-u:輸出未加密的NFS句柄。
	-U:配合w使用,寫入檔案時,立即寫入,不使用緩沖區。
	-v:輸出詳細資訊。
	-vv:更詳細的資訊。
	-vvv:特别詳細的資訊。
	-w file:将結果寫入檔案,而不是列印到标準輸出。
	-W filecount:指定滾動檔案的最大數量,配合-C使用時,如果超過數量,将從頭開始命名檔案,之前的檔案會被覆寫;配合-G使用時,如果超過數量,将退出。
	-x:列印每個包的頭部資訊,并以16進制格式列印包資料。
	-xx:在-x基礎上,以16進制列印鍊路層頭部。
	-y dataliktype:設定datalinktype。
	-z postrotate-command:配合-C或-G使用,對指定檔案運作command,比如使用-z gzip會用gzip壓縮檔案。
	-Z user:使用指定使用者的身份運作。
4、表達過濾器——expression filter
	type:指定捕獲什麼類型的網絡包。
	host:指定主機,預設值;如host foo。
	net:指定網段;如net 128.3。
	port:指定端口;如port 22。
	portrange:指定端口範圍;如portrange 6000-6008。
	dir:指定捕獲哪個流向的資料包。
	src:捕獲從src流入的包;如src foo。
	dst:捕獲流向dst的包;如dst net 128.3。
	src or dst:捕獲從src流入或流向dst的包;如src or dst port ftp-data。
	src and dst:捕獲從src流向dst的包。
	proto:指定捕獲哪種協定的包,不指定預設捕獲所有協定的包。
ether
fddi
tr
wlan
ip
ip6
arp
rarp
decnet
tcp
udp
and,or,not:條件組合。
           

3、詳細叙述僵屍程序産生的原因以及危害。

1、子程序退出後,還沒有來得及被父程序清理,或父程序沒有調用wait或waitpid等待子程序結束,
也沒有顯式忽略SIGCHLD信号,此子程序即成為僵屍程序;如果父程序退出,僵局程序會被init程序
接管,清理其程序資訊後,殺死僵屍程序;但如果父程序一直不退出(比如服務程序,httpd,
nginx等),僵屍程序就一直存在;
	2、僵屍程序雖然不會被排程執行,但它依然占據一個程序号,也在程序表中占據一行資源,如果
僵屍程序過多,會造成資源大量浪費,甚至造成系統崩潰。
           

4、詳細說明vmstat輸出結果的含義。

procs:程序相關資訊。
	r:運作中或等待運作的程序量。
	b:不可中斷眨眼的程序數量。
	memory:記憶體相關資訊。
	swpd:虛拟記憶體使用量。
	free:實體記憶體剩餘量。
	buff:用于buffer的記憶體量。
	cache:用于cache的記憶體量。
	swap:交換分區資訊。
	si:從磁盤換進的量(kb/s)。
	so:換出到磁盤的量(kb/s)。
	io:io相關資訊。
	bi:從塊裝置讀入的量(blocks/s)。
	bo:寫入到塊裝置的量(blocks/s)。
	system:核心相關資訊。
	in:每秒産生的中斷數量
	cs:每秒的上下文切換數量。
	cpu:cpu時間相關資訊。
	us:使用者空間占用cpu的時間百分比。
	sy:核心空間占用cpu的時間百分比。
	id:空閑時間百分比(2.5.41之前,還包含等待io的時間)。
	wa:等待io的時間百分比(2.5.41之前,被包含在id時間裡)。
	st:被虛拟機偷走的時間(2.6.11之後才有)