你如何监控iPhone上的网络流量?

61 security iphone networking wireshark

我们正在寻找一种类似Wireshark的工具,用于在与第三方合作之前测试第三方应用程序.有什么建议?

mpo*_*llo 45

如果您只想查看HTTP/HTTPS流量,那么像其他答案所建议的中间人代理是一个很好的解决方案.

数据包嗅探的最佳解决方案(虽然它只适用于实际的 iOS设备,而不是模拟器)我发现是使用rvictl.这篇博文有一篇很好的文章.基本上你做:

rvictl -s <iphone-uid-from-xcode-organizer>
Run Code Online (Sandbox Code Playgroud)

然后你用Wireshark(或你喜欢的工具)嗅探它创建的界面,当你完成后关闭界面:

rvictl -x <iphone-uid-from-xcode-organizer>
Run Code Online (Sandbox Code Playgroud)

这是不错的,因为如果你想分组嗅探模拟器,你不必通过交通涉水到本地的Mac为好,但rvictl创建一个虚拟接口,只显示你从iOS设备你插入到您的USB流量港口.

注意:这仅适用于Mac.

  • 同意这是一个很好的解决方案.我会进一步避免像这样的xcode:`system_profiler SPUSBDataType | grep -A 10 iPhone | grep Serial`:P (2认同)

Ste*_*lot 36

你没有指定你使用的平台,所以我认为它是一个Mac ;-)

我所做的是使用代理.我使用SquidMan,一个Squid的独立实现

我在Mac上启动SquidMan,然后在iPhone上我在General/Wifi Settings中输入Proxy params.

然后我可以在Console App中查看HTTP流量,查看squid-access.log

如果我需要更多信息,我会切换到tcpdump,但我认为WireShark也应该工作.

  • 对于Windows用户,Fiddler是一种用于嗅探HTTP流量的出色工具.您需要知道的一件事是在Fiddler中选择工具 - > Fiddler选项 - >连接并选中"允许远程计算机连接".在那里你还会找到它所监听的端口.在iPhone上,导航到WiFi网络的属性,然后在HTTP代理部分输入计算机的IP地址和Fiddler端口(使用手动设置).HTH. (4认同)

jon*_*wah 21

我使用Charles Web Debugging Proxy需要花费但是他们有试用版.

如果您的iPhone/iPad与Mac共享相同的Wifi网络,则设置非常简单.

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

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


Chr*_*nce 16

通过代理运行它并使用Wireshark监控流量.


abc*_*123 13

对于Mac OS X.

  1. 安装Charles Proxy
  2. 在Charles中转到代理>代理设置.它应该显示HTTP代理端口(默认情况下为8888).

对于Windows

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

常规设置

  1. 转到设置> Wifi> i符号>在底部代理>设置为手动,然后为服务器将您正在使用的计算机放在IP地址上,对于端口放置8888,因为这是每个应用程序的默认设置

ARP欺骗

最后一节的一般注意事项,如果你想嗅探所有网络流量,将使用ARP欺骗将所有流量从你的iOS转发到笔记本电脑/台式机.ARP欺骗有多种工具,需要对所有细节进行研究.这使您可以看到每一盎司的流量,因为您的路由器将所有用于iOS设备的数据路由到笔记本电脑/台式机,然后您将这些数据转发到iOS设备(自动).

请注意我只推荐这作为最后的手段.


Rog*_*Rog 9

在不知道您的要求是什么的情况下,这就是我从iPhone上看到的包装:在以太网上连接mac,通过机场共享其网络并将iPhone连接到该无线网络.在mac上运行Wireshark或Packet Peeper.


小智 9

在越狱的iPhone/iPod上,"tcpdump"和"pirni"都可以很好地完成捕获流量 - 可在cydia存储库中找到.通过将捕获转移到另一台机器并使用wireshark之​​类的东西来完成对这些数据的分析.然而,鉴于这些工具似乎正在进行积极的开发,iPhone可能很快就会处理它.


Ole*_*nov 8

我发现Works的最佳解决方案:

通过USB连接您的设备

并键入以下命令:

  1. rvictl -s UDID - (设备20个字符的ID,你可以在iTunes中找到4t或在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


pal*_*aja 6

这是另一种方式http://www.tuaw.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/

我没有看到Roger Nolan的回复,上面的链接与使用不同工具的工作流程相同.