tcpdump抓包命令

tcpdump抓包命令

tcpdump是一個用于截取網(wǎng)絡(luò)分組脑漫,并輸出分組內(nèi)容的工具讳癌。tcpdump憑借強(qiáng)大的功能和靈活的截取策略,使其成為類UNIX系統(tǒng)下用于網(wǎng)絡(luò)分析和問題排查的首選工具县爬。

tcpdump提供了源代碼矩桂,公開了接口,因此具備很強(qiáng)的可擴(kuò)展性床牧,對于網(wǎng)絡(luò)維護(hù)和入侵者都是非常有用的工具荣回。tcpdump存在于基本的Linux系統(tǒng)中,由于它需要將網(wǎng)絡(luò)界面設(shè)置為混雜模式戈咳,普通用戶不能正常執(zhí)行心软,但具備root權(quán)限的用戶可以直接執(zhí)行它來獲取網(wǎng)絡(luò)上的信息。因此系統(tǒng)中存在網(wǎng)絡(luò)分析工具主要不是對本機(jī)安全的威脅著蛙,而是對網(wǎng)絡(luò)上的其他計算機(jī)的安全存在威脅删铃。

一、概述

顧名思義踏堡,tcpdump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析猎唁。它支持針對網(wǎng)絡(luò)層、協(xié)議顷蟆、主機(jī)诫隅、網(wǎng)絡(luò)或端口的過濾,并提供and帐偎、or逐纬、not等邏輯語句來幫助你去掉無用的信息。

# tcpdump -vv # -vv表示顯示詳細(xì)的信息
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:53:21.444591 IP (tos 0x10, ttl 64, id 19324, offset 0, flags [DF], proto 6, length: 92)

asptest.localdomain.ssh > 192.168.228.244.1858: P 3962132600:3962132652(52) ack 2726525936 win 1266

asptest.localdomain.1077 > 192.168.228.153.domain: [bad udp cksum 166e!] 325+ PTR? 244.228.168.192.in-addr.arpa. (46)

11:53:21.446929 IP (tos 0x0, ttl 64, id 42911, offset 0, flags [DF], proto 17, length: 151) 192.168.228.153.domain > asptest.localdomain.1077: 325 NXDomain q: PTR? 244.228.168.192.in-addr.arpa. 0/1/0 ns: 168.192.in-addr.arpa. (123)

11:53:21.447408 IP (tos 0x10, ttl 64, id 19328, offset 0, flags [DF], proto 6, length: 172) asptest.localdomain.ssh > 192.168.228.244.1858: P 168:300(132) ack 1 win 1266

<==按下[ctrl]-c之后結(jié)束
347 packets captured
1474 packets received by filter
745 packets dropped by kernel

不帶參數(shù)的tcpdump會收集網(wǎng)絡(luò)中所有的信息包頭肮街,數(shù)據(jù)量巨大风题,必須過濾。

二嫉父、選項介紹

tcpdump采用命令行方式沛硅,它的命令大致如下:

tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
               [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ --number ] [ -Q in|out|inout ]
               [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ --immediate-mode ]
               [ expression ]

參數(shù)的含義如下:

參數(shù) 含義
-A 以ASCII格式打印出所有分組,通常用來抓取www的網(wǎng)頁數(shù)據(jù)包數(shù)據(jù)绕辖。
-c 在收到指定的數(shù)量的分組后摇肌,tcpdump就會停止。
-C 在將一個原始分組寫入文件之前仪际,檢查文件當(dāng)前的大小是否超過了參數(shù)file_size 中指定的大小围小。如果超過了指定大小昵骤,則關(guān)閉當(dāng)前文件,然后在打開一個新的文件肯适。參數(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ù)鏈路層的頭部信息,也就是使用數(shù)據(jù)鏈路層的MAC數(shù)據(jù)包數(shù)據(jù)來顯示.
-f 將外部的Internet地址以數(shù)字的形式打印出來樱溉。
-F 從指定的文件中讀取表達(dá)式,忽略命令行中給出的表達(dá)式纬凤。
-i 指定監(jiān)聽的網(wǎng)絡(luò)接口福贞。
-l 使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式,可以把數(shù)據(jù)導(dǎo)出到文件停士。
-L 列出網(wǎng)絡(luò)接口的已知數(shù)據(jù)鏈路挖帘。
-b 在數(shù)據(jù)-鏈路層上選擇協(xié)議,包括ip向瓷、arp肠套、rarp、ipx都是這一層的猖任。
-n 不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字你稚。
-nn 不進(jìn)行端口名稱的轉(zhuǎn)換。
-N 不輸出主機(jī)名中的域名部分朱躺。例如刁赖,‘nic.ddn.mil‘只輸出’nic‘。
-t 在輸出的每一行不打印時間戳长搀。
-O 不運(yùn)行分組分組匹配(packet-matching)代碼優(yōu)化程序宇弛。
-P 不將網(wǎng)絡(luò)接口設(shè)置成混雜模式。
-q 快速輸出源请。只輸出較少的協(xié)議信息枪芒。
-r 從指定的文件中讀取包(這些包一般通過-w選項產(chǎn)生)。
-S 將tcp的序列號以絕對值形式輸出谁尸,而不是相對值舅踪。
-s 從每個分組中讀取最開始的snaplen個字節(jié),而不是默認(rèn)的68個字節(jié)良蛮。
-T 將監(jiān)聽到的包直接解釋為指定的類型的報文抽碌,常見的類型有rpc遠(yuǎn)程過程調(diào)用)和snmp(簡單網(wǎng)絡(luò)管理協(xié)議)。
-t 不在每一行中輸出時間戳决瞳。
-tt 在每一行中輸出非格式化的時間戳
-ttt 輸出本行和前面一行之間的時間差货徙。
-tttt 在每一行中輸出由date處理的默認(rèn)格式的時間戳左权。
-v 輸出一個稍微詳細(xì)的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息痴颊。
-vv 輸出詳細(xì)的報文信息赏迟。
-w 直接將分組寫入文件中,而不是不分析并打印出來祷舀。
-X 可以列出16進(jìn)制以及ASCII的數(shù)據(jù)包內(nèi)容,對于監(jiān)聽數(shù)據(jù)包內(nèi)容很有用.

