你如何监测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,设置起来非常简单。

  1. 在您的Mac上安装Charles
  2. 获取Mac的IP地址 – 使用Mac“networking实用程序”
  3. 在iPhone / iPad上打开Wifi设置并在“HTTP代理”下更改为手动,然后从步骤(2)中inputIP,然后将端口设置为8888(查询默认端口)
  4. 打开Charles并在“代理设置”对话框中,确保选中“启用Mac OS X代理”和“使用HTTP代理”
  5. 你现在应该看到查尔斯内出现的stream量
  6. 如果您想查看HTTPSstream量,则需要执行额外的2个步骤下载Charles证书包 ,然后将.crt文件通过电子邮件发送到您的iPhone / iPad并进行安装。
  7. 在“代理服务器设置”对话框的“SSL”选项卡中,添加要与端口443嗅探的特定https顶级域。

如果您的Mac和iOS设备不在同一个Wifinetworking上,您可以使用“系统偏好设置”中的“共享”下的“Internet共享”选项将您的Mac设置为Wifi路由器。 然后,将设备连接到“Wifi”networking,然后按照上述步骤操作。

通过代理运行它,并使用Wireshark监视stream量。

对于Mac OS X

  1. 安装Charles Proxy
  2. 在查尔斯去代理>代理设置。 它应该显示HTTP代理端口(默认为8888)。

对于Windows

  1. 安装Fiddler2
  2. 工具 – >提琴手选项 – >连接并选中“允许远程计算机连接”

一般设置

  1. 转到设置> 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这些命令:

  1. rvictl -s UDID – (设备20个字符的ID,您可以在iTunes中find4t或Xcode中的组织者)

  2. sudo launchctl list com.apple.rpmuxd

  3. 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团队,但现在已经不在了。