通过代理

时间:2018-01-26 23:44:55

标签: java android sockets proxy vpn

所以我一直试图在Android v>上创建一个全局代理24,因为Android在版本24+中以编程方式删除了全局代理。因此,目前设置代理的唯一方法是手动更改为wifi,它不能与4g一起使用。所以我的想法是创建一个仅在Android,客户端和服务器上运行的VPN,并通过外部代理运行所有数据包。 VPN似乎工作正常,我的代理工作正常,但我似乎无法让VPN客户端通过代理运行。这是创建SocketChannel的TCP客户端的一个示例。

SocketChannel outputChannel = SocketChannel.open();
outputChannel.configureBlocking(false);
vpnService.protect(outputChannel.socket());

try{
    outputChannel.connect(new InetSocketAddress(destinationAddress, destinationPort));
}

这段代码似乎可以直接进入网站,但似乎没有办法代理这个。我尝试过这种方法:https://github.com/cobratbq/ProxiedSocketChannel但是由于某种原因这种方法并不起作用。我试过这个:

Socket socket = new Socket(new InetSocketAddress("PROXY.COM", 8080);
SocketChannel outputChannel = socket.getChannel();
outputChannel.configureBlocking(false);
vpnService.protect(socket);

try{
    outputChannel.connect(new InetSocketAddress(destinationAddress, destinationPort));
}

但这似乎不起作用。所有帮助表示赞赏。如果您有任何疑问,需要更多信息,或者如果我没有充分解释,请发表评论。

如果您需要更多参考,我可以使用此代码。 - TCPOutput.java https://github.com/hexene/LocalVPN

0 个答案:

没有答案