直接通过SSH隧道的所有androidstream量

我试图完全隐藏来自无线提供商的手机上的所有stream量。

我想这样做,通过指引stream量通过SSH隧道到我的家庭路由器通过iptables(不知道他们帮助吗?)。

这款手机已经植根于CyanogenMod 7.1(因此具有iptablesfunction)。

我已经看过这个问题 ,但是我仍然对细节感到不安。 这个问题描述了如何为单个端口执行此操作 – 但是,我怎样才能为每个端口上的每个数据包执行此操作?

这个问题既有实际的兴趣,也有学术兴趣。 谢谢。

你有没有尝试过使用sshtunnel ? 单独的iptables是不够的做到这一点。

至于如何实际完成的概述:

  1. 使用ssh登录到您的服务器,并将HTTP代理端口转发到Android设备。 因此,任何去localhost:3128流量实际上都会到达远程机器(您的家庭路由器)。
  2. 由于Android没有全局代理设置,因此您将所有到达端口80(和HTTPS的443)的流量重定向到localhost:3128 。 这就是iptables进来的地方:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to localhost:3128

如果您还想重定向其他协议,则可以使用具有类似设置的SOCKS代理。 重定向DNS,通过隧道重定向端口53等

总而言之,完成隐藏“所有流量”并不那么容易,所以只需使用应用程序。 如果你想补丁Cyanogenmod做到这一点,看看源代码并修改启动脚本。