0

这听起来很奇怪,请不要判断这样做不切实际,但我需要添加对控制来自 Android 设备的出站网络流量的支持。不必有选择性。我基本上需要将设备置于通过 WIFI 进行出站通信静音的模式。(主要)原因是我有一个远程控制的联网应用程序,我需要能够按需将其置于“通信睡眠”状态,然后在一段时间后或按需“唤醒”它. 按需方面是远程控制的。因此,需要将设备置于只接受绑定通信的状态。

我主要对 TCP/UDP 阻止出站流量感兴趣。我对单独的防火墙应用程序不感兴趣。我的应用程序包含一个服务,该服务已经实现了所需的所有通信代码。我只需要一些关于如何控制出站通信的建议。

仅供参考,我混合使用 2.3 和 4.0 设备。

我可以让我的服务实现一些基本的防火墙支持吗?也许是设备配置使用的简单代理?(类似于 Ad Block 应用)

在此先感谢您的任何建议。如果可能的话,我会尝试在这里分享它的代码。

更新:对不起,无论如何我在这些设备上都需要 root。

在代理的想法上,我真的只需要一个监听端口的黑洞。如果我可以从我的应用程序设置系统代理设置,当需要禁用出站通信时,我可以启用代理并断开所有连接。

如果我无法设置系统代理设置,我将不得不实现一个工作代理,要求用户配置代理,并在收到连接时相应地控制它的行为。

4

1 回答 1

0

我不妨回答我自己的问题。使用 root 您可以包含 iptables 并进行一些命令行调用来控制流量。请注意,您应该对状态防火墙概念有一定的经验,因为除非您确切知道系统/应用程序应该做什么,否则与出站 DENY 混淆会导致您感到困惑。(随机响应端口等...)

代理服务适用于允许网络代理支持的 Android 设备和版本。不幸的是,并非我所有的设备都允许这样做。(我的 Ginger Bread 设备不支持代理,它只是不存在于 UI 中,并且 API 对 HTTP_PROXY 系统设置是只读的)

所以没有可提供的示例代码。我在我的设备上玩 iptables。我可能会将它包含在我的应用程序中,这无论如何都需要 root。

于 2013-05-01T18:51:48.763 回答