国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux網絡分析必備技能:tcpdump實戰詳解

系統 Linux
今天要分享的是 tcpdump,它是 Linux 系統中特別有用的網絡工具,通常用于故障診斷、網絡分析,功能非常的強大。

[[383149]]

今天要分享的是 tcpdump,它是 Linux 系統中特別有用的網絡工具,通常用于故障診斷、網絡分析,功能非常的強大。

相對于其它 Linux 工具而言,tcpdump 是復雜的。當然我也不推薦你去學習它的全部,學以致用,能夠解決工作中的問題才是關鍵。

本文會從應用場景和基礎原理出發,提供豐富的實踐案例,讓你快速的掌握 tcpdump 的核心使用方法,足以應對日常工作的需求。

應用場景

在日常工作中遇到的很多網絡問題都可以通過 tcpdump 優雅的解決:

1. 相信大多數同學都遇到過 SSH 連接服務器緩慢,通過 tcpdump 抓包,可以快速定位到具體原因,一般都是因為 DNS 解析速度太慢。

2. 當我們工程師與用戶面對網絡問題爭執不下時,通過 tcpdump 抓包,可以快速定位故障原因,輕松甩鍋,毫無壓力。

3. 當我們新開發的網絡程序,沒有按照預期工作時,通過 tcpdump 收集相關數據包,從包層面分析具體原因,讓問題迎刃而解。

4. 當我們的網絡程序性能比較低時,通過 tcpdump 分析數據流特征,結合相關協議來進行網絡參數優化,提高系統網絡性能。

5. 當我們學習網絡協議時,通過 tcpdump 抓包,分析協議格式,幫助我們更直觀、有效、快速的學習網絡協議。

上述只是簡單羅列幾種常見的應用場景,而 tcpdump 在網絡診斷、網絡優化、協議學習方面,確實是一款非常強大的網絡工具,只要存在網絡問題的地方,總能看到它的身影。

熟練的運用 tcpdump,可以幫助我們解決工作中各種網絡問題,下邊我們先簡單學習下它的工作原理。

工作原理

tcpdump 是 Linux 系統中非常有用的網絡工具,運行在用戶態,本質上是通過調用 libpcap 庫的各種 api 來實現數據包的抓取功能。

通過上圖,我們可以很直觀的看到,數據包到達網卡后,經過數據包過濾器(BPF)篩選后,拷貝至用戶態的 tcpdump 程序,以供 tcpdump 工具進行后續的處理工作,輸出或保存到 pcap 文件。

數據包過濾器(BPF)主要作用,就是根據用戶輸入的過濾規則,只將用戶關心的數據包拷貝至 tcpdump,這樣能夠減少不必要的數據包拷貝,降低抓包帶來的性能損耗。

思考:這里分享一個真實的面試題

面試官:如果某些數據包被 iptables 封禁,是否可以通過 tcpdump 抓到包?

通過上圖,我們可以很輕易的回答此問題。

因為 Linux 系統中 netfilter 是工作在協議棧階段的,tcpdump 的過濾器(BPF)工作位置在協議棧之前,所以當然是可以抓到包了!

我們理解了 tcpdump 基本原理之后,下邊直接進入實戰!

實戰:基礎用法

我們先通過幾個簡單的示例來介紹 tcpdump 基本用法。

1. 不加任何參數,默認情況下將抓取第一個非 lo 網卡上所有的數據包 

  1. $ tcpdump  

2.  抓取 eth0 網卡上的所有數據包 

  1. $ tcpdump -i eth0 

3. 抓包時指定 -n 選項,不解析主機和端口名。這個參數很關鍵,會影響抓包的性能,一般抓包時都需要指定該選項。 

  1. $ tcpdump -n -i eth0 

4.  抓取指定主機  192.168.1.100 的所有數據包 

  1. $ tcpdump -ni eth0 host 192.168.1.100 

5. 抓取指定主機 10.1.1.2 發送的數據包 

  1. $ tcpdump -ni eth0 src host 10.1.1.2 

6. 抓取發送給 10.1.1.2 的所有數據包 

  1. $ tcpdump -ni eth0 dst host 10.1.1.2 

7. 抓取 eth0 網卡上發往指定主機的數據包,抓到 10 個包就停止,這個參數也比較常用 

  1. $ tcpdump -ni eth0 -c 10 dst host 192.168.1.200 

8. 抓取 eth0 網卡上所有 SSH 請求數據包,SSH 默認端口是 22 

  1. $ tcpdump -ni eth0 dst port 22 

9. 抓取 eth0 網卡上 5 個 ping 數據包 

  1. $ tcpdump -ni eth0 -c 5 icmp 

10. 抓取 eth0 網卡上所有的 arp 數據包 

  1. $ tcpdump -ni eth0 arp 