推薦的一些寫法:

tcpdump -ntv -i xxx # -n表示不將網(wǎng)絡(luò)地址轉(zhuǎn)化為名稱,-t不輸出時間戳,-v輸出一些比較詳細(xì)的信息(這個很好用)

三瀑梗、tcpdump的表達(dá)式介紹

表達(dá)式對應(yīng)命令參數(shù)中最后的可省略的expression.tcpdump利用它作為過濾報文的條件烹笔,如果一個報文滿足表 達(dá)式的條件裳扯,則這個報文將會被捕獲。如果沒有給出任何條件谤职,則網(wǎng)絡(luò)上所有的信息包 將會被截獲饰豺。

表達(dá)式(expression)實(shí)際遵循的是bpf的語法,有關(guān)于bpf的相關(guān)介紹,可以查看這個頁面:
https://biot.com/capstats/bpf.html,下面的部分,基本是此頁面的翻譯.

在表達(dá)式中一般如下幾種類型的關(guān)鍵字:

表達(dá)式由一個或多個表達(dá)元組成(nt: primitive, 表達(dá)元, 可理解為組成表達(dá)式的基本元素). 一個表達(dá)元通常由一個或多個修飾符(qualifiers)后跟一個名字或數(shù)字表示的id組成(nt: 即, qualifiers id).

有三種不同類型的修飾符(或者說限定符):type, dir以及 proto.

type 修飾符指定id 所代表的對象類型, id可以是名字也可以是數(shù)字. 可選的對象類型有: host, net, port 以及portrange(nt: host 表明id表示主機(jī), net表明id是網(wǎng)絡(luò), port 表明id是端口, 而portrange表明id是一個端口范圍). 如, host foo, net 128.3, port 20, portrange 6000-6008(nt: 分別表示主機(jī)foo, 網(wǎng)絡(luò)128.3, 端口20, 端口范圍 6000-6008). 如果不指定type修飾符, id默認(rèn)的修飾符為host.

dir 修飾符描述id 所對應(yīng)的傳輸方向, 即發(fā)往id 還是從id 接收(nt: 而id到底指什么需要看其前面的type修飾符).可取的方向?yàn)? src, dst, src or dst, src and dst.(nt:分別表示, id是傳輸源, id是傳輸目的, id是傳輸源或者傳輸目的, id是傳輸源并且是傳輸目的). 例如, src foo,dst net 128.3, src or dst port ftp-data.(nt: 分別表示符合條件的數(shù)據(jù)包中, 源主機(jī)是foo, 目的網(wǎng)絡(luò)是128.3, 源或目的端口為 ftp-data).如果不指定dir修飾符, id 默認(rèn)的修飾符為src or dst.

proto修飾符描述id所屬的協(xié)議. 常用的協(xié)議有: ether, wlan, ip, ip6, arp, rarp, tcp以及 upd.(nt | rt: ether可理解為物理以太網(wǎng)傳輸協(xié)議; wlan, 無線局域網(wǎng)協(xié)議; ip,ip6 即通常的TCP/IP協(xié)議棧中所使用的ipv4以及ipv6網(wǎng)絡(luò)層協(xié)議;arp, rarp 即地址解析協(xié)議, 反向地址解析協(xié)議; tcp and udp, 即通常TCP/IP協(xié)議棧中的兩個傳輸層協(xié)議).

例如, ether src foo, arp net 128.3, tcp port 21, udp portrange 7000-7009分別表示從以太網(wǎng)地址foo 來的數(shù)據(jù)包,發(fā)往或來自128.3網(wǎng)絡(luò)的arp協(xié)議數(shù)據(jù)包, 發(fā)送或接收端口為21的 tcp協(xié)議數(shù)據(jù)包, 發(fā)送或接收端口范圍為7000-7009的udp協(xié)議數(shù)據(jù)包.

如果不指定proto 修飾符, 則默認(rèn)為與相應(yīng)type匹配的修飾符.

例子:

  1. src foo 含義是 (ip or arp or rarp) src foo (nt: 即, 來自主機(jī)fooip/arp/rarp協(xié)議數(shù)據(jù)包, 默認(rèn)typehost).
  2. net bar 含義是(ip or arp or rarp) net bar (nt: 即, 來自或發(fā)往bar網(wǎng)絡(luò)的ip/arp/rarp協(xié)議數(shù)據(jù)包).
  3. port 53 含義是 (tcp or udp) port 53(nt: 即, 發(fā)送或接收端口為53tcp/udp協(xié)議數(shù)據(jù)包).

對于修飾符后跟id的格式,可理解為, type id是對包最基本的過濾條件: 即對包相關(guān)的主機(jī), 網(wǎng)絡(luò), 端口的限制; dir 表示對包的傳送方向的限制; proto表示對包相關(guān)的協(xié)議限制)

除以上所描述的表達(dá)元('primitive')琼讽, 還有其他形式的表達(dá)元, 并且與上述表達(dá)元格式不同. 比如: gateway, broadcast, less, greater以及算術(shù)表達(dá)式(nt: 其中每一個都算一種新的表達(dá)元). 下面將會對這些表達(dá)元進(jìn)行說明.

表達(dá)元之間還可以通過關(guān)鍵字and, or以及 not 進(jìn)行連接, 從而可組成比較復(fù)雜的條件表達(dá)式. 比如,
host foo and not port ftp and not port ftp-data(nt: 其過濾條件可理解為, 數(shù)據(jù)包的主機(jī)為foo,并且端口不是ftp(端口21) 和ftp-data(端口20, 常用端口和名字的對應(yīng)可在linux 系統(tǒng)中的/etc/service文件中找到)).

為了表示方便, 同樣的修飾符可以被省略, 如tcp dst port ftp or ftp-data or domain與以下的表達(dá)式含義相同tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain.(nt: 其過濾條件可理解為,包的協(xié)議為tcp, 目的端口為ftpftp-datadomain(端口53) ).

可用的表達(dá)元

==========================================
dst host host
如果IPv4/v6 數(shù)據(jù)包的目的ip地址是host, 那么捕獲該數(shù)據(jù)包.host 可以是一個ip地址, 也可以是一個主機(jī)名.

src host host
如果IPv4/v6 數(shù)據(jù)包的源ip地址是host, 則捕獲該數(shù)據(jù)包.host 可以是一個ip地址, 也可以是一個主機(jī)名.

host host
如果IPv4/v6數(shù)據(jù)包的源或目的ip地址是host, 則捕獲該數(shù)據(jù)包.以上的幾個host 表達(dá)式之前可以添加以下關(guān)鍵字:ip, arp, rarp, 以及 ip6.比如:

ip host host

也可以表達(dá)為:

ether proto \ip and host host # 這種表達(dá)方式在下面有說明, 其中ip之前需要有\(zhòng)來轉(zhuǎn)義,因?yàn)閕p 對tcpdump 來說已經(jīng)是一個關(guān)鍵字了.

如果host是一個擁有多個IP的主機(jī), 那么任何一個地址都會用于包的匹配(nt: 即發(fā)向host 的數(shù)據(jù)包的目的地址可以是這幾個IP中的任何一個, 從host 接收的數(shù)據(jù)包的源地址也可以是這幾個IP中的任何一個).

==========================================
ether dst ehost
如果數(shù)據(jù)包(nt: 指tcpdump 可抓取的數(shù)據(jù)包, 包括ip 數(shù)據(jù)包, tcp數(shù)據(jù)包)的以太網(wǎng)目標(biāo)地址是ehost,則捕獲該數(shù)據(jù)包.

ehost 可以是/etc/ethers 文件中的名字或一個數(shù)字地址(nt: 可通過 man ethers 看到對/etc/ethers 文件的描述, 樣例中用的是數(shù)字地址)

ether src ehost
如果數(shù)據(jù)包的以太網(wǎng)源地址是ehost(mac地址), 則捕獲該數(shù)據(jù)包.

ether host ehost
如果數(shù)據(jù)包的以太網(wǎng)源地址或目標(biāo)地址是ehost, 則捕獲該數(shù)據(jù)包..

==========================================

dst net net
如果數(shù)據(jù)包的目標(biāo)地址(IPv4或IPv6格式)的網(wǎng)絡(luò)號字段為net, 則捕獲該數(shù)據(jù)包.

net可以是從網(wǎng)絡(luò)數(shù)據(jù)庫文件/etc/networks 中的名字, 也可以用數(shù)字形式的來表示.

一個數(shù)字IPv4 網(wǎng)絡(luò)號可以用點(diǎn)分四元組(比如, 192.168.1.0), 或點(diǎn)分三元組(比如, 192.168.1), 或點(diǎn)分二元組(比如, 172.16), 或單一單元組(比如,10)來表示.

這四種情況對應(yīng)的網(wǎng)絡(luò)掩碼分別為:四元組:255.255.255.255(這實(shí)際上已經(jīng)是是一個具體的網(wǎng)絡(luò)地址了),三元組:255.255.255.0, 二元組:255.255.0.0, 一元組:255.0.0.0.

src net net
如果數(shù)據(jù)包的源地址(IPv4或IPv6格式)的網(wǎng)絡(luò)號字段為 net, 則捕獲該數(shù)據(jù)包.

net net
如果數(shù)據(jù)包的源或目的地址(IPv4或IPv6格式)的網(wǎng)絡(luò)號字段為 net, 則捕獲該數(shù)據(jù)包.

net net mask netmask
如果數(shù)據(jù)包的源或目的ip地址的網(wǎng)絡(luò)掩碼與netmask匹配, 則捕獲該數(shù)據(jù)包.

此選項之前還可以配合srcdst來進(jìn)一步限定數(shù)據(jù)包的來源,比如.

src net 192.168.1.0 mask 255.255.255.0 

net net/len
如果數(shù)據(jù)包的源或目的地址(IPv4或IPv6格式)的屬于該網(wǎng)段(net/len表示的網(wǎng)段), 則捕獲該數(shù)據(jù)包.

此選項之前還可以配合srcdst來進(jìn)一步限定數(shù)據(jù)包的來源.

src net 192.168.1.0/24 # 表示需要匹配源地址的網(wǎng)絡(luò)編號有24位的數(shù)據(jù)包

dst port port
如果數(shù)據(jù)包(包括ip/tcp, ip/udp, ip6/tcp or ip6/udp協(xié)議)的目的端口為port, 則捕獲該數(shù)據(jù)包.

port 可以是一個數(shù)字也可以是一個名字(相應(yīng)名字可以在/etc/services 中找到該名字, 也可以通過man tcpman udp來得到相關(guān)描述信息 ). 推薦使用數(shù)字.

dst port 80 # 監(jiān)聽目的端口為80的數(shù)據(jù)包

src port port
如果數(shù)據(jù)包的源端口為port, 則捕獲該數(shù)據(jù)包.

port port
如果數(shù)據(jù)包的源或目的端口為port, 則捕獲該數(shù)據(jù)包.

==========================================
dst portrange port1-port2
監(jiān)聽目的端口在[port1, port2]的數(shù)據(jù)包,當(dāng)然,既然存在端口,那么這個數(shù)據(jù)包必然屬于ip/tcp, ip/udp, ip6/tcp 或者ip6/udp這幾種中的一種.

src portrange port1-port2
監(jiān)聽源端口在[port1, port2]范圍內(nèi)的數(shù)據(jù)包.

