目前 AnyFlow 上线两个月,不管是从稳定性,还是速度,或功能完成度上来说,都远超过了其他类似 app 同期的水平,并且获得了很多用户的较高评价。
目前 AnyFlow v1.6 版本已经上线 appstore ,在之前版本已经很稳定和省电的基础上,作了多处增强,并修正了一系列奇奇怪怪的 bug (/ω\),变得更加好用了。
还增加了默认规则和文档来降低上手难度。
如果你还在观望的话,是时候入手了
AnyFlow 是一款强大的基于 NetworkExtension 的网络调试工具。运行于 iOS 系统,能在消耗很少系统资源的情况下,在后台持续提供服务,让你可以完全控制手机流量。
允许查看并记录所有的 HTTP 请求,查看 HTTP Header , Body 。以及从请求到结束过程中,每一步所消耗的时间。
按照自定义的规则,可以将流量直接本地转发;或者经过代理服务器发送,来加速网络访问;对某一类请求,还可以直接 Reject 或者 Drop ,达到去广告,或者减少不必要流量消耗的目的。
基本来说,这款 APP 对开发者来说是十分值得拥有的,毕竟用来调试 APP 的接口很方便,将来还会加入 MITM 功能。
对普通人来说也很有用,可以加速网络访问不是么。
从第一行代码开始, AnyFlow 就是为了在 iOS 上 7*24 小时持续不间断使用而设计的。所以整个开发过程中,效率和稳定性,都是最优先考虑的目标,其次的目标是性能,我自己编码实现的成本则排在最后。目标是达到服务器软件,例如 Nginx 这种级别的稳定性,让你在手机上打开之后,就不用管了,开着几个月也没关系, AnyFlow 一直在后台帮你加速网络访问。
为了达到这个目的, AnyFlow 基本上把所有部件都轮了一遍,包括 DNS Forwarder , HTTP Proxy , NAT 等。通过专门开发的 HTTP Proxy 实现了对多种协议的支持,并没有像其他 APP 那样,集成开源组件进行流量转发。
这些各种各样的差别累积起来, AnyFlow 基本上有着 TOP 级别的效率和速度(可见效果是最少的发热和卡顿),让你在手机上用的更舒心。
对于这样一款高性能,无广告,无内购,充分解决用户需求的 APP 来说,现在的价格绝对是超值。
101
AlexaZhou OP @quericy
我看了那个规则,是因为用到了 Surge 的 Proxy Group , 内嵌了节点信息,所以没办法导入,这是规则模型不一样导致的。 可以收工编辑一下去掉 Proxy Group , AF 支持的规则格式在说明文档里面有。 |
102
AlexaZhou OP |
103
AlexaZhou OP |
104
AlexaZhou OP |
105
BeliefanX 2017-02-05 20:56:42 +08:00
已有 surge 的 ios 和 mac 版,但是还是买了 支持一下作者!
|
106
luoyi519 2017-02-05 21:06:57 +08:00 via Android 1
也用了一段时间了,很希望看到支持 https 和 mac..
|
107
defunct9 2017-02-05 22:32:32 +08:00 via iPhone
犹太人在一个地方开了一个加油站,生意特别好,然后第二犹太人来了开了一个餐厅,第三个犹太人就开了一个超市,这片就很繁华了。中国人开了一个加油站生意特别好,第二个中国人肯定开第二个加油站,第三个、第四个......。相信会有更便宜的 clone 出现
|
108
AlexaZhou OP |
109
AlexaZhou OP |
111
wayne1943 2017-02-05 23:14:36 +08:00
已入, 请问 Mac 版会支持自定义软件走代理功能吗?
|
112
hugsky 2017-02-05 23:27:25 +08:00
已入,耗电和稳定性观察一段时间再汇报。
|
113
muyi 2017-02-06 01:14:32 +08:00
已入,期待支持 HTTPS
|
114
yexiaoxing 2017-02-06 03:44:25 +08:00 via iPhone
提个小问题, App Store 上的 Description 中 Features 里 HTTP 写成了 HTPP 。
|
115
yexiaoxing 2017-02-06 03:47:16 +08:00 via iPhone
先买了,等完善^ω^
|
116
wc0517 2017-02-06 09:06:56 +08:00
已经购买,貌似跳过了系统的蜂窝数据管理,这个功能能加上来吗?
|
117
serenader 2017-02-06 10:53:23 +08:00
已入,不知道后续能否加入修改 hosts 的功能啊?有时候调试的时候需要把某些域名给解析到本地的 IP 呢。
|
118
xuhai951753 2017-02-06 11:51:13 +08:00
已入。不过希望能快些支持 https 。公司移动站全是 https 了。
|
119
frozenthrone 2017-02-06 11:55:35 +08:00
已入
|
120
frozenthrone 2017-02-06 12:38:04 +08:00
怎么导入 http://www.abclite.cn/Abclite_ADB.conf
直接 import from url 失败 |
121
ljs999 2017-02-06 13:39:41 +08:00
请问,这个 app 能不能实现单纯的抓包,自动保存成文本,我不需要 vpn 功能,只是想保存封包
另外 https 多久可以实现 为什么发了不显示呢 |
122
ljs999 2017-02-06 13:40:54 +08:00
就是抓移动网络的包,现行直接就可以用么
|
124
AlexaZhou OP @hugsky
多谢支持。 我在最开始编写代码的时候,就深入的考虑了省电和稳定性,欢迎发布你的测试结果 ^_^ @muyi @xuhai951753 多谢支持。 HTTPS 我尽快加上。 @yexiaoxing 多谢支持。另外描述已经修正。 @wc0517 多谢支持。我不太明白,可否具体描述一下这个功能? @serenader 多谢支持。本地 HOST 后续会加上 |
125
AlexaZhou OP |
126
DearTanker 2017-02-06 14:31:59 +08:00
|
127
AlexaZhou OP |
129
ljs999 2017-02-06 14:35:35 +08:00
好的,刚看到你的回复,谢谢
|
130
ljs999 2017-02-06 14:50:04 +08:00
入手了一份,看来不错,就等加上 https 了,加油
|
131
xiangchen2011 2017-02-06 14:50:50 +08:00
二维码导入还没有添加吗?
|
132
AlexaZhou OP |
133
wc0517 2017-02-06 15:25:41 +08:00
@AlexaZhou 就是比如你装了 10 个 App ,你可以设置哪些是能走蜂窝和 WiFi ,哪些是只能 WiFi ,哪些是 WiFi 和蜂窝都不能走。这样一个是可以避免不必要的流浪浪费,比如我用 Apple Music ,就禁止了蜂窝数据,避免它在我误操作的情况下下载歌曲。
比如我禁止 Bilibili 使用蜂窝数据,我在 WiFi 下下载视频,拿着手机出去玩了它不会切换成流量下载。 |
134
JackyBao 2017-02-06 15:27:50 +08:00
能说说和 shadowrocket 的区别吗?
|
135
ljs999 2017-02-06 15:42:34 +08:00
手机没有越狱,看了下软件目录的 /Documents 下没有日志文件,不知道保存在哪里
可以在 /Documents 保存么,方面通过 pp 助手拷出来 |
136
justfly 2017-02-06 16:17:40 +08:00
已入,并想讨论个技术向的问题:
mac 上命令行下的二进制,要让他们走代理,用苹果的 NetworkExtension 是否可以统一实现? 因为命令行下的二进制程序设置环境变量 http_proxy 和 https_proxy 并不完美: 1. 不能基于 rule ,需要频繁修改这两个变量 2. 很多程序的网络通讯并不是 http 协议的 3. 很多程序并不看环境变量 http_proxy 和 https_proxy (这点包括很多 GUI 应用) 但是我们知道所有的网络流量都是走 en0 等网络设备出去的,如果能进入这一层通过 IP 数据包进行代理和 rule 配置,将会完美解决上面真正的痛点,否则就和 shadowsocksX 等应用没啥本质区别了。 |
137
AlexaZhou OP |
138
AlexaZhou OP |
139
ljs999 2017-02-06 20:13:14 +08:00
那可以保存在别的地方么,有自动保存就行,我用越狱机测试
|
140
AlexaZhou OP @justfly
你提了个比较深入的问题😄,答案是可以的。 简单来说, NetworkExtension 除了作为一个 HTTP Proxy 工作以外,还可以拿到所有 ip 层的包。有了 IP 层的包,就可以重新还原成 TCP 的数据流,接着就可以基于规则来进行代理或者其他处理,而不需要单独设置客户端程序来主动使用代理。 |
141
AlexaZhou OP |
143
ljs999 2017-02-06 21:14:22 +08:00
|
144
ljs999 2017-02-06 21:19:40 +08:00
点击 config ,add rule group ,empty group, proxy rules 闪退
|
145
wc0517 2017-02-06 21:22:28 +08:00
@AlexaZhou 我现在设置了 Safari 只能通过 WLAN ,开 Anyflow 后蜂窝数据能上,关闭 Anyflow 后蜂窝数据就不能上了。
|
146
AlexaZhou OP @ljs999
规则部分是用来设置对请求的处理方法的,例如代理,直联,或者拒绝,和记录请求并没有关联。 然后对请求的记录是一个整体的功能,如果开启就会记录所有的请求,目前还没办法设置只记录某个地址的封包😅,你想只记录特定封包的需求是做什么呢?可否详细告诉我一下,合适的话我可以在后期版本加入 |
148
AlexaZhou OP @wc0517
有没有可能是缓存的原因? 我实际测试了百度地图,限制在 WIFI 下访问。然后开启和不开启 AnyFlow 的情况下,分别测试 4G 和 WIFI ,都是正常的。 另外这个是系统自动控制的, AnyFlow 并没有做其他的额外操作,如果抽风了,应该也是系统的原因😅, NetworkExtension 并没有办法控制这个 |
149
ljs999 2017-02-06 22:57:40 +08:00 1
这个可以应用在多账号登陆上面,比如要记录某个软件登陆不同账号后的 cookie 文件
目前我是想登陆不同的微信,然后打开某个活动页面,记录不同的 cookie,在通过别的软件把数据上传到电脑,直接 wifi 的话,用 fiddler 抓包比较方便,但是容易封号 那么记录别的数据就显得很多余了,因为我不需要 另外我看 post 记录的,post 参数显示在下面用 text 查看,不能直接显示在上面 和前面空一行这样么,和 fiddler 记录的一样 |
150
AlexaZhou OP @ljs999
我大概了解了,我的理解是目前全部记录的方式,并非不能用,而是查看的时候目标请求可能被淹没会比较麻烦对吧。 这样我后续可以先加入一个过滤器,方便查看。只捕获指定请求这个需求不是很强,会放到后面。 Post 参数的显示方式是为了统一处理,因为有各种类型的数据可能要用不同的方式来展现。 |
151
ljs999 2017-02-06 23:09:36 +08:00
好的,是这个意思,并不是要人工看,而是通过软件在提取,所以希望能额外保存一份过滤后的数据.
|
152
zywsss 2017-02-06 23:11:52 +08:00 via iPhone
ss 特殊字符密码连接失败,没其它人有这个问题?已提交 issue
|
153
AlexaZhou OP @ljs999
我不太清楚通过软件自动提取是怎样的一个流程,我的理解是,因为记录的数据保存在 iPhone 的文件系统中,是没办法被其他软件访问的。 只有越狱的设备才可以访问,如果是通过在越狱设备上访问,那么就需要解析 AnyFlow 的保存的数据格式,才可以读取到对应的数据。 无论 AnyFlow 是不是只记录了那些请求,如果想拿到数据,都需要对保存的数据进行解析,找到所需要的部分。实际上 AnyFlow 本身是只记录了这些请求,或者记录了全部的请求,是没有什么影响的。 |
154
AlexaZhou OP |
155
wc0517 2017-02-06 23:28:21 +08:00 via iPhone
@AlexaZhou 不是缓存的问题,我这边关闭了十几个 App 的蜂窝数据,现在只要打开 anyflow 全都能联网,关闭 anyflow 全都正常了。我也很纳闷这是咋回事
|
156
ljs999 2017-02-06 23:33:05 +08:00
你说的对,但是如果保存的数据过多的话,通过 4g 传到电脑,消耗的流量和时间,也是个头疼的问题,本身我是用触摸精灵的脚本来读取数据的,不是很精通,所以如果你方便修改的话,能做个额外保存过滤后数据最好了,不方便的话我自己先研究吧
|
157
ryahcs 2017-02-06 23:34:06 +08:00 1
已支持,看来可以把小火箭卸了。
|
159
AlexaZhou OP |
160
ljs999 2017-02-06 23:52:29 +08:00
又要麻烦了,在 AnyFlow 目录下的 log 里面找到了我要的 post 数据,但是找不到这条 post 提交的参数,不知道该到哪里找呢
|
161
AlexaZhou OP @ljs999
这个有些困难,但也不是不能做。 大概的步骤是先读取 session 目录,找到你保存的 session 文件夹,然后读里面的 sqlite 数据库,找到需要的对应的请求,以及记录 body 的文件名,再读取对应的 body 文件。 |
162
cinhoo 2017-02-07 00:07:32 +08:00 via iPhone
已支持。一开始碰到了 ios10 不跳联网权限的 bug ,一直不能上网,重启才解决
|
163
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 支持的话,对我来说就完美了 感激不尽 |
164
hewigovens 2017-02-07 08:30:51 +08:00
要是能换个好看点的图标就好了~
|
165
AlexaZhou OP @ljs999
那个 dump 文件是服务器的原始输出,可能有 chunked / gzip 包装,不好直接查看,通过 anyflow 里面的界面查看时,是会自动解析这个文件,得到原始数据再展现的。 要不这样,你到 github 上面提个 issue ,告诉我你读取这个数据的方式,我看看能不能帮你搞定。 因为在我的理解中,把 post 的 body 和 header 放在一起,或是另启一页进行展示,都是一样的,如果你可以读取到前面一页的数据,那么不也可以读取到后面一页的数据么?可能这个地方我们想的有些差别,你去通过 issue 提交你的需求就好了 |
166
AlexaZhou OP |
167
windygoose 2017-02-07 11:27:37 +08:00
已经购买,期待 mac 版本
|
168
congjiujiu 2017-02-07 11:32:48 +08:00
已入,非常棒,期待 mac 版!
|
169
zhenjiachen 2017-02-07 11:36:50 +08:00
什么状况,打开就闪退,打开就闪退,连应用界面都进不去。 iPhone se , IOS 10.2.1
|
170
AlexaZhou OP |
171
AlexaZhou OP |
172
Qlccks2 2017-02-07 11:46:58 +08:00
设置可以通过 icloud 同步吗?
|
173
docker 2017-02-07 11:47:31 +08:00 via iPhone
我想问下,这个抓获的包跟我直接设置代理,然后用 burpsuite 抓包,效果一样吗?
|
175
hewigovens 2017-02-07 11:58:06 +08:00
@AlexaZhou 请个设计师设计一下嘛,替换个图标不是很快。。
|
177
clotong 2017-02-07 12:19:19 +08:00
已购买,后期会支持 SSR 不
|
178
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 有难度 |
179
AlexaZhou OP @clotong
多谢支持,目前还没确定是否支持 SSR ,等把功能完善了再考虑吧 @hewigovens 想弄个好图标的话,需要考虑的点还是很多的,没那么简单😅 @crayhuang 小火箭只能 Proxy , AnyFlow 除了 Proxy ,还可以分析网络请求。 另外 AnyFlow 在性能,稳定性和省电方面都是首屈一指的。 @ljs999 我明白你的方法了,实际上你是想通过分析 AnyFlow 的 log 文件,得到请求的信息对吧。 就是这个地方技术上比较困难,我很难把这两个东西放在一起打印出来,抱歉哈。具体原因比较复杂,你如果想知道可以联系我邮箱,我会告诉你原因。 |
180
ljs999 2017-02-07 13:01:16 +08:00
是的 可是我也不懂这方面的,
原来数据都是保存在.sqlite3,能同步保存在 log 里面么,我一直以为是同步的,知道我发现这次开关软件后,在 log 里面找不到数据 |
181
AlexaZhou OP @ljs999
因为 log 是为了调试的,从最开始设计的时候,并没考虑到从 log 里面读取到请求信息这个需求,所以现在加入这个会很困难。 App 的 More > About 里面有我的 twitter ,如果你还对这个有兴趣,就在 twitter 上面联系我吧,论坛毕竟不是聊天的地方😅 |
183
ljs999 2017-02-07 13:41:31 +08:00
好吧,软件又闪退了,上次闪退后重启还是无效,最后删除 app 重新安装才行的,不知道是什么原因
|
184
ljs999 2017-02-07 13:42:19 +08:00
国内也就能访问这个了,不方便修改的话,我自己研究吧
|
185
AlexaZhou OP |
187
tianmw 2017-02-07 14:42:49 +08:00 via iPhone
发现问题, iOS 9.3.5
第一个, WorkMode=RuleProxy Default Policy=Direct Rule 勾选默认那个 这个配置应该是 Rule 定义的那些网站 app 走 proxy ,其他的直连,我发觉该走 proxy 的是走了,但微信一直是无法连接状态,后来开启了分析,看到微信服务器大概是 wechat.qq.com ,我特意把它在 rule 里设置成直连,但还是不行。 后来索性改成 global proxy ,意思应该是全部走 proxy 吧,微信还是不行,其他网站 app 可以用。你需要检查下是否跟微信存在冲突?我的 ss 确认没有问题。 第二个问题, Add rule group-empty group-然后点 proxy rules total 0 ,出现闪退,试了几次都这样。 |
188
tianmw 2017-02-07 14:47:35 +08:00 via iPhone
另外,我建议你花更多精力在 fan qiang 这块,有点太注重 analytics 了,这个 app 如果给一个小白用的话,是无法上手的,我作为一个 IT 背景的人,也觉得需要琢磨一下,当然我不是搞开发的,肯定技术还不够在行。我买这个 app 是看重耗电少,主要用来连 ss ,小火箭太费电了,但目前这部分功能遇到上述问题。 ldss 的界面要友好很多,可能你们的定位不同。
|
189
skylancer 2017-02-07 14:59:53 +08:00
@zhenjiachen 如果是清理日志导致的,可以手动在系统 VPN 中连接,会自动拉起 Anyflow 并创建日志,再打开 AF 就能进去了
|
191
AlexaZhou OP @CEEC
Surge 有个 DCup 的设计师。。。 @skylancer 好方法,我都没想到。 @tianmw 1 ,我在本机 ( ip7 10.2 ) 测试了没能复现你所说的现象,所以我觉得可能是 ios9 系统下的问题,因为 ios9 系统有时有些灵异事件。不知道这个能不能复现,如果一直是这种情况的话(排除偶然抽风),你可以直接给我邮箱发日志,我来分析吧 2 ,上一版本新引入的 bug ,目前已经修复了, 1.7 更新了之后就好 3 ,多谢你的建议,这毕竟是个专业级的 app ,所以分析是必不可少的,其实这个有很多人用,例如我自己每天也会用到这个分析功能。 但我会继续想一些办法降低上手难度,对新手更友好一些。和其他 app 相比,主要是设计思路不一样, AnyFlow 更多的把精力放到性能上面,界面也偏向专业使用,所以表现会不一样 |
193
tianmw 2017-02-07 22:43:38 +08:00
@AlexaZhou 微信是一直这样,我试了很多次了,为了这个问题我还好几次把 app 删了。。。但还是不太甘心反复试验,最后还是决定来反馈一下这个问题。。。其他 ss 软件都没这个问题啊,而且很奇怪的是朋友圈好像是可以刷出来的,但消息界面无法连接,也收不到消息。
|
194
owlsec 2017-02-07 23:37:40 +08:00
已经购买,支持一波(其实是为了未来 mac 版的折扣)。不过就界面上来说不如 shadowrocket 好看。
|
195
owlsec 2017-02-07 23:57:14 +08:00
另外能否考虑增加 widget?(类似 shadowrocket 那种有实时速度和流量的)
流量详情还是比较重要的。因为很多人都是购买的 ss ,有流量的限制。 |
196
tianmw 2017-02-08 02:08:32 +08:00 via iPhone
微信的问题,我觉得跟软件应该有冲突, work mode 选择 direct ,相当于直连,忽略 proxy ,忽略 rule 吧?依然是无法连接,朋友圈可刷新,但消息界面显示无法连接。已经更新到 1.6.1 。
|
197
tianmw 2017-02-08 02:37:24 +08:00 via iPhone
另外,建议增加二维码导入 ss 的功能,还是挺有用的。 fan qiang 部分的功能,我还是觉得需要巩固加强一下。包括前面有人提的 ssr 。
|
198
allen2000 2017-02-08 10:01:21 +08:00
anyflow 在 SS 代理中使用 OTA 无法连接到服务器,服务器端出错日志:
2017-02-08 09:55:24 WARNING unsupported addrtype 19, maybe wrong password or encryption method 2017-02-08 09:55:24 ERROR can not parse header when handling connection from ... 加密方式为 aes_256_cfb , anyflow 中禁用 OTA 后连接正常,服务器端使用 Shadowsocks 2.8.2(Python) |