强大的网络工具 AnyFlow 已经发布 v1.6 版本

2017-02-04 18:05:21 +08:00
 AlexaZhou

在 “成为最好用的 NetworkExtension App ” 的目标驱动下, AnyFlow 从诞生以来一直快速迭代,积极添加新功能并修正已知的 bug ,保持着平均每周更新一次的速度(开发者很有诚意对吧)。

目前 AnyFlow 上线两个月,不管是从稳定性,还是速度,或功能完成度上来说,都远超过了其他类似 app 同期的水平,并且获得了很多用户的较高评价。

目前 AnyFlow v1.6 版本已经上线 appstore ,在之前版本已经很稳定和省电的基础上,作了多处增强,并修正了一系列奇奇怪怪的 bug (/ω\),变得更加好用了。

还增加了默认规则和文档来降低上手难度。

如果你还在观望的话,是时候入手了

附 AnyFlow 介绍:

AnyFlow 是什么

AnyFlow 是一款强大的基于 NetworkExtension 的网络调试工具。运行于 iOS 系统,能在消耗很少系统资源的情况下,在后台持续提供服务,让你可以完全控制手机流量。

主要功能分为两部分

请求分析

允许查看并记录所有的 HTTP 请求,查看 HTTP Header , Body 。以及从请求到结束过程中,每一步所消耗的时间。

流量分发

按照自定义的规则,可以将流量直接本地转发;或者经过代理服务器发送,来加速网络访问;对某一类请求,还可以直接 Reject 或者 Drop ,达到去广告,或者减少不必要流量消耗的目的。

基本来说,这款 APP 对开发者来说是十分值得拥有的,毕竟用来调试 APP 的接口很方便,将来还会加入 MITM 功能。

对普通人来说也很有用,可以加速网络访问不是么。

AnyFlow 比其他软件好在哪里?

设计理念的不同是最重要的差别。

从第一行代码开始, AnyFlow 就是为了在 iOS 上 7*24 小时持续不间断使用而设计的。所以整个开发过程中,效率和稳定性,都是最优先考虑的目标,其次的目标是性能,我自己编码实现的成本则排在最后。目标是达到服务器软件,例如 Nginx 这种级别的稳定性,让你在手机上打开之后,就不用管了,开着几个月也没关系, AnyFlow 一直在后台帮你加速网络访问。

为了达到这个目的, AnyFlow 基本上把所有部件都轮了一遍,包括 DNS Forwarder , HTTP Proxy , NAT 等。通过专门开发的 HTTP Proxy 实现了对多种协议的支持,并没有像其他 APP 那样,集成开源组件进行流量转发。

这些各种各样的差别累积起来, AnyFlow 基本上有着 TOP 级别的效率和速度(可见效果是最少的发热和卡顿),让你在手机上用的更舒心。

最后,这当然是一款收费 APP

对于这样一款高性能,无广告,无内购,充分解决用户需求的 APP 来说,现在的价格绝对是超值。

26678 次点击
所在节点    Surge
266 条回复
AlexaZhou
2017-02-06 23:59:43 +08:00
@ljs999

这个有些困难,但也不是不能做。

大概的步骤是先读取 session 目录,找到你保存的 session 文件夹,然后读里面的 sqlite 数据库,找到需要的对应的请求,以及记录 body 的文件名,再读取对应的 body 文件。
cinhoo
2017-02-07 00:07:32 +08:00
已支持。一开始碰到了 ios10 不跳联网权限的 bug ,一直不能上网,重启才解决
ljs999
2017-02-07 02:44:51 +08:00
哎,提示要过 30 分钟才能回复

好像是在这种路径下 file:/private/var/mobile/Containers/Shared/AppGroup/BF37536F-C2CA-4703-A08C-FFA9FF4C8137/Session/2017-02-06_223713/data/108.dump

里面 16 进制打开是
1F8B0800000000000003AA562A2E492C292D56B2522A2E4D4E4E2D2E56D251CACC4BCB070AC4945A24A599C7949A259B18014923438398525323CB34A55A00000000FFFF0300ADC0C37336000000

不知道怎么转换成,是什么编码格式
{"status":"success","info":"\u8bf7\u6c42\u6210\u529f"}


弄起来很不方便啊,能以文本形式直接保存在 post 的数据下面么
类似
POST http://passport.feng.com/index.php?r=mobile/user/CheckUserStatus HTTP/1.1
Host: passport.feng.com
Proxy-Connection: keep-alive
X-Requested-With: XMLHttpRequest
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://passport.feng.com
Content-Length: 0
Connection: keep-alive
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1
Referer: http://passport.feng.com/?r=mobile/user/login&sso5jump 0=http0X0P+00.0000000.000000bbs.feng.com0.000000&sso5name 0=0.000000E+0050X0P+088E998B0.000000E+0080X0P+0EBA0.000000E+005 09&sso5apps 0=2&sso5verify 0=7a928982dd59b02a3024858bd61ccf22
Cookie: SERVERID=104882b574c91d7c8db6fe3997326597|1486391956|1486391939; PHPSESSID=4gcug577mn5rfvv93dh7q16e21; acw_tc=AQAAAGFeW0kbvAgAq0KIdbVprn+edOgE

