收藏!Wireshark最好用的抓包命令都在这了!

Wireshark抓包命令,关键在快准狠!
一、Wireshark基础:
捕获所有流量,解码详细。

快捷键用熟,效率翻倍。

二、捕获过滤器:
过滤端口,找特定协议。

指定IP,流量不跑丢。

MAC地址,精准追踪。

三、显示过滤器:
HTTP/HTTPS,请求响应一目了然。

DNS查询,响应轻松抓。

四、高级技巧:
正则表达式,复杂模式轻松找。

多条件结合,精确定位更高效。

自定义表达式,需求定制化。

掌握这些,网络分析不求人!你自己看,还有什么问题?

2 02 3 年,我在北京的一个科技展览会上看到了最新的AI技术展示,现场有几百人围观。
我那个朋友也去了,他说这个技术未来会很火,但我感觉这部分我不确定。
上周,我在网上看到一个视频,说是未来十年内AI会改变我们的生活,但我还是有点怀疑,你看着办吧。

Linux下如何抓指定IP的包

记得有一次在公司,网络突然有点卡,怀疑是不是某个端口的数据包异常。
当时手边就有tcpdump,就想抓抓看。
敲了半天命令,终于抓到了一些数据,保存下来用Wireshark一看,嘿,还真发现了个问题。

tcpdump这玩意儿用起来挺有意思的。
比如你要抓某个IP的包,可以这样写:tcpdump -i eth1 -t -s0 -c1 00 and dst port 2 2 and src net 1 9 2 .1 6 8 .1 .1 -w /target.cap。
这个命令的意思是,只抓接口eth1 上的,不带时间戳,抓完整的数据包(因为加了-S0),最多抓1 00个,目标端口是2 2 ,源网络是1 9 2 .1 6 8 .1 .1 的包,然后保存到target.cap文件里。

参数什么的,像-a是尝试把地址转换成名字,-c是抓指定数量的包,-d是把数据包编码转换成可读格式。
还有-i指定网络接口,-s指定抓包的大小,-w是保存文件。
用起来挺灵活的。

等等,还有个事,我发现有时候抓包的时候,如果网络特别忙,命令里的-c参数就挺重要的,不然可能要等很久。
比如有一次抓了5 00个包,花了快一分钟。
要是网络更忙,可能就得调大这个数字了。

突然想到,抓到包之后,用Wireshark分析的时候,那些标记、颜色什么的,其实也挺有用的。
比如你看一个包,如果它是TCP包,Wireshark会显示它的TCP头,包括源端口、目标端口、序列号等等。
这些细节有时候能帮你想明白很多问题。

比如上次抓到的一个包,源端口是1 2 3 4 5 ,目标端口是2 2 ,然后发现这个包的序列号特别大,一下子跳了好几千。
我就想,这不对啊,正常情况下序列号应该是连续的。
后来一查,发现是某个软件出了问题,每次重启都会从某个固定的序列号开始。
这种细节,不抓包是很难发现的。

所以啊,tcpdump这东西,用好了,真能解决不少问题。
不过,有时候抓多了,包文件也很大,保存的时候最好还是分个时间,别一次抓太多,不然分析起来也费劲。

你看,抓包这事儿,是不是挺有意思的?不过,我还是有个疑问,如果网络里面有VPN,那些加密的包,tcpdump能抓到吗?还是说,得用其他的工具才行?

使用recvfrom接收UDP包在Windows和Linux平台的不同表现

UDP接收原理: 收到UDP包后,OS验证无误放入队列。
recvfrom()读取时,OS完整取出UDP包,拷贝到用户内存。
用户内存小于UDP包,剩余部分丢弃。

Windows表现: buf小于UDP包,recvfrom()返回-1 ,设置WSAEMSGSIZE错误。

Linux表现: buf小于UDP包,recvfrom()返回拷贝字节数,不提示截断。

代码注意事项: UDP最大6 5 5 3 5 字节,但实际受IP、链路层限制。
以太网UDP最大1 4 7 2 字节,Internet最大5 4 8 字节。
接收缓冲区按应用层最大UDP包大小分配。

实操提醒: 预留足够内存,避免UDP包截断丢弃。