你如何监测iPhone上的networkingstream量?
我们正在寻找一种类似于Wireshark的工具,以便在与第三方合作之前,在iPhone上使用该工具来testing第三方应用程序。 有什么build议么?
你没有指定你使用的平台,所以我认为这是一个Mac 😉
我所做的是使用代理。 我使用SquidMan ,一个独立的Squid实现
我在Mac上启动SquidMan,然后在iPhone上,在General / Wifi Settings中inputProxy params。
然后,我可以在控制台应用程序中观看HTTP trafic,查看squid-access.log
如果我需要更多的信息,我切换到tcpdump,但我想WireShark也应该工作。
如果您只想查看HTTP / HTTPSstream量,则可以使用其他答案所build议的中间人代理。
数据包嗅探的最佳解决scheme(虽然它只适用于实际的 iOS设备,而不是模拟器)我发现是使用rvictl
。 这个博客文章有一个很好的写作。 基本上你可以这样做:
rvictl -s <iphone-uid-from-xcode-organizer>
然后用Wireshark(或者你最喜欢的工具)嗅探它创build的界面,当你完成closures界面时:
rvictl -x <iphone-uid-from-xcode-organizer>
这很好,因为如果你想要嗅探模拟器,那么你不得不通过stream量来访问本地Mac,但是rvictl
创build了一个虚拟接口,只显示你插入你的iOS设备的stream量USB端口。
注意:这只适用于Mac。
我使用查尔斯Webdebugging代理费用,但他们有一个试用版。
如果您的iPhone / iPad与您的Mac共享相同的Wifinetworking,设置起来非常简单。
- 在您的Mac上安装Charles
- 获取Mac的IP地址 – 使用Mac“networking实用程序”
- 在iPhone / iPad上打开Wifi设置并在“HTTP代理”下更改为手动,然后从步骤(2)中inputIP,然后将端口设置为8888(查询默认端口)
- 打开Charles并在“代理设置”对话框中,确保选中“启用Mac OS X代理”和“使用HTTP代理”
- 你现在应该看到查尔斯内出现的stream量
- 如果您想查看HTTPSstream量,则需要执行额外的2个步骤下载Charles证书包 ,然后将.crt文件通过电子邮件发送到您的iPhone / iPad并进行安装。
- 在“代理服务器设置”对话框的“SSL”选项卡中,添加要与端口443嗅探的特定https顶级域。
如果您的Mac和iOS设备不在同一个Wifinetworking上,您可以使用“系统偏好设置”中的“共享”下的“Internet共享”选项将您的Mac设置为Wifi路由器。 然后,将设备连接到“Wifi”networking,然后按照上述步骤操作。
通过代理运行它,并使用Wireshark监视stream量。
对于Mac OS X
- 安装Charles Proxy
- 在查尔斯去代理>代理设置。 它应该显示HTTP代理端口(默认为8888)。
对于Windows
- 安装Fiddler2
- 工具 – >提琴手选项 – >连接并选中“允许远程计算机连接”
一般设置
- 转到设置> Wifi>
i
符号>在底部代理服务器>设置为手动,然后为服务器把你正在工作的计算机的IP地址,端口放8888,因为这是每个这些应用程序的默认值
ARP欺骗
最后一节的一般说明,如果你想嗅探所有的networkingstream量,将使用ARP欺骗来将所有的stream量从你的iOS转发到笔记本电脑/台式机。 ARP欺骗有多种工具,需要在所有细节上进行研究。 这样,您可以看到每盎司的stream量,因为您的路由器将所有iOS设备的数据路由到笔记本电脑/台式机,然后您将自动将此数据转发到iOS设备。
请注意,我只推荐这是最后的手段。
不知道你的要求是什么,这是我做了什么,看看从iPhone打包:连接以太网上的一个mac,在机场共享其networking,并连接到该无线networking的iPhone。 在Mac上运行Wireshark或Packet Peeper。
在越狱iPhone / iPod捕获stream量很好地通过“tcpdump”和“pirni” – 在cydia存储库中可用。 这些数据的分析是通过将捕获转移到另一台机器并使用诸如wireshark之类的东西来完成的。 然而,鉴于这些工具似乎正在进行积极的发展,很快iPhone就有可能处理这一切。
我发现最好的解决scheme:
通过USB连接你的设备
然后input这些命令:
-
rvictl -s UDID – (设备20个字符的ID,您可以在iTunes中find4t或Xcode中的组织者)
-
sudo launchctl list com.apple.rpmuxd
-
sudo tcpdump -n -t -i rvi0 -q tcp
或者只是sudo tcpdump -i rvi0 -n
如果rvictl不工作安装Xcode
欲了解更多信息: 远程虚拟接口
http://useyourloaf.com/blog/2012/02/07/remote-packet-capture-for-ios-devices.html
这是另一种方式http://www.tuaw.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/
我没有看到Roger Nolan的回复,上面的链接与另一个工具的工作stream程相同。
根据你想要通过代理运行它是不理想的。 只要数据包不被篡改,透明代理就可以正常工作。
我正准备将iOS 4.3.x上从iPhone传输到iPad的GPS数据反转到vanilla数据,获得干净networking转储的最佳方法是使用“tcpdump”和/或“pirni”如已经暗示的那样
在这个特殊的情况下,我们希望系链数据需要尽可能透明。 显然你需要你的手机JailBroken这个工作。
如前所述 ,试用Mac OS X上的Debookee ,它将透明地拦截iPhone的stream量,而不需要代理服务器。 然后,您将实时看到设备使用的不同协议。
免责声明:我是Debookee开发团队的一员,这是一个付费应用程序。 试用版会在有限的时间内显示所有function。
一个通用的解决scheme是使用一个configuration为透明代理的linux框(可以在虚拟机中)来拦截stream量,然后使用wireshark或tcpdump或其他任何你喜欢的方法进行分析。 也许MacOS也可以做到这一点,我没有尝试过。
或者,如果您可以在模拟器中运行应用程序,则可以监视您自己机器上的stream量。
Com'on,没提到提琴手 ? 爱在哪里 :)
Fiddler是一个非常stream行的HTTPdebugging器,针对开发人员而不是networkingpipe理员(即Wireshark)。
设置iOS是相当简单的过程 。 它也可以解密HTTPSstream量!
QA部门开始使用Fiddler解决问题后,我们的移动团队终于得到了解脱。 在小提琴手之前,人们不知道该指责谁,移动团队或API团队,但现在已经不在了。