portrange port1-port2
如果數(shù)據(jù)包的源端口或目的端口在[port1,port2]這個端口范圍, 則捕獲該數(shù)據(jù)包.以上關(guān)于port 的選項都可以在其前面添加關(guān)鍵字:tcp 或者udp對數(shù)據(jù)包加以更嚴(yán)格的限定.

tcp src port 80 # 抓取源端口是80的tcp數(shù)據(jù)包

==========================================

less length
如果數(shù)據(jù)包的長度比length 小或等于length, 則捕獲該數(shù)據(jù)包. 這與len <= length的含義一致.

greater length
如果數(shù)據(jù)包的長度比length 大或等于length, 則捕獲該數(shù)據(jù)包. 這與len >= length的含義一致.

==========================================

ip proto protocol
如果數(shù)據(jù)包為ipv4數(shù)據(jù)包并且其協(xié)議類型為protocol, 則與此對應(yīng)的條件表達(dá)式為真.protocol可以是一個數(shù)字也可以是名字, 比如:icmp, pim, udp, tcp等. 由于tcp , udp 以及icmp是tcpdump 的關(guān)鍵字,所以在這些協(xié)議名字之前必須要用\來進(jìn)行轉(zhuǎn)義(如果在C-shell 中需要用\來進(jìn)行轉(zhuǎn)義). 有時候?yàn)榱藭鴮懛奖?我們可以直接用tcp, upd, icmp來替換,這個其實(shí)是

ip proto p or ip6 proto p

的縮寫,p指代tcp,upd以及icmp.

 tcpdump -i eth0 'ip proto \tcp and host 192.168.3.144

則只打印主機(jī)192.168.3.144發(fā)出或接收的數(shù)據(jù)包中tcp 協(xié)議頭所包含的信息)

==========================================
ether broadcast
如果數(shù)據(jù)包是以太網(wǎng)廣播數(shù)據(jù)包, 則捕獲該數(shù)據(jù)包. ether 關(guān)鍵字是可選的.

ip broadcast
如果數(shù)據(jù)包是IPv4廣播數(shù)據(jù)包, 則捕獲該數(shù)據(jù)包.

==========================================

ether multicast
如果數(shù)據(jù)包是一個以太網(wǎng)多點(diǎn)廣播數(shù)據(jù)包,則捕獲該數(shù)據(jù)包.關(guān)鍵字ether可以省略.

ip multicast
如果數(shù)據(jù)包是ipv4多點(diǎn)廣播數(shù)據(jù)包, 則捕獲該數(shù)據(jù)包.

==========================================

ether proto protocol
如果數(shù)據(jù)包屬于以下以太協(xié)議類型, 則與此對應(yīng)的條件表達(dá)式為真.協(xié)議(protocol)字段, 可以是數(shù)字或以下所列出的名字: ip, ip6, arp, rarp, stp(Spanning tree protocol, 生成樹協(xié)議, 可用于防止網(wǎng)絡(luò)中產(chǎn)生鏈接循環(huán))等.必須要注意的是如果標(biāo)識符也是關(guān)鍵字, 從而必須通過\來進(jìn)行轉(zhuǎn)義.
有時候?yàn)榱藭鴮懛奖?我們往往直接使用ip, ip6, arp, rarp, aarp, decnet, stp來代替,它們其實(shí)是

ether proto p

的一個省略形式,p表示ip, ip6...

expr relop expr
如果關(guān)系為真,就抓取此類數(shù)據(jù)包. relop可以是>, <, >=, <=, =, !=之一, expr是一個算數(shù)表達(dá)式,它由整數(shù)常量,常規(guī)的二進(jìn)制操作符,如[+, -, *, /, &, |, <<, >>],長度操作符,包數(shù)據(jù)訪問器組成.值得注意的是,所有的組成部分都是無符號的,舉個例子, 0x80000000 and 0xffffffff 大于0.可以使用下面的語法,來獲取包中的數(shù)據(jù):

proto [ expr : size ]

proto字段可以是 ether, fddi, wlan, ip, arp, rarp, tcp, udp, icmp, ip6等協(xié)議的名稱,expr用于描述比特偏移,size是可選的,表示我們只對從偏移處開始的size字節(jié)的數(shù)據(jù)感興趣,如果沒有的話,默認(rèn)值為1.

舉個例子, ether[0] & 1 != 0可以抓取所有的多播流量,表達(dá)式ip[0] & 0xf != 5可以抓取到所有的帶選項的ipv4包,表達(dá)式ip[6:2] & 0x1fff = 0可以抓取到所有未分片的ipv4包以及第一個ipv4分片包.

一些偏移量以及字段的值可以用名稱來直接描述,比如說icmptype (ICMP type字段), icmpcode (ICMP code字段), 以及tcpflags (TCP flags字段).

以下的ICMP字段的值是合法的: icmp-echoreply, icmp-unreach, icmp-sourcequench, icmp-redirect, icmp-echo, icmp-routeradvert, icmp-routersolicit, icmp-timxceed, icmp-paramprob, icmp-tstamp, icmp-tstampreply, icmp-ireq, icmp-ireqreply, icmp-maskreq, icmp-maskreply.

以下的TCP flags字段的值是合法的: tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg.

四乏德、輸出結(jié)果介紹

下面我們介紹幾種典型的tcpdump命令的輸出信息

(1) 數(shù)據(jù)鏈路層頭信息

使用命令:

#tcpdump --e host ICE

ICE是一臺裝有linux的主機(jī)。它的MAC地址是0:90:27:58:AF:1A, H219是一臺裝有Solaris的SUN工作站阵难。它的MAC地址是8:0:20:79:5B:46.

上一條命令的輸出結(jié)果如下所示:

21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ICE. telne t 0:0(0) ack 22535 win 8760 (DF)

