【Linux】一步一步学Linux——tcpdump命令(185)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項
- 04. 參考示例
- 05. 總結
- 06. 附錄
01. 命令概述
tcpdump命令是一款sniffer工具,它可以打印所有經過網絡接口的數據包的頭信息,也可以使用-w選項將數據包保存到文件中,方便以后分析。
02. 命令格式
格式:tcpdump [選項] [參數]03. 常用選項
-a:嘗試將網絡和廣播地址轉換成名稱 -c<數據包數目>:收到指定的數據包數目后,就停止進行傾倒操作 -d:把編譯過的數據包編碼轉換成可閱讀的格式,并傾倒到標準輸出 -dd:把編譯過的數據包編碼轉換成C語言的格式,并傾倒到標準輸出 -ddd:把編譯過的數據包編碼轉換成十進制數字的格式,并傾倒到標準輸出 -e:在每列傾倒資料上顯示連接層級的文件頭 -f:用數字顯示網際網絡地址 -F<表達文件>:指定內含表達方式的文件 -i<網絡界面>:使用指定的網絡截面送出數據包 -l:使用標準輸出列的緩沖區 -n:不把主機的網絡地址轉換成名字 -N:不列出域名 -O:不將數據包編碼最佳化 -p:不讓網絡界面進入混雜模式 -q :快速輸出,僅列出少數的傳輸協議信息 -r<數據包文件>:從指定的文件讀取數據包數據 -s<數據包大小>:設置每個數據包的大小 -S:用絕對而非相對數值列出TCP關聯數 -t:在每列傾倒資料上不顯示時間戳記 -tt: 在每列傾倒資料上顯示未經格式化的時間戳記 -T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型 -v:詳細顯示指令執行過程 -vv:更詳細顯示指令執行過程 -x:用十六進制字碼列出數據包資料 -w<數據包文件>:把數據包數據寫入指定的文件04. 參考示例
4.1 監視網卡上所有流過的數據包
[root@localhost ~]# tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes普通情況下,直接啟動tcpdump將監視第一個網絡接口上所有流過的數據包。
4.2 指定網庫的數據包
[root@localhost ~]# tcpdump -i ens33 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes如果不指定網卡,默認tcpdump只會監視第一個網絡接口
4.3 監視指定主機的數據包
[root@localhost ~]# tcpdump host localhost tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes打印所有進入或離開localhost的數據包
4.4 監視本地IP的所有數據包
[root@localhost ~]# tcpdump host 192.168.12.94 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes截獲所有192.168.12.94 的主機收到的和發出的所有的數據包
4.5 打印localhost與 itcast 或者與 deng之間通信的數據包
[root@localhost ~]# tcpdump host localhost and \(itcast or deng\)4.6 截獲主機192.168.12.94和主機192.168.12.95 或192.168.12.96的通信
[root@localhost ~]# tcpdump host 192.168.12.94 and \(192.168.12.95 or 192.168.12.96\) tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes4.7 打印localhost與任何其他主機之間通信的IP 數據包, 但不包括與itcast之間的數據包
[root@localhost ~]# tcpdump ip host localhost and not itcast4.8 獲取主機192.168.12.94除了和主機192.168.12.2之外所有主機通信的ip包
[root@localhost ~]# tcpdump ip host 192.168.12.94 and ! 192.168.12.2 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes4.9 截獲主機localhost發送的所有數據
[root@localhost ~]# tcpdump -i ens33 src host localhost tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes4.10 監視所有送到主機localhost的數據包
[root@localhost ~]# tcpdump -i ens33 dst host localhost tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes4.11 監視指定主機和端口的數據包
[root@localhost ~]# tcpdump tcp port 22 and host 192.168.12.94 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes4.12 監視主機udp協議和端口號為10086
[root@localhost ~]# tcpdump udp port 10086 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes4.13 監視指定網絡的數據包
[root@localhost ~]# tcpdump net ucb-ether打印本地主機與Berkeley網絡上的主機之間的所有通信數據包。
ucb-ether此處可理解為“Berkeley網絡”的網絡地址,此表達式最原始的含義可表達為:打印網絡地址為ucb-ether的所有數據包
4.14 打印所有通過網關snup的ftp數據包
[root@localhost ~]# tcpdump 'gateway snup and (port ftp or ftp-data)'注意:表達式被單引號括起來了,這可以防止shell對其中的括號進行錯誤解析
4.15 打印所有源地址或目標地址是本地主機的IP數據包
[root@localhost ~]# tcpdump ip and not net localnet如果本地網絡通過網關連到了另一網絡,則另一網絡并不能算作本地網絡。
(如果本地網絡通過網關連到了另一網絡, 則另一網絡并不能算作本地網絡.(nt: 此句翻譯曲折,需補充).localnet 實際使用時要真正替換成本地網絡的名字)
05. 總結
06. 附錄
參考:【Linux】一步一步學Linux系列教程匯總
參考:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
總結
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——tcpdump命令(185)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】一步一步学Linux——a
- 下一篇: 【Linux】一步一步学Linux——i