gpt4 book ai didi

iOS:一些应用程序似乎绕过了 NEPacketTunnelProvider。如何执行?

转载 作者:行者123 更新时间:2023-12-04 15:02:16 27 4
gpt4 key购买 nike

我正在开发一个 NetworkExtension,它使用 NEPacketTunnelProvider 来提供类似 VPN 的隧道,以便我可以修改流量。

这基本上适用于到目前为止我尝试过的所有应用程序,但 Facebook Messenger 似乎可以忽略它。我首先看到流量通过隧道,应该被阻止(用于测试),但是消息无论如何都成功发送。

对我来说,这表明 Messenger 首先通过隧道,当它不起作用时,它有某种后备。无论我使用 Wifi 还是蜂窝数据,都会发生这种情况。起初我认为它可能会在 WiFi 不工作时以某种方式回退到蜂窝网络,但即使我在 iOS 级别禁用蜂窝网络,当隧道处于事件状态时 Messenger 仍然可以工作。

我尝试获取所有系统路由(即 IP 和掩码)并在 NEIPv4Settings 上手动将它们设置为 includedRoutes,但这没有任何效果。

这看起来 Messenger 确实绕过了 VPN 隧道吗?还是其他原因在起作用?

到目前为止,我基本上已经尝试了所有配置组合,似乎没有任何东西以任何方式影响 Messenger。 Signal、Instagram、YouTube 等应用可以通过隧道成功断网。

编辑:在苹果官方论坛上找到这个:https://developer.apple.com/forums/thread/122330

Actually Facebook Messanger sends traffic to all active interfaces in iOS. It even sends tarffic out trough Cellular, when mobile data is disabled from settings.

编辑 2:我尝试了新的 iOS 14 配置选项 includeAllNetworks,它似乎适用于 Messenger,但不知何故弄乱了 Signal 或 WhatsApp 等其他应用。

当我没有打开这个标志时,Signal 可以与我的 VPN 一起工作,我可以看到它的流量,但是当我启用这个标志时,Signal 既不发送消息也不接收消息。

最佳答案

应用程序可以使用低级 API 并通过某些接口(interface)强制流量(例如使用绑定(bind)),然后转到您的 VPN 之外。

强制使用 VPN 的方法是在您的 VPN 配置中启用标志 includeAllNetworks -

manager.protocolConfiguration!.includeAllNetworks = true

关于iOS:一些应用程序似乎绕过了 NEPacketTunnelProvider。如何执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66779666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com