21:50:12是顯示的時間饶套, 847509是ID號漩蟆,eth0 > 表示從網(wǎng)絡(luò)接口eth0接收該分組, 同理eth0 >表示從網(wǎng)絡(luò)接口設(shè)備eth0發(fā)送分組妓蛮,8:0:20:79:5b:46是主機(jī)H219的MAC地址怠李, 它表明是從源地址H219發(fā)來的分組.0:90:27:58:af:1a 是主機(jī)ICE的MAC地址, 表示該分組的目的地址是ICE蛤克。 ip 是表明該分組是IP分組捺癞,60是分組的長度, h219.33357 > ICE. telnet 表明該分組是從主機(jī)H219的33357端口發(fā)往主機(jī)ICE的 TELNET(23)端口构挤。 ack 22535表明對序列號是222535的包進(jìn)行響應(yīng)髓介。 win 8760表明發(fā) 送窗口的大小是8760。

(2) ARP包的tcpdump輸出信息

使用命令:

#tcpdump arp

得到的輸出結(jié)果是:

22:32:42.802509 eth0 > arp who-has route tell ICE (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)

22:32:42是時間戳筋现, 802509是ID號唐础, eth0 >表明從主機(jī)發(fā)出該分組,arp表明是ARP請求包矾飞, who-has route tell ICE表明是主機(jī)ICE請求主機(jī)route的MAC地址一膨。 0:90:27:58:af:1a 是主機(jī) ICE的MAC地址。

(3) TCP包的輸出信息

用tcpdump捕獲的TCP包的一般輸出信息是:

src > dst: flags data-seqno ack window urgent options

src > dst:表明從源地址到目的地址凰慈, flags是TCP報文中的標(biāo)志信息汞幢,具體描述如下:

標(biāo)識 字符縮寫 描述
S SYN 同步標(biāo)識
F FIN 終止標(biāo)識
R RST 復(fù)位標(biāo)識
P PSH 推送標(biāo)識
. 以上四個標(biāo)識bit全部為0

data-seqno是報文中的數(shù)據(jù)的順序號, ack是下次期望的順序號微谓, window是接收緩存的窗口大小森篷, urgent表明 報文中是否有緊急指針输钩。 Options是選項。

(4) UDP包的輸出信息

用tcpdump捕獲的UDP包的一般輸出信息是:

route.port1 > ICE.port2: udp lenth

UDP十分簡單仲智,上面的輸出行表明從主機(jī)routeport1端口發(fā)出的一個UDP報文 到主機(jī)ICEport2端口买乃,類型是UDP, 包的長度是lenth钓辆。

五剪验、舉例

(1) 想要截獲所有210.27.48.1 的主機(jī)收到的和發(fā)出的所有的分組:

#tcpdump host 210.27.48.1 

(2) 想要截獲主機(jī)210.27.48.1 和主機(jī)210.27.48.2或210.27.48.3的通信,使用命令(注意:括號前的反斜杠是必須的):

#tcpdump host 210.27.48.1 and \(210.27.48.2 or 210.27.48.3 \)

(3) 如果想要獲取主機(jī)210.27.48.1除了和主機(jī)210.27.48.2之外所有主機(jī)通信的ip包前联,使用命令:

#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

(4) 如果想要獲取主機(jī)192.168.228.246接收或發(fā)出的ssh包功戚,并且不轉(zhuǎn)換主機(jī)名使用如下命令:

#tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp

(5) 獲取主機(jī)192.168.228.246接收或發(fā)出的ssh包,并把mac地址也一同顯示:

# tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn

(6) 過濾的是源主機(jī)為192.168.0.1與目的網(wǎng)絡(luò)為192.168.0.0的報頭:

tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24

(7) 過濾源主機(jī)物理地址為XXX的報頭:

tcpdump ether src 00:50:04:BA:9B and dst……

(為什么ether src后面沒有host或者net似嗤?物理地址當(dāng)然不可能有網(wǎng)絡(luò)嘍)啸臀。
(8) 過濾源主機(jī)192.168.0.1和目的端口不是telnet的報頭,并導(dǎo)入到tes.t.txt文件中:

Tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt

ip icmp arp rarptcp烁落、udp乘粒、icmp這些選項等都要放到第一個參數(shù)的位置,用來過濾數(shù)據(jù)報的類型伤塌。

六.man手冊中的一些例子

打印所有進(jìn)入或離開主機(jī)sundown的數(shù)據(jù)包.

tcpdump host sundown

打印主機(jī)helios 與主機(jī)** hot** 或者與 主機(jī)ace 之間通信的數(shù)據(jù)包

tcpdump host helios and \( hot or ace \)

打印主機(jī)ace 與 任何其他主機(jī)之間通信的IP 數(shù)據(jù)包, 但不包括與helios之間的數(shù)據(jù)包.

tcpdump ip host ace and not helios

打印本地主機(jī)與Berkeley網(wǎng)絡(luò)上的主機(jī)之間的所有通信數(shù)據(jù)包.

tcpdump net ucb-ether

