新人必看Tshark:从抓包小白到网络侦探,这篇保姆级教程太顶了!
嘿,各位刚入坑网络安全的小伙伴们,你们好呀!我是你们的老朋友,一个在网络安全摸爬滚打了五年的“半老鸟”,今天咱们不聊那些晦涩难懂的防火墙策略,也不扯什么高深的渗透测试,就专门来聊聊一个我当初差点被劝退、但学会后直呼“真香”的工具——Tshark!
说真的,第一次接触Tshark的时候,我心里那个苦啊...(捂脸)大家别笑,我知道很多新人最开始用的都是Wireshark,双击打开,图形界面,点一下就能看到包,多香!可一旦到了服务器上,尤其是那些没装图形界面的Linux系统,Wireshark瞬间就不灵了,这时候怎么办?Tshark就是那个让你在命令行里也能“看见”网络流量的神奇宝贝!
为什么新人必须硬着头皮学Tshark?
哎,我先讲个糗事,去年入职第一周,老大扔给我一个任务:“小王啊,去生产环境抓个包,看看某个接口为啥响应这么慢。”我屁颠屁颠上去,发现服务器是CentOS,没有图形界面,当时我就傻眼了...脑子里只有Wireshark的我,差点当场社死,后来同事甩给我一句:“用Tshark啊,兄弟!”那一刻,我终于明白,新人必看Tshark不是一句空话,这是逃不掉的宿命!
Tshark到底是个啥?
这么说吧,Tshark就是Wireshark的命令行小老弟,但人家功能一点不虚!它是Wireshark项目的一部分,专门用文本模式来处理捕获和分析网络数据包,简单理解就是:Wireshark能用鼠标点的,Tshark全都能用命令敲出来,甚至更强!
而且啊,Tshark有个超级实用的点,就是它自带过滤逻辑,基本和Wireshark的过滤器语法一样,这意味着什么?意味着你只要会Wireshark的过滤表达式,Tshark上手就是分分钟的事!这就像你学会了开自动挡汽车,换到手动挡,虽然点区别,但道理相通嘛,是不是瞬间就没那么怕了?
别怕!我手把手教你装Tshark
咱们先撸起袖子干活!安装这块,我假设你用的是Ubuntu或者Debian系,直接一行命令:
sudo apt-get install tshark
装的时候会弹个提示框,问你要不要允许非root用户抓包,这里一定要选“是”呀!不然待会又要sudo来sudo去的,烦死个人,要是你用的是CentOS或者RedHat,那就是:
sudo yum install wireshark-cli
注意别装错包哦,是wireshark-cli,不是那个图形版的wireshark!
第一次实战抓包,心跳加速的感觉!
装好之后,咱们先干一票小买卖——抓本机的HTTP流量看看,你试试用我给的命令:
sudo tshark -i eth0 -f "tcp port 80" -a duration:30
哎呀,这里我要啰嗦两句了!-i eth0就是指定网卡,-f是抓包过滤器,注意这是BPF格式的哦,不是Wireshark那种显示过滤器。-a duration:30的意思是自动化停,30秒后自动结束,这个命令一执行,你就盯着屏幕看吧,那种数据包刷刷刷流动的感觉,嘿,还真有点网络侦探内味儿了!
伪原创独门秘籍:Tshark显示过滤器的撒娇式用法
很多教程只教抓包,不教怎么从海量数据里捞出最有用的信息,这太坑人了!新人最需要的其实是显示过滤器,抓包是撒网,过滤才是收鱼!我给你来几个贼好用的表达式,都是我平时工作用到的:
抓HTTP请求里的特定域名,你想看某个网站的所有请求:
tshark -r capture.pcap -Y "http.host == 'example.com'"
这里-r是读取已有的pcap文件,-Y就是显示过滤器了!怎么样,这个“”是不是很像程序里判断相等?没错,就是这么口语化,不用记什么花里胡哨的语法!
再比如,你想看TCP重传(网络卡顿的元凶之一),可以用:
tshark -r capture.pcap -Y "tcp.analysis.retransmission"
喔唷,这个一用,那些藏得极深的网络抖动问题瞬间就现原形了!我跟你讲,上次公司有个服务老说超时,运维排查了一下午,我过去就这命令一刷,分分钟定位到是某个云厂商的节点丢包,那种成就感,啧啧,比喝冰可乐还爽!
有没有觉得字段太多看花眼?咱只提取关键字段!
有些小伙伴看到Tshark输出的那一大坨信息,直接就崩溃了:“这啥呀?我是谁?我在哪?”别急嚒,咱用-T和-e参数自己定制输出格式!就跟你去奶茶店点单一样,要什么加什么。
假设我只想要时间、源IP、目的IP和HTTP请求的URI,命令就这样:
tshark -r capture.pcap -Y "http.request" -T fields -e frame.time -e ip.src -e ip.dst -e http.request.uri
看到没?输出就干干净净四列数据,治好了我的强迫症!而且这种方式特别适合写脚本做自动化分析,你要是学会了,感觉工作都能轻松一半!
把Tshark变成你的随身助手(进阶小心思)
我偷偷告诉你们一个小习惯啊,我在服务器上排查问题时,特别喜欢结合grep命令一起用,虽然Tshark本身就有过滤,但有时候取到数据后还想再做个二次文件处理,这时候走个管道符就是绝杀!
tshark -r capture.pcap -T fields -e ip.src -e ip.dst | sort | uniq -c | sort -nr
这命令能统计每个IP通信的流量次数,从多到少排个序,你看,这不就是妥妥的网络流量分析报告嘛!新人们学这招,在面试的时候跟面试官吹一波,保证印象分蹭蹭上涨!
咱得说点掏心窝子的话
朋友们,我也是从新人过来的,太懂你们看到命令行就头大的心情了!但Tshark真的值得你花时间去啃,因为它是网络分析的基本功,也是你未来走向高级安全工程师的必经之路,别指望一天就成专家,那是不可能的,但我拍胸脯保证,只要你跟着上面的命令敲个三五遍,一周后你再看网络数据包,那感觉就跟看自己家的窗户纸一样透明!
如果你们在练习Tshark的过程中有任何问题,比如抓不到包啊、过滤条件不对啊、或者想了解更深层的网络协议分析,别不好意思,直接来问我!网络安全这条路啊,一个人走太寂寞,咱们就得抱团取暖!

学习网络安全可以加QQ:3414296711(备注“公众号粉丝”更容易通过哦),咱们群里聊,一起进步,一起踩坑!记住哈,你现在的每一次抓包分析,都是在为未来的安全大牛之路添砖加瓦!加油,冲鸭!