11. 使用十六進制輸出,當你想檢查數據包內容是否有問題時,十六進制輸出會很有幫助。 

  1. $ tcpdump -ni eth0 -c 1 arp -X  
  2. listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes  
  3. 12:13:31.602995 ARP, Request who-has 172.17.92.133 tell 172.17.95.253, length 28  
  4.     0x0000:  0001 0800 0604 0001 eeff ffff ffff ac11  ................  
  5.     0x0010:  5ffd 0000 0000 0000 ac11 5c85            _.........\. 

12. 只抓取 eth0 網卡上 IPv6 的流量

  1. $ tcpdump -ni eth0 ip6 

13. 抓取指定端口范圍的流量 

  1. $ tcpdump -ni eth0 portrange 80-9000 

14. 抓取指定網段的流量 

  1. $ tcpdump -ni eth0 net 192.168.1.0/24 

實戰:高級進階

tcpdump 強大的功能和靈活的策略,主要體現在過濾器(BPF)強大的表達式組合能力。

本節主要分享一些常見的所謂高級用法,希望讀者能夠舉一反三,根據自己實際需求,來靈活使用它。

1. 抓取指定客戶端訪問 ssh 的數據包 

  1. $ tcpdump -ni eth0 src 192.168.1.100 and dst port 22 

2. 抓取從某個網段來,到某個網段去的流量 

  1. $ tcpdump -ni eth0 src net 192.168.1.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16 

3. 抓取來自某個主機,發往非 ssh 端口的流量 

  1. $ tcpdump -ni eth0 src 10.0.2.4 and not dst port 22 

4. 當構建復雜查詢的時候,你可能需要使用引號,單引號告訴 tcpdump 忽略特定的特殊字符,這里的 () 就是特殊符號,如果不用引號的話,就需要使用轉義字符 

  1. $ tcpdump -ni eth0 'src 10.0.2.4 and (dst port 3389 or 22)' 

5. 基于包大小進行篩選,如果你正在查看特定的包大小,可以使用這個參數

小于等于 64 字節:

  1. $ tcpdump -ni less 64 

大于等于 64 字節:

  1. $ tcpdump -ni eth0 greater 64 

等于 64 字節: 

  1. $ tcpdump -ni eth0 length == 64 

6. 過濾 TCP 特殊標記的數據包

抓取某主機發送的 RST 數據包: 

  1. $ tcpdump -ni eth0 src host 192.168.1.100 and 'tcp[tcpflags] & (tcp-rst) != 0' 

抓取某主機發送的 SYN 數據包: 

  1. $ tcpdump -ni eth0 src host 192.168.1.100 and 'tcp[tcpflags] & (tcp-syn) != 0' 

抓取某主機發送的 FIN 數據包: 

  1. $ tcpdump -ni eth0 src host 192.168.1.100 and 'tcp[tcpflags] & (tcp-fin) != 0' 

抓取 TCP 連接中的 SYN 或 FIN 包 

  1. $ tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0' 

7. 抓取所有非 ping 類型的 ICMP 包 

  1. $ tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply' 

8. 抓取端口是 80,網絡層協議為 IPv4, 并且含有數據,而不是 SYN、FIN 以及 ACK 等不含數據的數據包 

  1. $ tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' 

解釋一下這個復雜的表達式,具體含義就是,整個 IP 數據包長度減去 IP 頭長度,再減去 TCP 頭的長度,結果不為 0,就表示數據包有 data,如果還不是很理解,需要自行補一下 tcp/ip 協議

9. 抓取 HTTP 報文,0x4754 是 GET 前兩字符的值,0x4854 是 HTTP 前兩個字符的值 

  1. $ tcpdump  -ni eth0 'tcp[20:2]=0x4745 or tcp[20:2]=0x4854' 

常用選項

通過上述的實戰案例,相信大家已經掌握的 tcpdump 基本用法,在這里來詳細總結一下常用的選項參數。

(一)基礎選項

  •  -i:指定接口
  •  -D:列出可用于抓包的接口
  •  -s:指定數據包抓取的長度
  •  -c:指定要抓取的數據包的數量
  •  -w:將抓包數據保存在文件中
  •  -r:從文件中讀取數據
  •  -C:指定文件大小,與 -w 配合使用
  •  -F:從文件中讀取抓包的表達式
  •  -n:不解析主機和端口號,這個參數很重要,一般都需要加上
  •  -P:指定要抓取的包是流入還是流出的包,可以指定的值 in、out、inout

(二)輸出選項

  •  -e:輸出信息中包含數據鏈路層頭部信息
  •  -t:顯示時間戳,tttt 顯示更詳細的時間
  •  -X:顯示十六進制格式
  •  -v:顯示詳細的報文信息,嘗試 -vvv,v 越多顯示越詳細

過濾表達式

tcpdump 強大的功能和靈活的策略,主要體現在過濾器(BPF)強大的表達式組合能力。