打印所有源地址或目標(biāo)地址是本地主機(jī)的IP數(shù)據(jù)包(如果本地網(wǎng)絡(luò)通過網(wǎng)關(guān)連到了另一網(wǎng)絡(luò), 則另一網(wǎng)絡(luò)并不能算作本地網(wǎng)絡(luò).localnet在 實(shí)際使用時要真正替換成本地網(wǎng)絡(luò)的名字.

tcpdump ip and not net localnet

打印長度超過576字節(jié), 并且網(wǎng)關(guān)地址是snupIP數(shù)據(jù)包

tcpdump 'gateway snup and ip[2:2] > 576'

以下列出了tcp, ip頭的結(jié)構(gòu), 以方便查看(需要以等寬字體查看).

TCP 頭格式(rfc793)

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Source Port          |       Destination Port        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        Sequence Number                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Acknowledgment Number                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Data |           |U|A|P|R|S|F|                               |
    | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
    |       |           |G|K|H|T|N|N|                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Checksum            |         Urgent Pointer        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Options                    |    Padding    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             data                              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IPV4 頭格式(rfc791)

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Version|  IHL  |Type of Service|          Total Length         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Identification        |Flags|      Fragment Offset    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Time to Live |    Protocol   |         Header Checksum       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Source Address                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Destination Address                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Options                    |    Padding    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

七.輸出格式

tcpdump 的輸出格式與協(xié)議有關(guān). 以下簡要描述了大部分常用的格式及相關(guān)例子.

鏈路層頭

ARP/RARP 數(shù)據(jù)包

tcpdump對arp/rarp包的輸出信息中會包含請求類型及該請求對應(yīng)的參數(shù). 顯示格式簡潔明了. 以下是從主機(jī)rtsg到主機(jī)csam的rlogin(遠(yuǎn)程登錄)過程開始階段的數(shù)據(jù)包樣例:

arp who-has csam tell rtsg
arp reply csam is-at CSAM

第一行表示:rtsg發(fā)送了一個arp數(shù)據(jù)包(nt:向全網(wǎng)段發(fā)送,arp數(shù)據(jù)包)以詢問csam的以太網(wǎng)地址,csam以她自己的以太網(wǎng)地址做了回應(yīng)(在這個例子中, 以太網(wǎng)地址以大寫的名字標(biāo)識, 而internet地址(即ip地址)以全部的小寫名字標(biāo)識).

如果使用tcpdump -n, 可以清晰看到以太網(wǎng)以及ip地址而不是名字標(biāo)識:

arp who-has 128.3.254.6 tell 128.3.254.68
arp reply 128.3.254.6 is-at 02:07:01:00:01:c4

如果我們使用tcpdump -e, 則可以清晰的看到第一個數(shù)據(jù)包是全網(wǎng)廣播的, 而第二個數(shù)據(jù)包是點(diǎn)對點(diǎn)的:

RTSG Broadcast 0806  64: arp who-has csam tell rtsg
CSAM RTSG 0806  64: arp reply csam is-at CSAM

第一個數(shù)據(jù)包表明:以arp包的源以太地址是RTSG, 目標(biāo)地址是全以太網(wǎng)段, type域的值為16進(jìn)制0806(表示ETHER_ARP即arp包的類型標(biāo)識).包的總長度為64字節(jié).

TCP 數(shù)據(jù)包

通常tcpdump對tcp數(shù)據(jù)包的顯示格式如下:

src > dst: flags data-seqno ack window urgent options

srcdst 是源和目的IP地址以及相應(yīng)的端口. flags 標(biāo)志由S(SYN), F(FIN), P(PUSH, R(RST)等組成,

單獨(dú)一個.表示沒有flags標(biāo)識. 數(shù)據(jù)段順序號(Data-seqno)描述了此包中數(shù)據(jù)所對應(yīng)序列號空間中的一個位置.

ack描述的是同一個連接,同一個方向,下一個本端應(yīng)該接收的(對方應(yīng)該發(fā)送的)數(shù)據(jù)片段的順序號.

window是本端可用的數(shù)據(jù)接收緩沖區(qū)的大小(也是對方發(fā)送數(shù)據(jù)時需根據(jù)這個大小來組織數(shù)據(jù)).

urg(urgent) 表示數(shù)據(jù)包中有緊急的數(shù)據(jù). options 描述了tcp的一些選項, 這些選項都用尖括號來表示(如 <mss 1024>).

src, dstflags 這三個域總是會被顯示. 其他域的顯示與否依賴于tcp協(xié)議頭里的信息.

下面是一個從主機(jī)trsg到csam的一個rlogin應(yīng)用登錄的開始階段.

rtsg.1023 > csam.login: S 768512:768512(0) win 4096 <mss 1024>
csam.login > rtsg.1023: S 947648:947648(0) ack 768513 win 4096 <mss 1024>
rtsg.1023 > csam.login: . ack 1 win 4096
rtsg.1023 > csam.login: P 1:2(1) ack 1 win 4096
csam.login > rtsg.1023: . ack 2 win 4096
rtsg.1023 > csam.login: P 2:21(19) ack 1 win 4096
csam.login > rtsg.1023: P 1:2(1) ack 21 win 4077
csam.login > rtsg.1023: P 2:3(1) ack 21 win 4077 urg 1
csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1

第一行表示有一個數(shù)據(jù)包從rtsg主機(jī)的tcp端口1023發(fā)送到了csam主機(jī)的tcp端口login上. S表示設(shè)置了SYN標(biāo)志. 包的順序號是768512, 并且沒有包含數(shù)據(jù).

如果包含有數(shù)據(jù),那么數(shù)據(jù)的表示格式為:first:last(nbytes), 其含義是此包中數(shù)據(jù)的順序號從first開始直到last結(jié)束灯萍,不包括last. 并且總共包含nbytes的用戶數(shù)據(jù).

沒有捎帶應(yīng)答即ack, 可用的接受窗口的大小為4096bytes, 并且請求端(rtsg)的最大可接受的數(shù)據(jù)段大小是1024字節(jié).

主機(jī)csam 向主機(jī)rtsg 回復(fù)了基本相同的SYN數(shù)據(jù)包, 其區(qū)別只是多了一個piggy-backed ack(nt:捎帶回的ack應(yīng)答, 針對rtsg的SYN數(shù)據(jù)包).

rtsg 同樣針對csam的SYN數(shù)據(jù)包回復(fù)了一ACK數(shù)據(jù)包作為應(yīng)答. .的含義就是此包中沒有標(biāo)志被設(shè)置. 由于此應(yīng)答包中不含有數(shù)據(jù), 所以包中也沒有數(shù)據(jù)段序列號.

提醒! 此ACK數(shù)據(jù)包的順序號只是一個小整數(shù)1. 有如下解釋:tcpdump對于一個tcp連接上的會話, 只打印會話兩端的初始數(shù)據(jù)包的序列號,其后相應(yīng)數(shù)據(jù)包只打印出與初始包序列號的差異.即初始序列號之后的序列號, 可被看作此會話上當(dāng)前所傳數(shù)據(jù)片段在整個要傳輸?shù)臄?shù)據(jù)中的'相對字節(jié)'位置(nt:雙方的第一個位置都是1, 即'相對字節(jié)'的開始編號). -S將覆蓋這個功能,使數(shù)據(jù)包的原始順序號被打印出來.

