主要操作原理是:
将上网设备连接到路由器
在路由器上使用tcpdump对网卡进行数据抓包
截至此处已经达到了监控要求,但是不够直观,需要一些可视化的工具,比如wireshark
在同一网络内的Linux桌面系统上运行wireshark对路由器上的tcpdump数据进行导入
通过ssh远程执行tcpdump命令,将数据输入到desktop,然后作为wireshark的输入数据源
在桌面系统终端里面执行下列命令:
ssh root@mitest "tcpdump -s 0 -U -n -w - -i br-lan not port 22" | wireshark -k -i -
然后输入相应的账号密码就可以监控了。
7.2 工具小技巧
前面讲述了基本的原理和操作手段,但是缺点是每次都需要输入长串命令行和密码,可以利用linux的一些小操作技巧,简化此过程,做成一个命令工具。
基本原理:
使用 sshpass 工具来做名密码输入
使用 alias 别名来做成命令语句
自动登录语句实现:
sshpass -p 'route-pass-world' ssh -o StrictHostKeyChecking=no root@mitest 'tcpdump -s 0 -U -n -w - -i br-lan not port 22' | wireshark -k -i -
编辑~/.bash_alias文件,自定义命令行的别名:
alias zshark="sshpass -p 'route-pass-world' ssh -o StrictHostKeyChecking=no root@mitest 'tcpdump -s 0 -U -n -w - -i br-lan not port 22' | wireshark -k -i -"
后面只需要在shell里面输入zshark就可以完成命令的启动了。
7.3 结果效果展示和应用
然后启动抓包工具,使用小米4手机连接路由器,打开UC浏览器访问 ,抓包效果图如下:
已经可以看到设备的相应的网络IO访问内容了。
这个功能的可以用于对一些没有抓包应用的平台上的网络数据监控分析。例如:分析手机上的网络通讯情况。
在软件开发的时候,缓存往往很容易造成一些不正确的假象,这些假象非常容易影响软件调试过程中的分析判断。比如,在网络环境迁移的过程中,不同的设备有不同的DNS或者静态文件的缓存机制,特别是手机终端浏览器都有一些 云加速 功能,这些功能的加入已经改变了以前大家理解的网络请求过程,如果不了解这个影响,应用程序往往会呈现出一些令人费解或者令人误解的现象。所以必须要借助网络监控工具来确认设备的网络环境得到了正确的迁移,才能保证开发人员看到的一些现象是可信的。
比如:UC和QQ手机浏览器有 云加速 功能,但是好歹在设置中可以进行关闭,但是微信内置浏览器其实也有此功能,而且没有任何地方能够设置关闭,这点在web开发调试过程中很容易让人费解或者误解。
7.4 网络安全随想
在前面的内容已经介绍了如何抓包了,显然已经在PC上看到了接入的手机上的相关访问信息:
非敏感信息
手机型号 操作系统 浏览器标识 访问页面内容和时间
敏感信息
如果是http协议,页面提交的表单内容也会明文被查看到
对于非敏感信息,其实有些时候也比较敏感,这是对隐私的一种侵犯,毕竟没有谁希望自己的一切网络行为习惯被别人窥探无遗。
例如,wireshark可以对某个设备的访问记录进行统计: