在linux系统下使用fiddler everywhere

  • 简述
  • 工具的安装
    • 更新
    • 准备工作
      • 0001.导出支持https的CA证书
      • 0010.开启remote
      • 0011.可以使用特定的网关进行代理
      • 0100.虚拟机打开wifi
      • 0101.在设备上安装CA证书
      • 0111.了解限速
  • 使用Fiddler进行抓包
    • 开启各项必备功能
    • 抓取CSDN首页
    • 对CSDN首页进行mock
    • 对CSDN首页进行调试

简述

在linux系统下无法使用fiddler web debug(fiddler4)工具,我也曾经尝试过,如果想要在linux系统下运行fiddler4就需要在linux系统上运行NET framework服务,但是linux系统只支持NETcore服务,他们完全不一样。
也有人说使用mono developer 工具运行exe文件,这种方式我试了一下但是不行,每次打开exe都需要NETframework服务的支持,所以运行exe的方法也失败了。
所以我又到官网上转了一圈也没有发现linux装fiddler4的方式,尝试无果后只能选择使用Fiddler Everywhere 的beta版本,但是当时他只有0.05.00的版本,这个版本会不断的搜多NETcode服务,并不能找到而直接终止进程,所以只能放弃了。
但是,前几天fiddler发邮件说更新到了0.10.00版本,于是就试了一下。感觉外观上挺简单的和postman差不多,功能现在看起来不是很全面。
感觉重要的变化有以下几点:

  • UI看起来很整洁;
  • 没有fiddlerScript服务;
  • 不能直接在everywhere中进行网络环境模拟;
  • 没有了Statistics工具,没有别的还好,没有这个就感觉变成了接口调试工具;
  • 不能进行断点调试;
  • 不能选择浏览器或非浏览器,以及没有了令人挠头的"Win Config"工具
  • 只能导出session为saz格式,并且不能直接导出网页。
  • 将Filters功能添加到可视化界面上更容易进行操作了,但是每个标签都有,也很难搞;
  • 可以直接抓取websocket内容,但是无法识别标签;
  • Saved Sessions 工具卡很好用。可以将访问的地址分批保存;
  • Share工具很有趣;
  • PRO版需要申请才能下载。

总体感觉良好,虽然少了一些功能但是抓包、mock、接口调试都是可以正常使用的。

工具的安装

软件可以从官网直接获取,everywhere顾名思义就是哪里都一样的意思(听说fiddler以前的mac版和windows版是有区别的);
https://www.telerik.com/download/fiddler-everywhere
windows环境下双击exe就可以直接安装,并且默认安装到了C盘,不可以选择是个全自动程序(mac应该是一样的效果);

Appimage是一个可以再Linux系统中直接运行的像exe一样的集成程序包,无需解压和安装可以直接运行。但是一般需要授权,现在好多应用都提供这个方式的下载,这让安装更容易实现。

Linux 系统下载的包为 AppImage 的集成包,下载之后为了保证不占用home空间,建议移动到opt路径下,执行以下bash命令:

sudo mv fiddler-everywhere-0.10.0.AppImage /opt/
cd /opt
#查看文件权限
ls -l|grep fiddler-everywhere-0.10.0.AppImage
#文件没有可执行权限
chomod a+x fiddler-everywhere-0.10.0.AppImage
#打开集成包
./fiddler-everywhere-0.10.0.AppImage

之后会提示是否需要运行该程序创建关联文件和创建快捷方式。
之后会进入到下面的页面,并且是最大化显示,最小缩放比例很有限,所以模拟机需要拉到足够大才能运行。
出现这个页面证明可以正常使用了,但是需要注册和登录,普通版是免费的和postman一样但是postman可以不登录,pro版需要申请发邮件才能使用,点击进行申请,等待官方给你发右键(这可能需要好久)。
再之后会进入到一段快捷的友好提示导航。

Application successfully connected to .NET Core server
#terminal中出现了
这段信息证明软件被成功启动了

更新

最近又更新了一个00.10.1的版本,打开之后会提示是否更新,点击“yes”后

Error: Error: EACCES: permission denied, unlink ‘/opt/fiddler-everywhere-0.10.0.AppImage’

#会出现这个一段信息,原因是因为下载权限是需要管理员才可以运行,虽然该应用程序不需要管理员权限。
然后我们使用sudo命令打开该应用

sudo ./fiddler-everywhere-0.10.0.AppImage --no-sandbox