第六行的含義為:主機(jī)rtsg 向 主機(jī)csam發(fā)送了19字節(jié)的數(shù)據(jù)(字節(jié)的編號為2到20,傳送方向?yàn)閞tsg到csam). 包中設(shè)置了PUSH標(biāo)志.

在第7行,主機(jī)csam回應(yīng)道, 她已經(jīng)從主機(jī)rtsg中收到了21以下的字節(jié), 但不包括21編號的字節(jié). 這些字節(jié)存放在主機(jī)csam的socket的接收緩沖中, 相應(yīng)地,csam的接收緩沖窗口大小會減少19字節(jié)(nt:可以從第5行和第7行win屬性值的變化看出來). csam在第7行這個包中也向rtsg發(fā)送了一個字節(jié). 在第8行和第9行, csam 繼續(xù)向rtsg 分別發(fā)送了兩個只包含一個字節(jié)的數(shù)據(jù)包, 并且這個數(shù)據(jù)包帶PUSH標(biāo)志.

如果頭部含有虛假的屬性信息(比如其長度屬性其實(shí)比頭部實(shí)際長度長或短), tcpdump會為該頭部顯示[bad opt].

如果頭部的長度告訴我們某些選項(nt | rt:從下文來看每聪, 指tcp包的頭部中針對ip包的一些選項, 回頭再翻)會在此包中,而真正的IP(數(shù)據(jù)包的長度又不夠容納這些選項, tcpdump會顯示[bad hdr length].

UDP 數(shù)據(jù)包

UDP 數(shù)據(jù)包的顯示格式旦棉,可通過rwho這個具體應(yīng)用所產(chǎn)生的數(shù)據(jù)包來說明:

        actinide.who > broadcast.who: udp 84

其含義為:actinide主機(jī)上的端口whobroadcast主機(jī)上的端口who發(fā)送了一個udp數(shù)據(jù)包.這個數(shù)據(jù)包包含有84個字節(jié)的用戶數(shù)據(jù).

一些UDP服務(wù)可通過數(shù)據(jù)包的源或目的端口來辨別,也可從所顯示的更高層協(xié)議信息來識別. 比如, Domain Name service requests(DNS 請求).

UDP 名稱服務(wù)請求

名稱服務(wù)請求有如下的格式:

src > dst: id op? flags qtype qclass name (len)

比如有一個實(shí)際顯示為:

h2opolo.1538 > helios.domain: 3+ A? ucbvax.berkeley.edu. (37)

主機(jī)h2opolo 向主機(jī)helios 上運(yùn)行的名稱服務(wù)器查詢ucbvax.berkeley.edu的地址記錄(nt: qtype等于A). 此查詢本身的id號為3.

符號+意味著遞歸查詢標(biāo)志被設(shè)置(nt: dns服務(wù)器可向更高層dns服務(wù)器查詢本服務(wù)器不包含的地址記錄). 這個最終通過IP包發(fā)送的查詢請求數(shù)據(jù)長度為37字節(jié), 其中不包括UDPIP協(xié)議的頭數(shù)據(jù).

因?yàn)榇瞬樵儾僮鳛槟J(rèn)值(nt | rt: normal one的理解), op字段被省略.如果op字段沒被省略, 會被顯示在3+之間. 同樣, qclass也是默認(rèn)值, C_IN, 從而也沒被顯示, 如果沒被忽略, 她會被顯示在A之后.

UDP 名稱服務(wù)應(yīng)答

對名稱服務(wù)應(yīng)答的數(shù)據(jù)包熊痴,tcpdump會有如下的顯示格式

    src > dst:  id op rcode flags a/n/au type class data (len)

比如具體顯示如下:

helios.domain > h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273)
helios.domain > h2opolo.1537: 2 NXDomain* 0/1/0 (97)

第一行表示: 主機(jī)helios 對主機(jī)h2opolo所發(fā)送的3號查詢請求回應(yīng)了3條回答記錄(nt | rt: answer records), 3條名稱服務(wù)器記錄,以及7條附加的記錄. 第一個回答記錄(nt: 3個回答記錄中的第一個)類型為A(nt: 表示地址), 其數(shù)據(jù)為internet地址128.32.137.3.此回應(yīng)UDP數(shù)據(jù)包, 包含273字節(jié)的數(shù)據(jù)(不包含UPD和IP的頭部數(shù)據(jù)). op字段和rcode字段被忽略(nt: op的實(shí)際值為Query, rcode, 即response code的實(shí)際值為NoError), 同樣被忽略的字段還有class 字段(nt | rt: 其值為C_IN, 這也是A類型記錄默認(rèn)取值)

第二行表示: heliosh2opolo所發(fā)送的2號查詢請求做了回應(yīng). 回應(yīng)中, rcode編碼為NXDomain(nt: 表示不存在的域)), 沒有回答記錄,但包含一個名稱服務(wù)器記錄, 不包含權(quán)威服務(wù)器記錄(nt | ck: 從上文來看, 此處的authority records 就是上文中對應(yīng)的additional records).

*表示權(quán)威服務(wù)器回答標(biāo)志被設(shè)置(nt: 從而additional records就表示的是authority records).

由于沒有回答記錄, type, class, data字段都被忽略.

flag字段還有可能出現(xiàn)其他一些字符, 比如-(nt: 表示可遞歸地查詢, 即RA 標(biāo)志沒有被設(shè)置), |(nt: 表示被截斷的消息, 即TC 標(biāo)志被置位). 如果應(yīng)答(nt | ct: 可理解為, 包含名稱服務(wù)應(yīng)答的UDP數(shù)據(jù)包, tcpdump知道這類數(shù)據(jù)包該怎樣解析其數(shù)據(jù))的'question'段一個條目(entry)都不包含(nt: 每個條目的含義, 需補(bǔ)充),'[nq]' 會被打印出來.