username=aaaaa&pwd=bbbbb


这样直接把 post 的参数放在下面,在加上 https 支持的话,对我来说就完美了
感激不尽
hewigovens
2017-02-07 08:30:51 +08:00
要是能换个好看点的图标就好了~
AlexaZhou
2017-02-07 11:03:19 +08:00
@ljs999

那个 dump 文件是服务器的原始输出,可能有 chunked / gzip 包装,不好直接查看,通过 anyflow 里面的界面查看时,是会自动解析这个文件,得到原始数据再展现的。

要不这样,你到 github 上面提个 issue ,告诉我你读取这个数据的方式,我看看能不能帮你搞定。

因为在我的理解中,把 post 的 body 和 header 放在一起,或是另启一页进行展示,都是一样的,如果你可以读取到前面一页的数据,那么不也可以读取到后面一页的数据么?可能这个地方我们想的有些差别,你去通过 issue 提交你的需求就好了
AlexaZhou
2017-02-07 11:06:03 +08:00
@cinhoo

多谢支持~

@hewigovens

最近精力主要集中在功能上面,所以。。。
windygoose
2017-02-07 11:27:37 +08:00
已经购买,期待 mac 版本
congjiujiu
2017-02-07 11:32:48 +08:00
已入,非常棒,期待 mac 版!
zhenjiachen
2017-02-07 11:36:50 +08:00
什么状况,打开就闪退,打开就闪退,连应用界面都进不去。 iPhone se , IOS 10.2.1
AlexaZhou
2017-02-07 11:40:39 +08:00
@zhenjiachen

呃,是不是手动清理过 log ?当前这个版本自动清理 log 的代码有问题, 一条 log 都没有的时候会报错。。。

重新安装可以解决,这两天会发布个版本修正这个。
AlexaZhou
2017-02-07 11:42:08 +08:00
@windygoose @congjiujiu

多谢二位支持
Qlccks2
2017-02-07 11:46:58 +08:00
设置可以通过 icloud 同步吗?
docker
2017-02-07 11:47:31 +08:00
我想问下,这个抓获的包跟我直接设置代理,然后用 burpsuite 抓包,效果一样吗?
AlexaZhou
2017-02-07 11:52:19 +08:00
@Qlccks2

目前还不行,后续会添加这个功能

@docker

理论上抓到的包是一样的
hewigovens
2017-02-07 11:58:06 +08:00
@AlexaZhou 请个设计师设计一下嘛,替换个图标不是很快。。
crayhuang
2017-02-07 12:15:59 +08:00
@ryahcs 这个对比小火箭的优势是什么?考虑入一个
clotong
2017-02-07 12:19:19 +08:00
已购买,后期会支持 SSR 不
ljs999
2017-02-07 12:27:29 +08:00
issue 这个我不懂,还是直接在这里说吧
我的需求就是
在 log 记录里面,post 数据后面直接带上 post 提交的内容
-----------------------------------------------
不能提交图片,可能说不清楚,你用过 fiddler 么,里面的 post 数据就是直接显示参数的
比如
POST http://task.browser.360.cn/online/setpoint HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Content-Type: application/x-www-form-urlencoded
Host: task.browser.360.cn
Content-Length: 332
Pragma: no-cache
Cookie: __guid=93836111.986776786712692600.1486039912887.6738

stamp=1486435755&qt=Q%3Du%3Dywf999%26n%
-----------------------------------------------------------------------
这样我就能直接在 log 里面读到参数,而不需要在去读取********.dump,在转换内容
主要是我水平差,搞这个 dump 有难度
AlexaZhou
2017-02-07 12:58:13 +08:00
@clotong

多谢支持,目前还没确定是否支持 SSR ,等把功能完善了再考虑吧

@hewigovens

想弄个好图标的话,需要考虑的点还是很多的,没那么简单😅

@crayhuang

小火箭只能 Proxy , AnyFlow 除了 Proxy ,还可以分析网络请求。

另外 AnyFlow 在性能,稳定性和省电方面都是首屈一指的。

@ljs999

我明白你的方法了,实际上你是想通过分析 AnyFlow 的 log 文件,得到请求的信息对吧。
就是这个地方技术上比较困难,我很难把这两个东西放在一起打印出来,抱歉哈。具体原因比较复杂,你如果想知道可以联系我邮箱,我会告诉你原因。
ljs999
2017-02-07 13:01:16 +08:00
是的 可是我也不懂这方面的,

原来数据都是保存在.sqlite3,能同步保存在 log 里面么,我一直以为是同步的,知道我发现这次开关软件后,在 log 里面找不到数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/338090

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX