android - 如何路由来自网络共享的所有流量?

标签 android proxy dns android-wifi tethering

我正在做一些测试项目,基本上我想在热点模式下将所有流量路由到一个固定地址。我有 IP 范围,例如 192.168.0.0/24 我不知道我是否可以使用 iptables without root 或 JNI 函数(找不到任何符合我想要的) 开箱即用的想法非常受欢迎(DNS、客户端连接上的低级数据包广播等...)

有什么想法吗?

编辑:Android 和 iOS 如何检测网络门户?

来源:https://sudoroom.org/wiki/Mesh/Firmware/Splash_page 他们尝试在

上进行 HTTP GET

iOS:http://www.apple.com/library/test/success.html并期望 200 如果不落后于门户

安卓:http://clients3.google.com/generate_204并在不在 portal 后面时期望 204 状态,任何其他状态都是 portal

那么,我该如何正确响应这些检测?

最佳答案

最简单的方法是在配置要连接的 wifi AP 时启用 socks 代理。这取决于 android 的版本,但通常是这样的:

  1. 触摸并按住您要连接的 wifi 网络。
  2. 应弹出一个对话框。在该对话框中,选择高级。
  3. 找到代理选项并输入您要将流量转发到的服务器的 IP 和端口。

Android 使用 SOCKS,只要您的代理也使用 SOCKS,您就可以开始使用了。如果您可以根设备(取决于您的 Android 版本),请自动配置此代理。例如,Android 版 AdBlock Plus 就是这样做的。

如果您不想走代理路线,您可以在您的设备已获得 root 权限的情况下手动设置 ebtables 规则。这需要做更多的工作,因为您必须小心不要弄乱您的设备已经在进行的 NAT。

关于android - 如何路由来自网络共享的所有流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23371094/

相关文章:

android - 在 fragment 之间共享 TouchEvent

android - 设置动态服务器

macos - OSX Mavericks-不再安装BIND…如何使本地DNS服务器正常工作?

android - 如何可视化指向特定坐标(纬度,经度)的箭头,给定俯仰和偏航

android - 模式 "One activity, multiple views": Advantages and disadvantages

android - 在 Android Studio 中链接外部库 (gradle)

c# - 通过注册表更改 PPPoE DSL 连接的代理设置

linux - 我可以配置 tinyproxy 来限制出站主机吗?

hadoop - 外部访问部署在 Kubernetes 中的 Hadoop HDFS

php - 如何在 PHP 中检查域名是否为 CNAME