打开之后就和正常的应用程序一样需要先同意协议然后创建关联文件,然后点击弹框中的yes

以进行更新

Update installer has already been triggered. Quitting application

出现了这段话证明更新成功了,再次启动就会提示00.10.1的关联文件创建允许,点yes就可以了。
使用普通权限打开应用更新后无法关闭应用

ps aux|grep fiddler
#会出现“/tmp/.mount_fiddlexxxxxx/fiddler-everywhere --type=broker”类似这样的进程

强行关闭该进程

kill -9 11799
kill 7006

然后退出该进程的gpu进程

#检查是否有残留
top |grep Fiddler
ps aux |grep fiddler
netstat -lnp |grep Fiddler

准备工作

0001.导出支持https的CA证书

找到设置,从设置中选中第一个https选项卡,将证书导出到桌面
再linux系统下为导出到桌面,windows系统下该位置为自动安装ca证书,添加到桌面再高级选项内。
然后点击上图中选项卡,让fiddler可以抓取基于https协议的地址;
点击右下方“save”

0010.开启remote

针对需要对手机进行抓包的操作而言需要开启remote功能,该功能是设置里的Connections选项卡
默认port和fiddler4不一样,为8866,fiddler4为8888;
选中该复选框激活remote功能,点击save保存;
然后激活新的terminal界面输入

gnome-control-center

检查网络代理是否开启,

默认之开启了http和https,再将ftp和socks也加入到代理内,然后关闭。

0011.可以使用特定的网关进行代理

首先再gateway中选择Manual proxy configuration,选项中设置指定的ip和端口号而不依赖于系统。

0100.虚拟机打开wifi

再虚拟机环境下默认为NAT链接模式,为了能连接外部设备,这里需要修改为wifi的物理直连
右键系统标签,点击设置,找到网络适配器将nat改为桥连
由于我的网卡是PCI-E接口的9260,不知道为什么无法使用桥连进行wifi连接,这里就不做其他方法描述了,无论什么系统下ca证书的安装方法都是一样的。

0101.在设备上安装CA证书

这里会在firefox、chrome、android手机、iphone(windows下的fiddler4和fiddlerEverywhere的CA证书是一样的)

  • firefox安装CA证书
    打开浏览器,在右侧找到preferences(设置)中找到Privacy&Security(隐私和安全)拉到最下面找到certificates关键字右侧的View Certificates按钮,
    导入刚刚导出到(Desktop)桌面的crt文件,open后勾选第一个的复选框
    找到这个证明证书已经正确安装了。

  • chrome安装证书
    在Settings(设置)工具下,找到Privacy and security(隐私和安全)的more选项卡中,找到Manage certificates(证书管理)选项卡,选中Authorities(证书颁发机构)中,import刚才的crt文件。这时会多一个选项为信任软件制造者

    勾选然后ok。

  • Android手机安装CA证书
    由于有些高版本系统的手机已经不支持免权限直接安装CA证书了,因此需要在证书页面进行安装,但是需要先进行开启remote设置。并且需要手机和fiddler的机器再同一个wifi环境下
    1、首先找到fiddler右下角的图标
    2、将鼠标移至图标位置会显示出现在连接网络
    3、然后打开手机找到设置
    4、再网络里选择当前网络
    5、点击设置(或长按)进行自定义网络连接;
    6、将proxy(代理)设置为manual(自定义),将刚刚从connect处获取的地址填入hostname(地址)下
    并将8866输入到port(端口号)中点击SAVE;
    7、打开浏览器输入刚刚输入的“地址”和“端口号”192.168.168.129:8866

    下载该CA证书,直接打开一般都会提示无法安装。;
    8、回到系统的设置下找到(安全)进入;
    9、找到(加密和凭证)并进入;
    10、从SD卡安装证书;
    11、选择刚才下载的FiddlerRoot.crt 直接安装就可以了;
    12、其他charles工具会导出pem或cer的证书,使用openssl命令将其转换成crt即可
    openssl x509 -outform der -in name.pem -out name.crt

  • iphone安装ca证书
    iphone安装方法大致和Android一至,之不过由于系统的不同,

    iphone下载证书后需要先进行许可证配置,再“通用”下“描述文件”里安装


安装后还需要进入到“通用”的“关于本机”目录下的最下方
激活证书。

0111.了解限速

由于这个版本现在不带有限速功能,因此这里需要了解限速方法
又由于TC过于复杂只用于查看是否开启限速,这里使用wondershaper进行限速

