【问题标题】:How to route all traffic coming from tethering?如何路由来自网络共享的所有流量?
【发布时间】:2014-06-15 18:29:47
【问题描述】:

我正在做一些测试项目,基本上我想在热点模式下将所有流量路由到一个固定地址。我有 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

Android:http://clients3.google.com/generate_204 并且在不落后于门户时期望 204 状态,任何其他状态都是门户

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

【问题讨论】:

  • 另外,用户没有root权限
  • AFAIK android 上没有 iptables api,请看这个类似的问题stackoverflow.com/questions/4658619/…
  • @sherpya thx,我已经看到了这个答案,但它需要 root 访问权限。我想也许还有另一种方法,比如将 DNS 设置为假的或类似的东西。只要它能完成工作,我只需要一种方法
  • 是的,如果 android 不公开 api,您需要 root 才能使用 iptables :(

标签: android proxy dns android-wifi tethering


【解决方案1】:

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

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

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

如果您不想使用代理路由,如果您的设备已植根,则可以手动设置 ebtables 规则。这是非常多的工作,因为您必须小心不要弄乱您的设备已经在执行的 NAT。

【讨论】:

  • 所有这些都将由我的应用程序完成,我不想依赖任何其他应用程序。但是代理的想法很酷,现在假设我做了这个代理,我应该怎么做才能告诉一个新连接的设备他需要去我的门户?就像您连接到热点时看到的一样
  • 为此,您需要强制门户软件,该软件在捆绑为路由包(如 pfSense)的一部分时最容易使用。我想你可以做一些事情,比如在云中运行 pfSense(或其他产品),将你的代理指向该 IP,然后如果一切配置正确,你应该可以开始了。
  • 在两部手机之间,它们之间没有任何基础设施
猜你喜欢
  • 2014-02-20
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
相关资源
最近更新 更多