前言
大家好,這里是浩道Linux,主要給大家分享Linux、Python、網(wǎng)絡(luò)通信、網(wǎng)絡(luò)安全等相關(guān)的IT知識(shí)平臺(tái)。
今天浩道跟大家分享linux網(wǎng)絡(luò)運(yùn)維中常見的命令,掌握好這些命令,在排查故障時(shí)將會(huì)游刃有余!
tcpdump和ethereal可以用來獲取和分析網(wǎng)絡(luò)通訊活動(dòng),他們都是使用libpcap庫來捕獲網(wǎng)絡(luò)封包的。
在混雜模式下他們可以監(jiān)控網(wǎng)絡(luò)適配器的所有通訊活動(dòng)并捕獲網(wǎng)卡所接收的所有幀。
要想設(shè)置網(wǎng)絡(luò)接口為混雜模式并執(zhí)行這些命令來捕獲所有的網(wǎng)絡(luò)封包,需要具有超級(jí)用戶的權(quán)限。
你可以使用這些工具來探究網(wǎng)絡(luò)相關(guān)問題。你可以發(fā)現(xiàn)TCP/IP重發(fā)、窗口大小的縮放、名字解析的問題、網(wǎng)絡(luò)配置錯(cuò)誤等。
注意這些工具只能監(jiān)控網(wǎng)絡(luò)適配器所接收到的幀,并不能監(jiān)控到整個(gè)網(wǎng)絡(luò)的通訊情況。
參數(shù)介紹:
-A 以ASCII格式打印出所有分組,并將鏈路層的頭最小化。
-c 在收到指定的數(shù)量的分組后,tcpdump就會(huì)停止。
-C 在將一個(gè)原始分組寫入文件之前,檢查文件當(dāng)前的大小是否超過了參數(shù)file_size
中指定的大小。如果超過了指定大小,則關(guān)閉當(dāng)前文件,然后在打開一個(gè)新的文件。參數(shù) file_size
的單位是兆字節(jié)(是1,000,000字節(jié),而不是1,048,576字節(jié))。
-d 將匹配信息包的代碼以人們能夠理解的匯編格式給出。
-dd 將匹配信息包的代碼以c語言程序段的格式給出。
-ddd 將匹配信息包的代碼以十進(jìn)制的形式給出。
-D 打印出系統(tǒng)中所有可以用tcpdump截包的網(wǎng)絡(luò)接口。
-e 在輸出行打印出數(shù)據(jù)鏈路層的頭部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作為地址,并且包含了安全參數(shù)索引值spi的IPsec ESP分組。
-f 將外部的Internet地址以數(shù)字的形式打印出來。
-F 從指定的文件中讀取表達(dá)式,忽略命令行中給出的表達(dá)式。
-i 指定監(jiān)聽的網(wǎng)絡(luò)接口。
-l 使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式。
-L 列出網(wǎng)絡(luò)接口的已知數(shù)據(jù)鏈路。
-m 從文件module中導(dǎo)入SMI MIB模塊定義。該參數(shù)可以被使用多次,以導(dǎo)入多個(gè)MIB模塊。
-M 如果tcp報(bào)文中存在TCP-MD5選項(xiàng),則需要用secret作為共享的驗(yàn)證碼用于驗(yàn)證TCP-MD5選選項(xiàng)摘要(詳情可參考RFC 2385)。
-n 不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字。
-N 不輸出主機(jī)名中的域名部分。例如,link.linux265.com 只輸出link。
-t 在輸出的每一行不打印時(shí)間戳。
-O 不運(yùn)行分組分組匹配(packet-matching)代碼優(yōu)化程序。
-P 不將網(wǎng)絡(luò)接口設(shè)置成混雜模式。
-q 快速輸出。只輸出較少的協(xié)議信息。
-r 從指定的文件中讀取包(這些包一般通過-w選項(xiàng)產(chǎn)生)。
-S 將tcp的序列號(hào)以絕對(duì)值形式輸出,而不是相對(duì)值。
-s 從每個(gè)分組中讀取最開始的snaplen個(gè)字節(jié),而不是默認(rèn)的68個(gè)字節(jié)。
-T 將監(jiān)聽到的包直接解釋為指定的類型的報(bào)文,常見的類型有rpc遠(yuǎn)程過程調(diào)用)和snmp(簡單網(wǎng)絡(luò)管理協(xié)議;)。
-t 不在每一行中輸出時(shí)間戳。
-tt 在每一行中輸出非格式化的時(shí)間戳。
-ttt 輸出本行和前面一行之間的時(shí)間差。
-tttt 在每一行中輸出由date處理的默認(rèn)格式的時(shí)間戳。
-u 輸出未解碼的NFS句柄。
-v 輸出一個(gè)稍微詳細(xì)的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息。
-vv 輸出詳細(xì)的報(bào)文信息。
-w 直接將分組寫入文件中,而不是不分析并打印出來。
-x 以16進(jìn)制數(shù)形式顯示每一個(gè)報(bào)文 (去掉鏈路層報(bào)頭) . 可以顯示較小的完整報(bào)文, 否則只顯示snaplen個(gè)字節(jié).
-xx 以16進(jìn)制數(shù)形式顯示每一個(gè)報(bào)文(包含鏈路層包頭)。
-X 以16進(jìn)制和ASCII碼形式顯示每個(gè)報(bào)文(去掉鏈路層報(bào)頭)。
-XX 以16進(jìn)制和ASCII嗎形式顯示每個(gè)報(bào)文(包含鏈路層報(bào)頭)。
-y 設(shè)置tcpdump 捕獲數(shù)據(jù)鏈路層協(xié)議類型
-Z 使tcpdump 放棄自己的超級(jí)權(quán)限(如果以root用戶啟動(dòng)tcpdump, tcpdump將會(huì)有超級(jí)用戶權(quán)限), 并把當(dāng)前tcpdump的用戶ID設(shè)置為user, 組ID設(shè)置為user首要所屬組的ID
舉例:
?
01、抓取所有網(wǎng)絡(luò)包,并在terminal中顯示抓取的結(jié)果,將包以十六進(jìn)制的形式顯示。 tcpdump? 02、抓取所有的網(wǎng)絡(luò)包,并存到 result.cap 文件中。 tcpdump?-w?result.cap 03、抓取所有的經(jīng)過eth0網(wǎng)卡的網(wǎng)絡(luò)包,并存到 result.cap 文件中。 tcpdump?-i?eth0?-w?result.cap 04、抓取源地址是192.168.1.100的包,并將結(jié)果保存到 result.cap 文件中。 tcpdump?src?host?192.168.1.100?-w?result.cap? 05、抓取地址包含是192.168.1.100的包,并將結(jié)果保存到 result.cap 文件中。 tcpdump?host?192.168.1.100?-w?result.cap? 06、抓取目的地址包含是192.168.1.100的包,并將結(jié)果保存到 result.cap 文件中。 tcpdump?dest?host?192.168.1.100?-w?result.cap? 07、抓取主機(jī)地址為?192.168.1.100?的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?host?192.168.1.100 08、抓取包含192.168.1.0/24網(wǎng)段的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?net?192.168.1.0/24 09、抓取網(wǎng)卡eth0上所有包含端口22的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?port?22 10、抓取指定協(xié)議格式的數(shù)據(jù)包,協(xié)議格式可以是「udp,icmp,arp,ip」中的任何一種,例如以下命令: tcpdump?udp??-i?eth0?-vnn 11、抓取經(jīng)過?eth0?網(wǎng)卡的源?ip?是?192.168.1.100?數(shù)據(jù)包,src參數(shù)表示源。 tcpdump?-i?eth0?-vnn?src?host?192.168.1.100 12、抓取經(jīng)過?eth0?網(wǎng)卡目的?ip?是?192.168.1.100?數(shù)據(jù)包,dst參數(shù)表示目的。 ?tcpdump?-i?eth0?-vnn?dst?host?192.168.1.100 13、抓取源端口是22的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?src?port?22 14、抓取源ip是?192.168.1.100?且目的ip端口是22的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?src?host?192.168.1.100?and?dst?port?22 15、抓取源ip是192.168.1.100或者包含端口是22的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?src?host?192.168.1.100?or?port?22 16、抓取源ip是192.168.1.100且端口不是22的數(shù)據(jù)包 tcpdump?-i?eth0?-vnn?src?host?192.168.1.100?and?not?port?22 17、抓取源ip是192.168.1.100且目的端口是22,或源ip是192.168.1.102且目的端口是80的數(shù)據(jù)包。 tcpdump?-i?eth0?-vnn?(?src?host?192.168.1.100?and?dst?port?22?)?or?(?src?host?192.168.1.102?and?dst?port?80?) 18、把抓取的數(shù)據(jù)包記錄存到/tmp/result文件中,當(dāng)抓取100個(gè)數(shù)據(jù)包后就退出程序。 tcpdump?–i?eth0?-vnn?-w?/tmp/result?-c?100 19、從/tmp/result記錄中讀取tcp協(xié)議的數(shù)據(jù)包 tcpdump?-i?eth0??tcp??-vnn?-r?/tmp/result 20、想要截獲所有192.168.1.100?的主機(jī)收到的和發(fā)出的所有的數(shù)據(jù)包: tcpdump?host?192.168.1.100 21、如果想要獲取主機(jī)192.168.1.100除了和主機(jī)192.168.1.101之外所有主機(jī)通信的ip包,使用命令: tcpdump?ip?host?192.168.1.100?and?!?192.168.1.101 22、如果想要獲取主機(jī)?192.168.1.100?接收或發(fā)出的 telnet 包,使用如下命令: tcpdump?tcp?port?23?host192.168.1.100 #查看http請(qǐng)求的header tcpdump?-s?1024?-l?-A?-n?host?192.168.9.56 tcpdump?-s?1024?-l?-A?src?192.168.9.56?or?dst?192.168.9.56 sudo?tcpdump?-A?-s?1492?dst?port?80 #本地網(wǎng)絡(luò)中IP地址為192.168.0.5的主機(jī)現(xiàn)在與外界通信的情況 sudo?tcpdump?-i?eth0?src?host?192.168.0.5 #查看網(wǎng)卡eth0的http請(qǐng)求的tcp包 tcpdump?-i?eth0?port?http tcpdump?-i?eth0?port?http?or?port?smtp?or?port?imap?or?port?pop3?-l?-A?|?egrep?-i?'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|userna?me:|password:|login:|pass?|user?' #查看tcp,upd,icmp非ssh的包 tcpdump?-n?-v?tcp?or?udp?or?icmp?and?not?port?22 #查看http請(qǐng)求的request?包 sudo?tcpdump?-i?eth0?port?80?-w?- #過濾http響應(yīng)的get?host頭信息 sudo?tcpdump?-i?en1?-n?-s?0?-w?-?|?grep?-a?-o?-E?"GET?/.*|Host:?.*" #DNS查詢請(qǐng)求響應(yīng)包 sudo?tcpdump?-i?en0?'udp?port?53' #nmap?-sP指定使用Ping?echo?進(jìn)行掃描?/24查看目的網(wǎng)絡(luò)有多少主機(jī)處于運(yùn)行狀態(tài) nmap?-sP?192.168.0.1 nmap?-sP?192.168.0.0/24 nmap?-O?www.baidu.com #Netstat主要用于Linux/Unix主機(jī)察看自身的網(wǎng)絡(luò)狀況,如開啟的端口、在為哪些用戶服務(wù)以及服務(wù)的狀態(tài) netstat?-a netstat?-nlp #netcat掃描機(jī)器開放的端口 nc?-z?-v?-n?172.31.100.7?21-25 #netcat 命令會(huì)連接開放端口21并且打印運(yùn)行在這個(gè)端口上服務(wù)的banner信息。 nc?-v?172.31.100.7?21 #輸出網(wǎng)絡(luò)的路由表 route #顯示結(jié)果包括服務(wù)器已經(jīng)運(yùn)行了多長時(shí)間,有多少登陸用戶和對(duì)服務(wù)器性能的總體評(píng)估(load average)。 uptime #監(jiān)控?eth1?的網(wǎng)卡的流量? iftop?-i?eth1? #以位元組(bytes?即字節(jié))為單位顯示流量(預(yù)設(shè)是位元?bits):? iftop?-B? #直接顯示?IP,?不進(jìn)行DNS?反解:? iftop?-n? #直接顯示連接埠編號(hào),?不顯示服務(wù)名稱:? iftop?-N? #顯示某個(gè)網(wǎng)段進(jìn)出封包流量? iftop?-F?192.168.1.0/24?or?192.168.1.0/255.255.255.0? #網(wǎng)絡(luò)流量實(shí)時(shí)監(jiān)控工具之nload,查看網(wǎng)卡eth0的流量 nload?-n?eth0 #查看各個(gè)網(wǎng)卡的流量 nload?-h #IPTraf是一個(gè)網(wǎng)絡(luò)監(jiān)控工具,功能比nload更強(qiáng)大,可以監(jiān)控所有的流量,IP流量,按協(xié)議分的流量,還可以設(shè)置過濾器 iptraf #查看網(wǎng)絡(luò)接口當(dāng)前配置與接口命名: ifconfig #打開(up)或關(guān)閉(down)適配器 ifconfig?<網(wǎng)絡(luò)名>?#為適配器分配IP地址: ifconfig?<網(wǎng)絡(luò)名>? #為適配器分配第二個(gè)IP地址: ifconfig?<網(wǎng)絡(luò)名:實(shí)例數(shù)>? #顯示某個(gè)網(wǎng)絡(luò)適配器的驅(qū)動(dòng)信息,適用于查詢軟件兼容性的情況: ethtool?-i?eth0 #顯示網(wǎng)絡(luò)數(shù)據(jù): ethtool?-S #設(shè)置適配器連接速度(Mbps) ethtool?speed?<10|100|1000> #iwconfig 查基本的Wi-Fi網(wǎng)絡(luò)設(shè)置,如SSID、channel和加密等細(xì)節(jié)。此外還可以修改一些高級(jí)設(shè)置,包括接收敏感度,RTS/CTS,碎片,以及重試數(shù) #顯示當(dāng)前無線設(shè)置,包括接口名稱: iwconfig #設(shè)置ESSID(擴(kuò)展服務(wù)設(shè)置識(shí)別器)或網(wǎng)絡(luò)名: iwconfig?<接口名>?essid?<網(wǎng)絡(luò)名> #wget wget?-S?--spider?http://osswin.sourceforge.net/?2>&1?|?grep?Mod #查看mac地址 cat?/sys/class/net/*/address #查看eth0的ip ifconfig?eth0?|?awk?'/inet?addr/?{split?($2,A,":");?print?A[2]}' #curl?查看頁面對(duì)應(yīng)的domail?name curl?-s?http://en.m.wikipedia.org/wiki/List_of_Internet_top-level_domains?|?sed?-n?'/ /{s/<[^>]*>//g;p}' #talnet telnet?localhost?6666 #查看所有的網(wǎng)絡(luò)接口 awk?'{print?$1}'?/proc/net/dev|grep?:|sed?"s/:.*//g" #查看DNS?server版本好 nslookup?-q=txt?-class=CHAOS?version.bind?NS.PHX5.NEARLYFREESPEECH.NET
?
審核編輯:湯梓紅
評(píng)論