Rythem 是什么
Rythem 是一个与 Fiddler 同类的软件,和 Fiddler 一样具有 代理抓包/替换 功能,与 Fiddler 最大的不同是 Rythem 是跨平台&开源的。
下载地址及源码:
- Windows 绿色版: https://github.com/AlloyTeam/Rythem/releases/download/Rythem_for_mac_remote_listen_bug_fix/Rythem-2013-11-15.7z
- MacOS 安装包:https://github.com/AlloyTeam/Rythem/releases/tag/filter
已知此包在 MacOS 10.6.x(或以下) 下无法运行
旧版用户如果是安装在/Applications 目录,可下载 updater(425KB) 进行更新,下载解压后运行 update 即可 - Rythem 以 Qt 为基础框架,你可以到 github 上获取其源代码:https://github.com/AlloyTeam/Rythem
以下为 Rythem 运行的截图:(MacOS 与 windows 平台下略有不同)
Rythem 目前已实现以下功能:
- http 代理服务
- https tunnel 透传 (https 抓包需求似乎不是很大,暂不实现)
- 规则替换
1234匹配模式包括`wildcard`类型及全匹配两种以替换后内容区分有本地及远程两种。本地替换有三种:目录式,单个文件式,多文件合并成一文件远程替换暂时只支持一个文件对应一个远程路径 - host 设置
- 替换规则远程及本地导入。
- 替换规则增删改。
- 颜色标记已被替换的请求
- 导入/导出 每条请求(兼容 fiddler *.saz 文件)
- 批量导出 response body(可用于整站保存)
- 过滤显示请求
如何使用
1)Windows 平台下,点击左上角 “开始抓包” 按钮(非 Windows 平台下手动将系统代理设为 127.0.0.1:8889)
2) 在 Rythem 右侧选中 “替换规则”tab (见下图)
3) 在此 tab 下点击 “添加本地分组” 并填写分组名后点 OK(见上图)
4) 点击刚建立的分组下的 + 号,在弹出的窗口中填入相应信息,这里以 local File 类规则为例:
如下图,规则意为:遇到 http://test.com/ 的请求 时返回 replacement 里指定的文件的内容 (replacement 下的输入框可手动输入也可点其下的 -F 按钮选择。
5)打开浏览器访问 http://test.com/ 得到以下效果:(本例中 replacement 被设为一个.h 文件)
替换规则简介:
目前 Rythem 实现了五种规则:
1. 单个请求对应单个文件替换
如上例
2. 目录级别替换
例: pattern 为: /myfolder/ replacement 为 /my/path/
则访问 http://every.host.name/every/path/to/myfolder/subpath/everyfile.html 会被转到 /my/path/subpath/everyfile.html
3.Host 替换
例 patern 为 w.qq.com replacement 为 127.0.0.1 效果等同于在 hosts 文件里设置 w.qq.com 127.0.0.1 (前提是访问者通过本代理软件访问)
4. 远程内容替换(由于远程替换发现有严重 bug,暂时屏蔽)
例 pattern 为: http://myhost.com/cgi/no/ready replacement 为 http://myhost2.com/cgi/already/ready
则访问 http://myhost.com/cgi/no/ready 时,内容返回为 http://myhost2.com/cgi/already/ready 所返回的内容
5. 单个请求对应多个文件组合替换
适用于多个 js 合并规则
转载请注明本文永久网址:http://www.alloyteam.com/?p=789
遇到问题请与 ip 反馈 iptton(at)gmail.com,或在此文后回复 🙂
--------------------------------------
2012.5.21 更新
增加源代码使用方法及代码阅读提示: https://github.com/AlloyTeam/Rythem/wiki
已实现拖动 @流年 所提及的拖动生成规则功能(已提交源代码,暂未打包新安装包)
今天有了第一次来自非团队内的 pull request~非常感谢 qhwa 的修正 ( https://github.com/qhwa)
2012.5.23 更新
使用 linguist 支持多语言
修复一个严重 bug(会导致某些请求不能正常执行) (已更新安装包)
TODO: 增加版本更新功能
2012.5.31 更新
增加更新检查
增加单例运行检查 (只允许同时运行一个 Rythem)
2012.8.22 更新
MacOS 下增加设置代理功能
不需手动设置代理,仅在 MacOS 10.8 上测试通过
修改 Windows 下代理设置方式,解决部分 windows+ie 组合下设置代理失效问题
Windows 下启动时自动开启抓包
MacOS 下由于设置及取消都需输入密码,所以设成需手动点 “开始抓包” 按钮)
支持 HTHML5 audio 音频替换
旧版本的 Rythem 或 fiddler 替换 audio 标签播放的文件 只能播放一次,Rythem 在一开始就支持了 HTML5 的 manifest 返回 content-type,后面大家开发中遇到需修改 header 的问题也可和 ip 反馈
支持目录级的淘宝 ComboUrl 【来自 xhowhy 的贡献】(由于本人疏忽,忘更新主线到分支,导致昨天所发布版本中未含有 ComboURL 替换功能,看下载量已有 5 个下载,这里说声抱歉~ 目前 windows 版已重新 build,mac 版稍后更新 已更新)
2012.08.28 更新
由于测试不全面,导致如果系统本身有代理情况下,如果在启动时执行抓包会出错。
2012.09.19 更新
MacOS 版增加对系统原代理支持(pac/http/https)
MacOS 版抓包只需要输入一次密码即可
2013.11.14 更新
MacOS 版增加远程监听能力(远程 ip 地址显示在状态栏) MacOS 10.9 不支持 Qt5 , 又要回滚到 Qt 4.8 了。。(Windows 版本呢? 等我重新搭好 windows 环境再编译一个吧..) windows 版已更新
2014.2.21 更新
增加请求根据 host 过滤能力,
过滤例子:
如需只显示 host 中含有 qq.com 和 alloyteam.com 的请求,过滤输入框填 qq.com|alloyteam.com
qin 2012 年 6 月 6 日
mac 10.5.8 貌似不行?
iptton 2012 年 6 月 6 日
sorry, 确实是这样(下载链接后有提示,可能不够明显.)。我机器上的 mac 版本是 10.7.4 似乎 qt 是存在这问题,需要在相应的版本上编译一下才行。暂时找不到其它 mac 版本的机器。
moxuanyuan 2012 年 6 月 6 日
Windows 绿色版: http://alloyteam.github.com/download/rythem0531.7z
无法下载~~~~
iptton 2012 年 6 月 6 日
https://github.com/downloads/AlloyTeam/Rythem/rythem0531.7z
用fiddler抓手机浏览器的Http请求 | 暗前端 2012 年 5 月 30 日
[…] 最近腾讯的同学也写了一个新的,跨平台,但是还很弱,叫做 rythem 官网 http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ 此条目是由 walterzhang 发表在 移动 Web、自动化和工具 […]
seek 2012 年 5 月 30 日
ubuntu 下的版本快发吧,亲~
iptton 2012 年 5 月 31 日
没试过 ubuntu 下打包,需要些时间..
tocky 2012 年 6 月 9 日
ubuntu 12.04 下可以编译成功,不过会异常退出。
81% 2012 年 5 月 24 日
火速留名,再体验
小秦 2012 年 5 月 24 日
Windows 7 下启动之后, 再关闭, 不会还原 IE 的代理设置.
启动的时候会设置 IE 的代理为 127.0.0.1:8889, 但关闭的时候, 不会还原, 原来的设置.
iptton 2012 年 5 月 24 日
有没同时启动 fiddler? 我这里也是 win7 系统,没出现这问题。
可以看看进程 里是否同时存在两个 Rythem.exe 如果是的话就是上一个 rythem 没有正常退出导致。
后续会完善 crash 后的相关操作〜
@si 2012 年 5 月 24 日
不错,现在版本还是不如 fiddler 好用,不过顶下。
期待后续版本
iptton 2012 年 5 月 24 日
🙂 谢谢支持〜
个人觉得目前最大的优势应该是 mac 下只有一个收费的同类软件(免费的暂时只发现有抓包,没有替换功能的)
另外不知你有没用过 fiddler 插件 willow,推荐使用 😀 , 有合并文件替换功能
duoGg 2012 年 5 月 24 日
mac 安装提示 “无可装载的文件系统”,求解
iptton 2012 年 5 月 24 日
可能和 mac 版本有关?我在 10.7.4 上编译的测试通过的,你的 mac 版本是?
iptton 2012 年 5 月 24 日
sorry, 确实是包损坏了,稍后更新
duoGg 2012 年 5 月 24 日
版本 10.7.4。谢谢哈,好了 Reply 下,重新下载安装。谢谢!
iptton 2012 年 5 月 24 日
已更新〜
二军 2012 年 5 月 24 日
火前先留名。。。
唠叨下 2012 年 5 月 22 日
为咩界面里又是中文又是英文的?看的我好忧伤~,你听到用钥匙划过玻璃发出的声音的感觉就是,敢不敢来个全中文界面?
iptton 2012 年 5 月 22 日
因为开发过程中切换输入法麻烦,所以就用了英文。发布前部分换成了中文,后续会全换回来的了~
TAT.Kinvix 2012 年 5 月 22 日
p 爷的开发速度敏捷到了连切换输入法的时间都要省掉的地步了,nb 啊!!!
iptton 2012 年 5 月 23 日
mac 下的中文输入法不好用.. 其实是想用 Qt 的 translate 多语言支持特性以英文为基础做翻译的
TAT.Kinvix 2012 年 5 月 23 日
顶 p 爷
dexbol 2012 年 5 月 21 日
多文件合一的替换规则比较吸引人,不错。fiddler 就没这个
iptton 2012 年 5 月 22 日
稍后再详细介绍 目录替换 和 多文件替换的使用方法~
Kail 2012 年 5 月 21 日
good job! thx
颂赞 2012 年 5 月 21 日
一看就知道是前端工程师团队开发的
TAT.Kinvix 2012 年 5 月 22 日
呵呵,看的很准!
颂赞 2012 年 5 月 21 日
牛逼
mg12 2012 年 5 月 21 日
支持。有 Linux 命令行版本就好了。
iptton 2012 年 5 月 21 日
这个可以有~ 😀
linus脱袜子 2012 年 5 月 19 日
没有 ubuntu 版吗?
iptton 2012 年 5 月 21 日
ubuntu 应该和 mac 下一样,需手动设置代理就可以用了。由于这里没 ubuntu 环境,所以没打包。等代码更稳定些再考虑加上~
qhwa 2012 年 5 月 21 日
我在 Ubuntu 下编译了一下,已经成功。不过很容易发生段错误然后崩溃。
sudo apt-get install qt4-dev-tools qt4-qmake
qmake -project
qmake
然后修改 Rythem.pro:
a) 添加 QT += core gui network script webkit
(这一行本来是有的,不知道为什么 qmake 之后没有了)
b) 删除 “proxy/rywinhttp.h \” 这一行
否则会报错,找不到依赖的文件。这是 windows 系统才有的文件。
修改 mainwindow.cpp:
#include
改为:
#include
大小写错了,Linux 会编译不通过。之前对 Qt 一点都没接触过,所以在这步我卡了很久,才发现原来是写错了。
最后一步: make
结果会在当前目录生成一个可执行文件,完成!
qhwa 2012 年 5 月 21 日
上面有些文字没有出来,评论里面可以直接用 html 代码的?O_O
提交了一个 pull request
iptton 2012 年 5 月 22 日
html 代码需要用<code></code> 括起来
iptton 2012 年 5 月 22 日
没看到 pull request 哦~
iptton 2012 年 5 月 22 日
.pro 文件里只考虑了 mac 和 windows 两种系统~ proxy/rywinhttp.h 这个确实只为 windows 加的。可以去掉 proxy/rywinhttp, 再加上 win32:HEADERS += proxy/rywinhttp.h
win32:SOURCES += proxy/rywinhttp.cpp
“ 容易发生段错误然后崩溃”,这个我再装个 ubuntu 看看~
iptton 2012 年 5 月 23 日
段错误的问题会不会是 Qt 版本导致?我在 ubuntu 下用 Qt4.8 编译运行了,没有发现这问题。
流年 2012 年 5 月 17 日
能不能像 fiddler 那样直接拖过来创建规则而不需要手动填写规则,然后选择本地文件来映射?
iptton 2012 年 5 月 17 日
暂时还没这功能,这个确实比较常用,先记下,优先实现~
iptton 2012 年 5 月 17 日
mac 安装包: http://alloyteam.github.com/download/rythem0517.dmg
iptton 2012 年 5 月 17 日
下载地址: http://alloyteam.github.com/download/rythem0517.7z
bigCat 2012 年 5 月 17 日
有正则替换没亲?
iptton 2012 年 5 月 17 日
亲~
和 fiddler 一样有 wildcard 类表达式,没正则的。替换规则加上 regex: 即可。
如: regex:http://*.qq.com/
在我使用过程中,目录替换 是比较常用的。表达式目前只能用于 pattern,replacement 还没处理~