wvp-gb28181-project/doc/_content/skill/tcpdump.md
2022-08-09 09:45:32 +08:00

3.1 KiB
Raw Blame History

抓包

如果说对于网络编程有什么工具是必会的我觉得抓包肯定是其中之一了。作为GB/T 28181调试过程中最重要的手段我觉得如果你真对他有兴趣或者系统遇到问题可以最快的得到解决那么抓包你就一定要学会了。

抓包工具的选择

1. Wireshark

在具备图形界面的系统上比如windowslinux发行版ubuntuopensuse等我一般直接使用Wireshark直接进行抓包也方便进行内容的查看。

2. Tcpdump

在使用命令行的系统比如linux服务器我一般使用Tcpdump进行抓包无需额外安装系统一般自带抓包的到的文件可以使用Wireshark打开在图形界面下方便查看内容。

工具安装

Wireshark的安装很简单根据提示一步步点击就好了在linux需要解决权限的问题如果和我一样使用图形界面的linux发行版的话可以参看如下步骤; windows的小伙伴直接略过即可

# 1. 添加wireshark用户组
sudo groupadd wireshark
# 2. 将dumpcap更改为wireshark用户组
sudo chgrp wireshark /usr/bin/dumpcap
# 3. 让wireshark用户组有root权限使用dumpcap
sudo chmod 4755 /usr/bin/dumpcap
# 4. 将需要使用的用户名加入wireshark用户组
sudo gpasswd -a $USER wireshark

tcpdump一般linux都是自带无需安装可以这样验证;显示版本信息即是已安装

tcpdump --version

开始抓包

使用Wireshark

在28181中我一般只关注sip包和rtp包所以我一般是直接过滤sip和rtp可以输入框输入 sip or rtp这样即可如果设备来源比较多还可以加上ip和端口号的过滤(sip or rtp )and ip.addr==192.168.1.3 and udp.port==5060 详细的过滤规则可以自行百度,我可以提供一些常用的给大家参考 img.png
只过滤SIP

sip

只获取rtp数据

rtp

默认方式:

sip or rtp

过滤IP

 sip and ip.addr==192.168.1.3

过滤端口:

 sip and udp.port==5060

输入命令开启抓包后此时可以进行操作比如点播录像回访等操作完成回到Wireshark点击红色的停止即可需要保存文件可以点击文件->导出特定分组导出过滤后的数据,也可以直接文件->另存为保存未过滤的数据。

使用tcpdump

对于服务器抓包,为了得到足够完整的数据,我一般会要求直接抓取网卡数据而不过滤,如下: 抓取网卡首先需要获取网卡名在linux我一般使用ip addr获取网卡信息,如下所示: img_1.png

sudo tcpdump -i wlp3s0 -w demo.pcap

img_2.png
命令行会停留在这个位置,此时可以进行操作,比如点播,录像回放等,操作完成回到命令行使用Ctrl+C结束命令行在当前目录下得到demo.pcap将这个文件下载到图形界面操作系统里即可使用Wireshark查看了 更多的操作可以参考: https://www.cnblogs.com/jiujuan/p/9017495.html