(一)操作對象

表達式中可以操作的對象有如下幾種:

  •  type,表示對象的類型,比如:host、net、port、portrange,如果不指定 type 的話,默認是 host
  •  dir:表示傳輸的方向,可取的方式為:src、dst。
  •  proto:表示協議,可選的協議有:ether、ip、ip6、arp、icmp、tcp、udp。

(二)條件組合

表達對象之間還可以通過關鍵字 and、or、not 進行連接,組成功能更強大的表達式。

  •  or:表示或操作
  •  and:表示與操作
  •   not:表示非操作

建議看到這里后,再回頭去看實戰篇章的示例,相信必定會有更深的理解。如果是這樣,那就達到了我預期的效果了!

經驗

到這里就不再加新知識點了,分享一些工作中總結的經驗:

1. 我們要知道 tcpdump 不是萬能藥,并不能解決所有的網絡問題。

2. 在高流量場景下,抓包可能會影響系統性能,如果是在生產環境,請謹慎使用!

3. 在高流量場景下,tcpdump 并不適合做流量統計,如果需要,可以使用交換機鏡像的方式去分析統計。

4. 在 Linux 上使用 tcpdump 抓包,結合 wireshark 工具進行數據分析,能事半功倍。

5. 抓包時,盡可能不要使用 any 接口來抓包。

6. 抓包時,盡可能指定詳細的數據包過濾表達式,減少無用數據包的拷貝。

7. 抓包時,盡量指定 -n 選項,減少解析主機和端口帶來的性能開銷。

最后

通過上述內容,我們知道 tcpdump 是一款功能強大的故障診斷、網絡分析工具。在我們的日常工作中,遇到的網絡問題總是能夠通過 tcpdump 來解決。

不過 tcpdump 相對于其它 Linux 命令來說,會復雜很多,但鑒于它強大功能的誘惑力,我們多花一些時間是值得的。要想很好地掌握 tcpdump,需要對網絡報文(TCP/IP協議)有一定的了解。

當然,對于簡單的使用來說,只要有網絡基礎概念就行,掌握了 tcpdump 常用方法,就足以應付工作中大部分網絡相關的疑難雜癥了。 

 

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

2021-02-26 05:38:39

Linux網絡Tcpdump

2013-12-18 10:56:48

Linux運維運維技能

2021-01-21 10:50:03

僵尸網絡FreakOutLinux 系統

2010-05-25 14:32:09

Linux tcpdu

2009-08-13 21:51:18

2015-07-06 10:06:57

網絡分析高級運營分析

2022-07-05 10:50:56

運維Linuxtcpdump

2009-11-17 18:55:44

2009-11-17 17:26:03

2009-12-31 10:36:48

網絡分析高彥剛

2016-10-15 00:03:59

社交網絡分析SNA

2013-08-26 10:10:23

2013-04-09 09:51:25

科來網絡分析

2017-05-03 08:59:07

網絡分析數據

2009-11-18 16:44:58

2015-12-11 10:09:38

2011-04-11 13:58:09

TCP

2016-02-23 13:16:08

網絡監控網絡可用性監控系統

2022-10-18 10:00:09

Linuxtcpdump命令

2009-11-18 16:37:20

點贊
收藏

51CTO技術棧公眾號

