【问题标题】:Android VPNService setBlocking(true) Breaks VPNAndroid VPNService setBlocking(true) 破坏 VPN
【发布时间】:2021-11-09 10:11:05
【问题描述】:

我正在考虑尝试在 Android 上实现一个 VPNService 来进行数据包过滤和报告,我最初一直在研究这个项目:

https://github.com/hexene/LocalVPN

除此之外,我一直将 Google 的 ToyVpn 作为了解我可以使用 VPNService 做什么和不能做什么的基础。两者的唯一问题是在构建 VPNService 时启动非阻塞 VPN,然后轮询文件描述符,然后等待大约 100 毫秒。两者都有 cmets 表明这不是这样做的方法。我假设他们运行的是非阻塞 VPN,因为阻塞 VPN 要复杂得多?

我还假设(错误地)添加该行

builder.setBlocking(true);

会解决问题,但是虽然 VPN 服务似乎做了一些事情,但它似乎没有做任何有用的事情,因为如果你连接到它并打开浏览器会话,一切都会超时。几乎就像添加此行会导致数据包被丢弃。

目的是将它作为一个阻塞 VPN,这样我就可以消除轮询文件描述符的需要,我确信这对电池寿命不利。

【问题讨论】:

    标签: android vpn blocking android-vpn-service


    【解决方案1】:

    对于任何看到这个并有同样问题的人来说,这是一个没有抓住重点的问题。事实证明打开阻塞是可以的,只是轮询循环没有设置为阻塞导致死锁。

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 2012-08-20
      • 2012-04-30
      • 2012-07-21
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多