要注意的是:名稱服務(wù)器的請求和應(yīng)答數(shù)據(jù)量比較大, 而默認(rèn)的68字節(jié)的抓取長度(nt: snaplen, 可理解為tcpdump的一個設(shè)置選項)可能不足以抓取數(shù)據(jù)包的全部內(nèi)容. 如果你真的需要仔細(xì)查看名稱服務(wù)器的負(fù)載, 可以通過tcpdump 的-s 選項來擴(kuò)大snaplen值.

IP 數(shù)據(jù)包分片

IP分片數(shù)據(jù)包(nt: 即一個大的IP數(shù)據(jù)包切分后生成的小IP數(shù)據(jù)包)有如下兩種顯示格式.

(frag id:size@offset+)
(frag id:size@offset)

(第一種格式表示, 此分片之后還有后續(xù)分片. 第二種格式表示, 此分片為最后一個碎片.)

id 表示分片的編號( 每個小IP包被分配一個分片編號, 以便區(qū)分各個小分片).

size表示此分片的大小 , 不包含分片頭部數(shù)據(jù).

offset表示此分片所含數(shù)據(jù)在原始整個IP包中的偏移.

每個分片都會使tcpdump產(chǎn)生相應(yīng)的輸出打印. 第一個分片包含了高層協(xié)議的頭數(shù)據(jù)(nt:從下文來看, 被破碎IP數(shù)據(jù)包中相應(yīng)tcp頭以及IP頭都放在了第一個碎片中 ), 從而tcpdump會針對第一個分片顯示這些信息, 并接著顯示此分片本身的信息. 其后的一些分片并不包含高層協(xié)議頭信息, 從而只會在顯示源和目的之后顯示分片本身的信息. 以下有一個例子:

這是一個從arizona.edulbl-rtsg.arpa途經(jīng)CSNET網(wǎng)絡(luò)的ftp應(yīng)用通信片段:

arizona.ftp-data > rtsg.1170: . 1024:1332(308) ack 1 win 4096 (frag 595a:328@0+)
arizona > rtsg: (frag 595a:204@328)
rtsg.1170 > arizona.ftp-data: . ack 1536 win 2560

有幾點(diǎn)值得注意:
第一, 第二行的打印中, 地址后面沒有端口號.
這是因?yàn)?strong>TCP協(xié)議信息都放到了第一個分片中, 當(dāng)顯示第二個分片時, 我們無法知道此分片所對應(yīng)TCP包的順序號.

第二, 從第一行的信息中, 可以發(fā)現(xiàn)主機(jī)arizonartsg發(fā)送308字節(jié)的用戶數(shù)據(jù), 而事實(shí)是, 相應(yīng)IP包經(jīng)分片后會總共產(chǎn)生512字節(jié)數(shù)據(jù)(第一個分片包含308字節(jié)的數(shù)據(jù), 第二個分片包含204個字節(jié)的數(shù)據(jù), 這超過了308字節(jié)).

如果你在查找數(shù)據(jù)包的順序號空間中的一些空洞(nt: hole,空洞, 指數(shù)據(jù)包之間的順序號沒有上下銜接上), 512這個數(shù)據(jù)就足夠使你迷茫一陣(nt: 其實(shí)只要關(guān)注308就行,不必關(guān)注分片后的數(shù)據(jù)總量).

一個IP數(shù)據(jù)包如果帶有非IP分片標(biāo)志, 則顯示時會在最后顯示(DF).

時間戳

tcpdump的所有輸出打印行中都會默認(rèn)包含時間戳信息.
時間戳信息的顯示格式如下

hh:mm:ss.frac (nt: 小時:分鐘:秒.(nt: frac未知, 需補(bǔ)充))

此時間戳的精度與內(nèi)核時間精度一致, 反映的是內(nèi)核第一次看到對應(yīng)數(shù)據(jù)包的時間(nt: saw, 即可對該數(shù)據(jù)包進(jìn)行操作). 而數(shù)據(jù)包從物理線路傳遞到內(nèi)核的時間, 以及內(nèi)核花費(fèi)在此包上的中斷處理時間都沒有算進(jìn)來.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末他爸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子果善,更是在濱河造成了極大的恐慌诊笤,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巾陕,死亡現(xiàn)場離奇詭異讨跟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鄙煤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門晾匠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梯刚,你說我怎么就攤上這事凉馆。” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵澜共,是天一觀的道長向叉。 經(jīng)常有香客問我,道長嗦董,這世上最難降的妖魔是什么母谎? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮京革,結(jié)果婚禮上奇唤,老公的妹妹穿的比我還像新娘。我一直安慰自己匹摇,他們只是感情好咬扇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著来惧,像睡著了一般冗栗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上供搀,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機(jī)與錄音钠至,去河邊找鬼葛虐。 笑死,一個胖子當(dāng)著我的面吹牛棉钧,可吹牛的內(nèi)容都是我干的屿脐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼宪卿,長吁一口氣:“原來是場噩夢啊……” “哼的诵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佑钾,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤西疤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后休溶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體代赁,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年兽掰,在試婚紗的時候發(fā)現(xiàn)自己被綠了芭碍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡孽尽,死狀恐怖窖壕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤瞻讽,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布狐蜕,位于F島的核電站,受9級特大地震影響卸夕,放射性物質(zhì)發(fā)生泄漏层释。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一快集、第九天 我趴在偏房一處隱蔽的房頂上張望贡羔。 院中可真熱鬧,春花似錦个初、人聲如沸乖寒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楣嘁。三九已至,卻和暖如春珍逸,著一層夾襖步出監(jiān)牢的瞬間逐虚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工谆膳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叭爱,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓漱病,卻偏偏與公主長得像买雾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杨帽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容