#安装wondershaper,TC系统自带不需要安装
#wondershaper 需要sudo权限账户才能执行限速
sudo apt-get isntall wondershaper
#单独这个无法进行限速需要从git上克隆最新的开发版
git clone https://github.com/magnific0/wondershaper.git
cd /wondershaper
#查看现有的网卡,确定网卡和ip
ifconfig
#有时会看到很多个网卡,选择这个wifi使用的网卡并查看网速
sudo apt install speedtest-cli
speedtest
>>Testing download speedDownload: 35.65 Mbit/sTesting upload speedUpload: 22.71 Mbit/s
#查看我的现行最大网速是4MB/s
#然后使用TC命令查看当前网卡的排队规则
tc -s -d qdisc show dev eth0 #查看网卡eth0的队列是否受到规则限制
>>qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
tc -s -d class show dev eth0 #查看当前队列状态,如果没有反应证明未分配
#我的网卡会返回一个这样的字段,证明现在是10240ps的流速的网卡
#然后使用wondershaper对该网卡进行限速,设置成1MB/s的最大上传和下载网速
sudo ./wondershaper -a eth0 -d 8192 -u 8219 #-a指定的网卡 -d最大下行速度 -u最大上行速度 速冻为Kbps
speedtest
>>Testing download speedDownload: 2.71 Mbit/sTesting upload speedUpload: 7.65 Mbit/s
查看当前网卡状态
tc -s -d class show dev eth0
>>lass htb 1:1 root rate 8192Kbit ceil 8192Kbit linklayer ethernet burst 1598b/1 mpu 0b cburst 1598b/1 mpu 0b level 7
#现在的网速就变成了现行最大网速为1MB/s
#当想更换网速时不能直接更换,需要先关闭该限速再进行重新限速
sudo ./wondershaper -a eth0 -c #-a指定网卡 -c清理tc队列

使用Fiddler进行抓包

开启各项必备功能

  • 在打开浏览器之前需要先开启LiveTraffic为Capturing

  • 然后点击像芯片一样的东西叫Decode
    (蓝色为开启状态)这个东西在原fiddler4中是这样显示的,也是就为了纠正respond中出现乱码的现象,也就是Rules下的RemoveAll Encodings

  • 如果需要抓取视频流或其他持续传输流的话就需要开启Stream(蓝色为开启状态)。
    原fiddler4中也有该选项

  • 如果需要指定访问的url就需要添加过滤器
    这里的过滤器有很多,除了最上面的那个其他功能都是一样的;该功能和Fiddler4中“Filters”类似。
    —— 最上面的过滤器是为整体提供过滤,级别最高,但是需要了解response中返回的header中都包含那些字段,并且需要将指定字段和其中的值都填写一字不差才能进行过滤,但是这个过滤器可以过滤请求和相应的所有header内容。(不是很好用,他只能过滤一项)

    ——下面的过滤器为当前标签下,可以很灵活的选择过滤内容,可以选择or和and类型的删选条件

    选项卡中也包含很多中选项非常有用。

抓取CSDN首页

  1. 首先查看csdn首页的url地址信息“https://www.csdn.net/”
  2. 开启各个必选功能。
  3. 设置规则request为hosts:https://www.csdn.net/
  4. 访问浏览器,
  5. 点击小三角,查看Inspectors

    然后我发现http协议居然掉到了1.1(firefox是2.0先不管那个);
    fiddler还提供了response内容弹窗,方便观察特别长的相应内容。(我就是想写个教程,写着写着在那个感觉自己是销售)
    但是这个不能直接导出页面为文件,只能进入到弹窗内进行复制原文。

对CSDN首页进行mock

  1. fiddler Everywhere 为了防止复制粘贴操作产生错误的现象提供了一个快捷方式

    右键当前csdn的标签,添加个Rule规则到Auto Responder 里以方便进行mock
  2. 点击右侧标签进入控制界面
  3. 会看到规则里添加一个csdn首页的规则,并且该规则是开启状态的,在开启状态下可以点击进行更改
  4. 然后找到动态修改一下内容看看是否有限制

    点击保存
  5. 查看网站是否被更改
  6. 然后我发现他居然没有长度限制,吼吼!
  7. 看完之后记得关闭mock的页面防止以后出错

对CSDN首页进行调试

