最後更新時間 2021-10-05.
Linux 的命令太多,tcpdump 是一個非常強大的抓包命令。
有時候想看線上發生的一些問題:
- nginx 有沒有客户端連接過來……
- 客户端連接過來的時候 Post 上來的數據對不對……
- 我的 Redis 實例到底是哪些業務在使用……
tcpdump 作為網絡分析神器就派上用場了!
它本身的命令和參數有點多,我也簡單記錄下一些常用的操作。
網上的資料其實挺多(見文末),
但真的派上用場的,可能也就是我下面列出來的這幾個 :)
抓取 eth0 網卡的 80 端口:
tcpdump -nnA 'port 80' -i eth0
-A:以ASCII格式打印出所有分組,並將鏈路層的頭最小化
-nn:顯示IP地址和端口號
抓取發往 10.48.31.56 的數據包:
tcpdump -i eth0 dst host 10.48.31.56
指定網絡過濾:
tcpdump -i eth0 src net 10.48
指定協議過濾:
tcpdump -i eth0 tcp
表達式過濾:
tcpdump -i eth0 '((tcp) and (port 80) and ((dst host 10.48.31.56) or (dst host 10.48.31.58)))'
參考資料
- 《tcpdump使用技巧》
- 《肝了三天,萬字長文教你玩轉 tcpdump,從此抓包不用愁》
- 《tcpdump原理及常用命令》
- 《Linux系統 tcpdump 抓包命令使用教程》
- 《聊聊 tcpdump 與 Wireshark 抓包分析》
文章來源於本人博客,發佈於 2018-06-02,原文鏈接:https://imlht.com/archives/185/