2019-02-22 遇到的一点小问题
最近需要分析点网络数据,所以贴一下用过的几个工具。
fiddler
最开始是在okhttp-OkGo看到的介绍。抓取HTTP
和HTTPS
很方便,查看信息也很容易。Android开发时,手机设置代理后抓取也很省事。
wireshark
因为这次要抓取的主要是TCP
协议,所以就选的wireshark,因为这个还带有分析功能。
wireshark使用方法总结
Wireshark抓包工具使用以及数据包分析
pcapng文件的python解析实例以及抓包补遗
以上是参考的几个链接,然后这边贴一下一些使用记录:
过滤条件:ip.addr == 192.168.10.148 and ip.addr == 192.168.10.31 and tcp.port == 50455
。
分组列表:
1.No:代表数据包标号。
2.Time:时间:在软件启动的多长时间内抓到,也可以设置其他格式。
3.Source:来源ip。
4.Destination:目的ip。
5.Protocol:协议。
6.Length:数据包长度。
7.info:数据包信息。
报文里出现的Tcp Window Update
,相关解释可以参考what-is-a-tcp-window-update 。
在View - Coloring Rules...
里面可以查看视图-着色规则或修改颜色设置。
数据包信息
TCP 40190 → 50455 [ACK] Seq=120019 Ack=1 Win=502 Len=43440 TSval=2215240984 TSecr=923630525
大概说明:
- Seq = 120019
Sequence number: 120019 (relative sequence number)
序列号(用来标识从TCP发端向TCP收端发送的数据字节流)- Ack = 1
Acknowledgment number: 1
应答码 (relative ack number)- Win = 4887
Window size value: 4887
滑动窗口(在未收到对方确认报文时,发送端能发送的字节数)- Len = 43440
[TCP Segment Len: 43440]
数据包.大小
1.[Next sequence number: 163459 (relative sequence number)]
这是Wireshark计算得出的下一次端口40190向端口50455发包将使用的Seq数值,计算方式:Seq+Len
,示例:163459=120019+43440
2.TCP 40190 → 50455 [ACK] Seq=163459 Ack=1 Win=502 Len=5792 TSval=2215240986
TSecr=923630734- TSval=923630523 发送时间戳
- TSecr=2215240771 应答时间戳
分组详情
1.Frame:物理层的数据帧概况。
2.Ethernet II:数据链路层以太网帧头部信息。
3.Internet Protocol Version 4:互联网层IP包头部信息。
4.Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
User Datagram Protocol:此处是UDP协议
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
这边贴一下详细信息。当然展示的这些信息Wireshark帮我们做了很多处理,让我们能很直观的查看。我在用Python分析pcap文件时,展示的数据就是参考的这些。:
Frame 33: 43506 bytes on wire (348048 bits), 43506 bytes captured (348048 bits)
Encapsulation type: Ethernet (1)
Arrival Time: Feb 26, 2019 11:03:01.858529000 中国标准时间
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1551150181.858529000 seconds
[Time delta from previous captured frame: 0.208715000 seconds]
[Time delta from previous displayed frame: 0.208715000 seconds]
[Time since reference or first frame: 0.426284000 seconds]
Frame Number: 33
Frame Length: 43506 bytes (348048 bits)
Capture Length: 43506 bytes (348048 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:tcp:data]
[Coloring Rule Name: TCP]
[Coloring Rule String: tcp]
Ethernet II, Src: BiostarM_0c:61:71 (f4:b5:20:0c:61:71), Dst: Apple_02:a0:f9 (68:fe:f7:02:a0:f9)
Internet Protocol Version 4, Src: 192.168.10.148, Dst: 192.168.10.31
Transmission Control Protocol, Src Port: 40190, Dst Port: 50455, Seq: 120019, Ack: 1, Len: 43440
Source Port: 40190
Destination Port: 50455
[Stream index: 0]
[TCP Segment Len: 43440]
Sequence number: 120019 (relative sequence number)
[Next sequence number: 163459 (relative sequence number)]
Acknowledgment number: 1 (relative ack number)
1000 .... = Header Length: 32 bytes (8)
Flags: 0x010 (ACK)
Window size value: 502
[Calculated window size: 502]
[Window size scaling factor: -1 (unknown)]
Checksum: 0x3fdb [unverified]
[Checksum Status: Unverified]
Urgent pointer: 0
Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps
[SEQ/ACK analysis]
[Timestamps]
TCP payload (43440 bytes)
Data (43440 bytes)
tcpdump
因为Windows要做其他工作,所以特地弄了台机器安装CentOS系统,然后再安装tcpdump自动抓包。
安装和使用网上搜一下有很多,安装好后可以执行tcpdump -D
查看能抓包的网络接口。然后就可以进行抓包并进行存储。如果存储时不指定路径,默认存储文件到根目录。
tcpdump -i p8p1 host 192.168.10.148 and host 192.168.10.31 and port 50455 -c100000 -n -nn -w /opt/wannoo/roon.pcap
samba
为了在windows上分析pcap文件,所以使用samba将centos上的文件共享给我的电脑。
按步骤安装samba后,cd /etc/samba/
进入samba配置目录,vi smb.conf
使用vi修改smb.conf文件,: wq
保存退出后,设置账号密码,然后service smb [start][stop][status][restart]
重启samba服务。ps aux | grep samba
可查询进程是否运行。测试一下不行...同事给了个链接,让关闭防火墙,再试一下,可以了。
[global]
workgroup = WORKGROUP
server string = SAmba Server %v
netbios name = 168
security = user
map to guest = bad user
dns proxy = no
[Wannoo]
path = /opt/wannoo
browsable = yes
writable = yes
guest ok = yes
read only = no
TL-SG2005
为了在另一台电脑抓取两台设备间的网络通讯内容,公司特地买了台全千兆Web网管交换机TL-SG2005。因为管理地址和电脑网段不一致,所以还特地去改了一下。为了下次设置时省事,可以在管理页面设置一下设备IP、端口。
按TL-SG2005 V2.0用户手册 1.1.0.pdf设置后,开启镜像功能,就能进行端口监控了。将被监控端口的数据包复制一份到监控端口,实现网络监控。
这中间出现一个问题,就是抓包时会出现很多丢包重发的。而这个现象直接在设备上抓取是没有的。查询后发现是因为设备和外网都是用的1000Mbps宽带,而我电脑用的100Mbps。然后镜像端网络带宽占用严重时,监测数据也会出现部分丢包现象,记录一下。
FinalShell
同事推荐的SSH工具,虽然经常卡顿、闪退,但是远程登录管理主机很方便,直接复制黏贴命令,很直观地查看文件夹,省了很多事。