最后来看看这个感觉不太行的Composer接口调试

  1. 首先他有个很有趣的功能,可以将raw格式文本信息头直接转换为标准的标签格式,为了验证http2.0协议是否可用,我这里进行2.0协议的访问。
  2. 然后将RawView在改会原有的key-Value,就会发现所有key和value都被正确填写了。
  3. 点击发送后我发现,我不能通过2.0协议访问。

    服务器居然给我505的响应。
    然后我以为是浏览器的问题,于是修改了User-Agent为firefox下的信息,然后仍然返回505
    一脸茫然
    然后我用firefox进行抓包后发现协议又变成了http1.1版。
    无解,提交bug。

Linux系统使用Fiddler Everywhere相关推荐

  1. Linux系统与网络、磁盘参数和日志监控等命令详解二

    创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...

  2. 软件测试学习之路-----DOS命令与Linux系统笔记

    前言:软件测试为什么要学习DOS命令与Linux系统呢?这个问题,咱们来这么想.软件测试,是不是只要有个软件就行?那肯定不是,没了计算机啥都白瞎.然后现在人用的计算机通常都是Windows系统.那有W ...

  3. linux查看当前间命令,Linux系统查看当前时间的命令

    转自:https://www.cnblogs.com/redfire/p/7702213.html 一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" ...

  4. 【Linux系统】基础总结

    我不太清楚运维部门具体是做什么的,就接触过一点点运维部门! 也就是是知道他们负责管理服务器,管理网络,管理项目部署 偶尔自己需要部署,不得不接触一些linux命令.简单总结一些基础 linux系统发展 ...

  5. Linux系统中创建大文件,并作为文件系统使用

    在LInux系统的使用过程中,有时候会遇到诸如某个磁盘分区的大小不够用了,导致其下的文件系统不能正常写入数据.亦或者是系统swap分区太小,不够用或者不满足条件而导致的其他一系列问题.如果我们系统上挂 ...

  6. Linux系统开发之路-中

    4.Linux的安装(Windows环境下): 1)Windows环境需要借助虚拟机来安装Linux系统,这个推荐使用的软件是VMWare,官网能下载到的最新版本是Workstation Pro15. ...

  7. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

  8. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等

    内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...

  9. linux源码安装浏览器,Linux系统手动安装Firefox浏览器

    大多数Linux发行版都以Firefox作为默认的浏览器,并可以轻松地从软件库中安装.例如: Debian/Ubuntu: sudo apt-get install firefox Fedora: s ...

最新文章

  1. 自制操作系统Antz(9)——实现内核 (下) 实现图形化界面
  2. 【JVM调优系列】----NewRatio与SurvivorRatio
  3. php根据数组某一字段排序,php如何根据数组中某一字段来实现排序
  4. Linux 系统应用编程——文件I/O
  5. 基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)
  6. CodeForces 164C Machine Programming 费用流
  7. org.apache.commons.dbutils.QueryRunner 执行sqlserver的存储过程
  8. Gigapixel AI 6.0 for Mac(图片无损放大软件)
  9. go语言mongdb管道使用
  10. 【OpenGL 实验二】Liang-Barsky 裁剪算法
  11. 要学会“收”和“放”
  12. 【全网世界区划最全整理输出之第三部分】全世界所有国家的行政区划整理,省市信息,已按照国家,省,市排好序,可直接复制使用,第三部分到12722行,总条数:21088
  13. 面部识别软件可以帮助女性找到看起来像他们的卵子捐赠者
  14. 高德js-v1.4.13多图层 天地图 谷歌 高德mark点显示
  15. pixhawk4连接PX4 Flow光流传感器调试过程记录
  16. Python操纵Word神器——python-docx大全(含插入pptx图表)
  17. 物联网技术在智慧电网中的应用-Susie 周
  18. 博物馆(展览馆)RFID信息化建设管理方案
  19. 奇虎360Java笔试题
  20. 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.14 平移、旋转、缩放

热门文章

  1. 【Codeforces Round #325 (Div. 2)】D. Phillip and Trains
  2. 深度理解篇之Hive-个人拙见
  3. Unity KeyCode
  4. 什么是csrf攻击如何避免,CSRF攻击与防御
  5. 不要在Unix下遍桌面程序(1)《精通Unix下C语言与项目实践》读书笔记(9)
  6. 如何快速打通镜像发布流程?
  7. 你不是做不好自媒体,而是没选好媒体平台!
  8. java毕业设计纺织代加工车间生产状态监测系统Mybatis+系统+数据库+调试部署
  9. c语言支付方式,使用策略模式实现支付方式选择场景
  10. xssfcellstyle设置居中_java POI 单元格格式设置居中