黄大色黄女片18第一次| 制服丝袜一区二区三区| 国模视频一区二区| 菠萝菠萝蜜在线观看| 日本一区二区三区国色天香 | 亚洲在线日韩| 欧美一乱一性一交一视频| 中国字幕a在线看韩国电影| 亚洲va国产天堂va久久en| 亚洲精品一区二区三| 五月天综合网站| 欧美黑人xxx| 久久久一本精品| 91精品在线观看入口| 亚州色图欧美色图| 亚洲精品日韩综合观看成人91| 97在线国产视频| 久久这里有精品15一区二区三区| 成人网在线免费观看| 精品久久ai| 日韩在线精品视频| 成人性教育av免费网址| 日韩片之四级片| 1区2区3区在线观看| 欧美日韩国产黄| 国产精品视频一区二区图片| 久久久久高清精品| 国产 欧美 日本| 精品亚洲免费视频| 欧美人妇做爰xxxⅹ性高电影| 国产99午夜精品一区二区三区 | 牛牛精品视频在线| 日韩欧美在线视频日韩欧美在线视频| 日韩欧美xxxx| 不卡一区在线观看| 国内精品视频一区二区三区| 国产成人综合在线播放| 一区二区三区|亚洲午夜| 视频一区免费在线观看| 女同一区二区| 西西裸体人体做爰大胆久久久| 成人写真福利网| 久久一本综合| 91久久国产精品| 欧美日韩成人| 精品一区日韩成人| 日韩精品一级中文字幕精品视频免费观看 | 欧美精品自拍偷拍| 老司机在线看片网av| 欧美午夜精品久久久久久超碰| 久久国产精品高清一区二区三区| 精品福利视频导航| 福利视频在线看| 91精品国产一区二区三区香蕉| 国产欧美黑人| 精品视频在线播放免| 96av在线| 久久综合五月天| 亚洲美女15p| 亚洲一区二区三区久久 | 国产女人18毛片| 国产精品一区久久久久| 国产一区 在线播放| 91麻豆蜜桃一区二区三区| 国产三级三级三级看三级| 国产精品久久久久久久久免费丝袜| av免费看大片| 欧美日韩综合不卡| www视频在线观看| 欧美成人精品h版在线观看| 久久婷婷国产| 国产伦精品一区二区| 国产中文字幕精品| 成人黄色一区二区| 欧美日韩人人澡狠狠躁视频| 在线观看中文字幕的网站| 色99之美女主播在线视频| 四虎884aa成人精品最新| av一区和二区| 国产精品456| 五月天丁香婷| 精品国产乱码久久久久久免费| 91成人短视频在线观看| 国产日韩精品视频| 久久av资源网| 国产国语**毛片高清视频| 日韩午夜中文字幕| theporn国产在线精品| 亚洲va电影大全| 国产成人精品免费看| 免费特级黄毛片| 欧美大片在线观看| 欧美影院天天5g天天爽| 明星裸体视频一区二区| 国产精品视频麻豆| 欧美xxxx少妇| 欧美一区二区三区艳史| 人妖欧美一区二区| 色琪琪丁香婷婷综合久久| 亚洲精品美女在线观看| 亚洲小说图片视频| 今天免费高清在线观看国语| 亚洲高清在线精品| 九七电影院97理论片久久tvb| 亚洲精品日韩av| 国产亚洲一区字幕| 日韩特级毛片| 国产精品久久视频| av日韩在线网站| 国产调教视频在线观看| 日韩av免费在线播放| 丁香婷婷深情五月亚洲| 91精品大全| 国产精品国内视频| 26uuu国产在线精品一区二区| 永久免费在线观看视频| 国产99久久久欧美黑人| 99久久综合99久久综合网站| 成人日韩欧美| 91精品天堂| 亚洲欧美电影一区二区| 日韩福利影视| 亚洲人成人77777线观看| 色婷婷国产精品综合在线观看| 精品视频在线播放一区二区三区 | 欧美日韩视频免费观看| 成人黄色片视频网站| 99国产精品久久| 高清电影在线免费观看| 91久久国产精品91久久性色| 国产精品国产a级| 日本a人精品| 欧美一二三四五区| 91久久免费观看| 色狮一区二区三区四区视频| 亚洲成人天堂网| 久久福利视频网| 99久久婷婷国产综合精品| xxxx成人| 日韩精品一区二区三区四区五区| 在线视频一区二区免费| 四季av在线一区二区三区| 国产免费视频| 欧美二区在线播放| 99精品视频免费在线观看| 在线中文字幕播放| 日本午夜精品电影| 91精品啪在线观看国产60岁| 欧美激情第10页| 韩国福利在线| 国产伦精品一区二区三区视频黑人 | 亚洲欧美卡通另类91av| 小草在线视频在线免费视频| 日韩av电影国产| 亚洲精品视频在线| 你懂的在线观看一区二区| 妺妺窝人体色www在线观看| 中文字幕亚洲激情| 成人avav在线| 久久三级毛片| 欧美污视频网站| 久久久久成人网| 中文字幕制服丝袜一区二区三区| 极品尤物一区| 日本成本人片免费观看| 国产精品爱啪在线线免费观看| 亚洲天堂成人在线观看| 亚洲男人都懂第一日本| 国产网站av| 亚洲va码欧洲m码| 欧美日韩国产小视频在线观看| 久久aⅴ国产紧身牛仔裤| 蜜桃传媒在线观看免费进入| 中文字幕综合在线观看| 中文字幕精品久久久久| 国产精品午夜在线观看| 欧洲杯什么时候开赛| 日本高清中文字幕二区在线| 久久久久一区二区三区| 日韩精品在线观看一区| 久久天堂av综合合色蜜桃网| 妖精视频一区二区三区免费观看| 中文字幕在线观看第一页| 精品一卡二卡三卡四卡日本乱码| 欧美tickling网站挠脚心| 久久精品99国产精品日本| www.久久爱.com| 视频免费裸体网站| 久久久久久久久久码影片| 一区二区三欧美| 国产精品久久久久久久久动漫| 99精品网站| 激情av在线播放| 国产男女无遮挡| 亚洲aⅴ日韩av电影在线观看| 精品999在线播放| 国产欧美精品在线观看| 亚洲国产成人精品女人| 美女扒开腿让男人桶爽久久软| 手机看片一级片|