【问题标题】:Android - Possible to implement simple firewall enforcement?Android - 可以实施简单的防火墙强制执行吗?
【发布时间】:2013-05-02 02:51:48
【问题描述】:

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

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

仅供参考,我可以同时使用 2.3 和 4.0 设备。

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

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

更新:抱歉,我在这些设备上拥有并且需要 root。

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

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

【问题讨论】:

  • 我猜除非你有 root。
  • Cripes,我的GingerBread 2.3.4联想A1s没有WIFI高级下的代理设置! ARG...我无法使用代理方法,因为系统无法配置为使用一个...

标签: android network-programming


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2013-07-08
    • 2013-12-12
    • 2013-03-28
    相关资源
    最近更新 更多