Tag: 联网

Android本地VPN服务:不能转发数据包

我试图通过VPN服务实现简单的Android防火墙应用程序。 基本方案如下所示: 我试图简单地通过我的VPN服务转发数据包。 所以我已经开始实现ToyVpn Google示例(时间到了这个例子),但是它不工作:当我的VPN运行时,我看到数据包被发送,但我没有回应。 应用程序是在Kotlin上编写的,但对Java爱好者来说并不复杂。 我的生成器配置了IP和路由,如下所示: val builder = Builder() builder.addAddress("10.0.0.2", 32).addRoute("0.0.0.0", 0) mInterface = builder.establish() 之后,我按照ToyVpn中的方式设置隧道 ,但我的VPN服务器目标IP地址是本地的: val tunnel = DatagramChannel.open() if (!protect(tunnel.socket())) { throw IllegalStateException("Cannot protect the tunnel"); } tunnel.connect(InetSocketAddress("127.0.0.1", 55555)) tunnel.configureBlocking(false) protect(tunnel.socket()) 之后,我试图转发数据包out FileInputStream的(也取自ToyVpn): val `in` = FileInputStream(mInterface!!.fileDescriptor) val out = FileOutputStream(mInterface!!.fileDescriptor) var timer = 0 while (true) { var idle […]