如何在所有网络共享数据上禁用互联网

How to disable internet on all tethering data

我在托管网页的 android 设备上有一个应用程序。如果我通过 android 热点连接到运行它的设备,我可以使用默认 IP 查看页面。

本页数据来自互联网。因此 android 设备需要能够访问互联网。但是,我不希望连接到设备热点的用户能够访问互联网。我想知道切断 android 热点和它的传出数据连接之间的数据桥的最佳方法是什么。 (我目前正在使用以太网。)

我更喜欢可以编辑固件本身的源文件的解决方案,因为这应该是不可逆的。我可以完全控制源代码和 root。

提前致谢。

所以我突然得到建议查看安装在 android 4.2.2 中的 iptables。但是,此解决方案仅在您拥有 root 权限时才有效。

幸运的是它显示了这个:

Chain natctrl_FORWARD (1 references)
pkts bytes target     prot opt in     out     source               destination
0     0 natctrl_tether_counters  all  --  eth0   wlan0   0.0.0.0/0            0.0.0.0/0           [goto]  state RELATED,ESTABLISHED
0     0 DROP       all  --  wlan0  eth0    0.0.0.0/0            0.0.0.0/0            state INVALID
0     0 natctrl_tether_counters  all  --  wlan0  eth0    0.0.0.0/0            0.0.0.0/0           [goto]
0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

这条链将数据从以太网传递到 wifi。因此,如果我 运行 在命令行中输入以下内容:

iptables -I natctrl_FORWARD 1 -j DROP

它只是在顶部放置一个 DROP 并丢弃所有流量。

所以在应用程序中,您可以运行命令行脚本:

Runtime.getRuntime().exec(new String[]{"su", "-c", "iptables -I natctrl_FORWARD 1 -j DROP"});