1. 程式人生 > >Linux學習之網路相關例項應用

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之後才有)