使用VpnService的Android http隧道

时间:2019-08-11 21:07:56

标签: java android http proxy vpn

我正在尝试通过HTTP隧道重定向整个android网络流量,并且没有有关该操作方法的教程或Github存储库。

只需从用户那里获取主机,端口,用户名和密码,然后以编程方式将整个设备传输到该主机。

我已经用squid配置了HTTP代理服务器,只需要一个客户端就可以连接到它。

我不需要Open-VPN解决方案或StrongSwan(这个名为{O3FAN}的TOOFAN Tunnel)可以满足我的实际需求,但是它仅在某些国家/地区可用,并且不是开源项目。

只需要有人向我展示路径或将我带入正确的方向,我就先感谢它。

我了解Android的app以及它如何重定向流量,我只是不知道实现套接字来通过具有凭据的HTTP代理传输数据包。

我已经建立并测试了20多个存储库,但是没有一个起作用。他们之中有一些是: VpnServiseSSLSocksTunProxyVpnProxySmartProxyNetDroidProxyLocalVPNxSocks-android。 >

2 个答案:

答案 0 :(得分:1)

您可以尝试使用我制作的这个库,它应该允许您使用代理执行几乎任何操作,或者不执行任何操作。我知道它的回复很晚,但是我希望它可以帮助某人...

https://github.com/DrBrad/Android-VPN-to-Socket

https://github.com/DrBrad/JTun2Socks

最简单的方法是为UDP数据包创建DNS代理,为TCP数据包创建TCP服务器。您必须操纵TCP数据包以将其定向到新的TCP服务器。您可以通过创建一个简单的nat会话来拉主机和端口。

答案 1 :(得分:-1)

自定义的Android VpnService捕获IP数据包,过滤HTTP / HTTPS请求,修改标头(例如基本授权标头)或添加connect方法(用于https请求)并将数据包重定向到http代理。

对于TunProxy,请考虑修改代码manual,行:733-746,原来在此位置添加了connect方法,可以在此处进行类似的修改。

参考: 1. https://github.com/raise-isayan/TunProxy/blob/master/android_app/app/src/main/cpp/tcp.c 2. https://github.com/raise-isayan/TunProxy