tcpdump抓包常用命令及问题
由于经常定位VoIP中碰到的问题,笔者经常需要在Linux服务器上抓包,然后将生成的.pcap文件用wireshark打开进行分析。常用命令如下:tcpdump -nq -s 0 -i eth0 -w ronny-2019-0701-1415.pcap以上命令假设要抓包的网卡名为eth0,-w后面跟的是生成的抓包文件名如果要抓包的服务器上呼叫量比较大,那么生成的pcap文件将会非常大...
由于经常定位VoIP中碰到的问题,笔者经常需要在Linux服务器上抓包,然后将生成的.pcap文件用wireshark打开进行分析。常用命令如下:
tcpdump -nq -s 0 -i eth0 -w ronny-2019-0701-1415.pcap
以上命令假设要抓包的网卡名为eth0,-w后面跟的是生成的抓包文件名
如果要抓包的服务器上呼叫量比较大,那么生成的pcap文件将会非常大,这样抓出来的包是没有任何意义的(一般电脑是无法打开那么大的包的),所以就需要用到抓包分片功能:
tcpdump -nq -s 0 -i eth0 -C 100 -w ronny-2019-0701-1415.pcap
-C参数指定了多少兆(M)为单位生成一个包,上面语句,如果包超过了100M大小,则会生成新文件ronny-2019-0701-1415.pcap1,如果再次超过,则生成ronny-2019-0701-1415.pcap2,...... ,依次类推。
如果想持续抓包,即不想ssh客户端关闭后抓包停止,则可后台运行tcpdump,即:
nohup tcpdump -nq -s 0 -i eth0 -C 100 -w ronny-2019-0701-1415.pcap &
nohup xxx & 会后台执行tcpdump,可通过ps -ef | grep tcpdump命令查看是否运行成功:
如果执行tcpdump时(不论是前台运行还是后台运行)碰到如下错误:
则可以在执行命令的加上root权限或者其他具有操作权限的用户名,-Z参数便是干这个事的:
nohup tcpdump -nq -s 0 -i eth0 -C 100 -w ronny-2019-0701-1415.pcap -Z root &
若想抓取经过【网卡名】并且是主机【ip1】和主机【ip2】或者主机【ip1】和主机【ip3】之间的通信,则使用host选项:
tcpdump udp -nq -s 0 -i [网卡名] -C 100 host [ip1] and \(ip2 or ip3 \) -w xxx.pcap
更多推荐
所有评论(0)