系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux系統(tǒng)如何使用tcpdump命令

Linux系統(tǒng)如何使用tcpdump命令

時間:2015-04-13 16:53:07 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150413/45061.html 手機查看 評論

  tcpdump是Linux命令中的抓包命令,能夠截取并分析網(wǎng)絡傳送的數(shù)據(jù)包,是非常強大的網(wǎng)絡數(shù)據(jù)采集分析工具,那么在Linux系統(tǒng)要如何使用tcpdump命令的,下面小編對tcpdump命令的用法做個簡單的介紹。

 Linux系統(tǒng)如何使用tcpdump命令

  實用命令實例

  默認啟動

  tcpdump

  普通情況下,直接啟動tcpdump將監(jiān)視第一個網(wǎng)絡接口上所有流過的數(shù)據(jù)包。

  監(jiān)視指定網(wǎng)絡接口的數(shù)據(jù)包

  tcpdump -i eth1

  如果不指定網(wǎng)卡,默認tcpdump只會監(jiān)視第一個網(wǎng)絡接口,一般是eth0,下面的例子都沒有指定網(wǎng)絡接口。

  監(jiān)視指定主機的數(shù)據(jù)包

  打印所有進入或離開sundown的數(shù)據(jù)包。

  tcpdump host sundown

  也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發(fā)出的所有的數(shù)據(jù)包

  tcpdump host 210.27.48.1

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

  tcpdump host helios and \( hot or ace \)

  截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信

  tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

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

  tcpdump ip host ace and not helios

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

  tcpdump ip host 210.27.48.1 and ! 210.27.48.2

  截獲主機hostname發(fā)送的所有數(shù)據(jù)

  tcpdump -i eth0 src host hostname

  監(jiān)視所有送到主機hostname的數(shù)據(jù)包

  tcpdump -i eth0 dst host hostname

  監(jiān)視指定主機和端口的數(shù)據(jù)包

  如果想要獲取主機210.27.48.1接收或發(fā)出的telnet包,使用如下命令

  tcpdump tcp port 23 host 210.27.48.1

  對本機的udp 123 端口進行監(jiān)視 123 為ntp的服務端口

  tcpdump udp port 123

  監(jiān)視指定網(wǎng)絡的數(shù)據(jù)包

  打印本地主機與Berkeley網(wǎng)絡上的主機之間的所有通信數(shù)據(jù)包(nt: ucb-ether, 此處可理解為‘Berkeley網(wǎng)絡’的網(wǎng)絡地址,此表達式最原始的含義可表達為: 打印網(wǎng)絡地址為ucb-ether的所有數(shù)據(jù)包)

  tcpdump net ucb-ether

  打印所有通過網(wǎng)關snup的ftp數(shù)據(jù)包(注意, 表達式被單引號括起來了, 這可以防止shell對其中的括號進行錯誤解析)

  tcpdump ‘gateway snup and (port ftp or ftp-data)’

  打印所有源地址或目標地址是本地主機的IP數(shù)據(jù)包

 。ㄈ绻镜鼐W(wǎng)絡通過網(wǎng)關連到了另一網(wǎng)絡, 則另一網(wǎng)絡并不能算作本地網(wǎng)絡。(nt: 此句翻譯曲折,需補充).localnet 實際使用時要真正替換成本地網(wǎng)絡的名字)

  tcpdump ip and not net localnet

  監(jiān)視指定協(xié)議的數(shù)據(jù)包

  打印TCP會話中的的開始和結束數(shù)據(jù)包, 并且數(shù)據(jù)包的源或目的不是本地網(wǎng)絡上的主機。(nt: localnet, 實際使用時要真正替換成本地網(wǎng)絡的名字))

  tcpdump ‘tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet’

  打印所有源或目的端口是80, 網(wǎng)絡層協(xié)議為IPv4, 并且含有數(shù)據(jù),而不是SYN,F(xiàn)IN以及ACK-only等不含數(shù)據(jù)的數(shù)據(jù)包。(ipv6的版本的表達式可做練習)

  tcpdump ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)《《2)) - ((tcp[12]&0xf0)》》2)) != 0)’

 。╪t: 可理解為, ip[2:2]表示整個ip數(shù)據(jù)包的長度, (ip[0]&0xf)《《2)表示ip數(shù)據(jù)包包頭的長度(ip[0]&0xf代表包中的IHL域, 而此域的單位為32bit, 要換算

  成字節(jié)數(shù)需要乘以4, 即左移2. (tcp[12]&0xf0)》》4 表示tcp頭的長度, 此域的單位也是32bit, 換算成比特數(shù)為 ((tcp[12]&0xf0) 》》 4) 《《。,

  即 ((tcp[12]&0xf0)》》2)。。ǎ╥p[2:2] - ((ip[0]&0xf)《《2)) - ((tcp[12]&0xf0)》》2)) != 0 表示: 整個ip數(shù)據(jù)包的長度減去ip頭的長度,再減去

  tcp頭的長度不為0, 這就意味著, ip數(shù)據(jù)包中確實是有數(shù)據(jù)。對于ipv6版本只需考慮ipv6頭中的‘Payload Length’ 與 ‘tcp頭的長度’的差值, 并且其中表達方式‘ip[]’需換成‘ip6[]’。)

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

  tcpdump ‘gateway snup and ip[2:2] 》 576’

  打印所有IP層廣播或多播的數(shù)據(jù)包, 但不是物理以太網(wǎng)層的廣播或多播數(shù)據(jù)報

  tcpdump ‘ether[0] & 1 = 0 and ip[16] 》= 224’

  打印除‘echo request’或者‘echo reply’類型以外的ICMP數(shù)據(jù)包( 比如,需要打印所有非ping 程序產生的數(shù)據(jù)包時可用到此表達式 。

 。╪t: ‘echo reuqest’ 與 ‘echo reply’ 這兩種類型的ICMP數(shù)據(jù)包通常由ping程序產生))

  tcpdump ‘icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply’

標簽 命令

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