问题标签 [android-vpn-service]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1308 浏览

android - VPNservice.builder.addAddress - 它有什么作用?

根据官方文档:

将网络地址添加到 VPN 接口。支持 IPv4 和 IPv6 地址。在调用建立() 之前必须至少设置一个地址。添加地址隐式允许来自该地址族(即 IPv4 或 IPv6)的流量通过 VPN 路由。@see #allowFamily

但是,我仍然不清楚,挖掘 dns66 的源代码和 Netguard 的源代码也没有多大帮助。

我不确定它应该是服务器地址,但我想不出其他任何有意义的东西。如果我想在之前实施 localVPN,我应该设置什么地址establish()

这是 dns66 的来源,但我不明白为什么它会添加这些地址(如果一切“失败”,它怎么知道 192.168.50.1 会起作用)?:

0 投票
1 回答
276 浏览

android - 如何观察来自android前台(vpn)服务的集合

我的 VPN 隧道有一个带有“阻止/允许逻辑”的单例类。发送到隧道的数据包不会被发送,应用程序可以根据允许列表绕过,因此它可以作为防火墙的简单实现。

我想要做的是,当我更改Set<String>被阻止的应用程序包名称时,我希望服务线程vpnservice.builder.establish()使用这个被阻止的应用程序集再次运行。

一个明显的选择 - 如果服务是“普通”前台服务extends LifecycleService如此处所示。但是,我的服务必须扩展android.net.VpnService,这没有实现LifecycleOwner此处显示了一种可能的实现方式(需要进行一些修改)。

我的问题是:

  1. 在我的单例类中,我的 VPN 服务是否有更好、更清洁、更优雅的方式来观察我的blockedPackageName 集合的变化?
  2. 如果没有其他方法,是否会LifecycleOwner以我期望的方式实施工作(基本上我是如何描述的)?
  3. lifecycle.handleLifecycleEvent(Lifecycle.Event.XXXX);如果(2),添加我的服务的 onCreate 和 onDestroy 方法就足够了吗(见下文)?除了防止内存泄漏之外,这些还有什么作用吗?

    /li>

PS:我阅读了关于生命周期组件的官方文档,但我找不到足够的代码示例来说明问题。

0 投票
1 回答
847 浏览

android - How android Always-on VPN internally works?

I can read from developer.android.com about how to support Always-on VPN from the VPN application point of view.

But couldn't find any information how the android system internally implements this feature?

  • Does the android system wake up periodically and check if the VPN service is running and if not then tries to start the specified VPN service?
  • Does this happen on a regular interval basis?
  • What if there is no network connectivity? Will android wait until the n/w conn is restored to start the VPN service?

Thanks in advance

0 投票
1 回答
3729 浏览

java - 以编程方式创建 VPN 配置文件 Android

我一直在解析网络以寻找在 Android 上创建 VPN 客户端的方法。我似乎找不到任何关于如何做到这一点的好资源。

目标是,我希望能够使用 Android 中的内置 VPN 功能(可能以编程方式添加新连接)或其他方式设置 VPN。

我确实在文档中遇到过,VpnService但不清楚如何使用它。有没有人有这样做的一个很好的例子,这可能与此时的Android SDKas 一样吗?

0 投票
1 回答
2850 浏览

android - 如何在不使用“密钥”的情况下以编程方式连接 vpn 服务器?

我想连接 VPN 服务器,但我不想使用密钥。目前,我发现以编程方式创建 vpn 连接的代码片段如下:

MyVpn客户端:

我的VPN连接:

我的VPN服务:

上面的代码来自以下网址:

我已经尝试过,但没有密钥我没有得到任何解决方法。请帮忙。

0 投票
0 回答
445 浏览

android - VpnService:更改允许的应用程序?

我有一个 VpnService,其中包含一些允许的应用程序和一些不允许的应用程序,这些应用程序来自一个可能随时更改的列表。

在这种情况下,应用程序只是不允许“com.android.chrome”。Vpn 实际上不处理任何传入的数据包,所以我用它来阻止流量,这意味着任何不是“不允许”列表的应用程序都无法访问互联网。

问题:如果想在运行时更改不允许的应用程序列表怎么办?我是否必须有外部服务或其他东西来控制 VpnService 还是有其他方法可以做到这一点?

我的第一个想法是使用不同参数检测并重新启动 Vpn 的外部服务,但对于这样的事情似乎有点复杂。

我还认为它可以通过另一种方式来完成,即拥有一个完全正常工作的 Vpn 并通过应用程序过滤数据包。但是(假设有一种方式将数据包绑定到应用程序)我将如何确定哪些数据包与哪些应用程序相关联?

0 投票
1 回答
902 浏览

java - 将我的 IP 数据包数据转换为字符串的正确方法是什么?

当我收到带有我的 Android VpnService的 IP 数据包时,我首先读取标头(如此处),然后我尝试按如下方式打印接收到的数据:

这导致输出如下:

数据包数据:����5��(��������������������www�google.com������

或者来自未加密网页的另一个示例:

数据包:IP Version=4,Header-Length=20,Total-Length=60,Destination-IP=xx.xx.xxx.xx,Hostname=yyyyy.zzz,Source-IP=10.1.10.1,Protocol=17,Data -剩余=40

数据包数据:N����5��(@�F������������������m�posttimees�ee������

我尝试了几种不同的字符串编码类型,我认为这不是问题。

我错过了什么步骤?

0 投票
1 回答
2043 浏览

android - 检查 Android 中的 VPN 连接是否处于活动状态并显示消息?

我在我的非根 Android 4.4 设备上有一个第三方 VPN 应用程序,并且想编写一个后台服务来监控 VPN 连接并在 VPN 连接打开时提醒用户。

0 投票
1 回答
147 浏览

android - 有人知道系统应用程序是否可以在 Android 中扩展 VpnService 吗?

现在,我想开发一个可以扩展 VpnService 的系统应用程序。但是当我调用方法“建立()”来初始化 ParcelFileDescriptor 的实例时。我在 android 5.0 中遇到了一个异常,如下所示:

谢谢!

0 投票
1 回答
844 浏览

android - 如何以编程方式在 android 中使用本地 vpn 跟踪用户浏览器 url?

如何以编程方式在 android 中使用本地 vpn 跟踪用户浏览器 url?我正在使用 ToyShark 本地 vpn 代码。通过使用这个库,我可以在套接字数据工作者中捕获用户浏览器操作。

上面写TCP方法有行

通过使用上面的 writeTCP 日志,我可以跟踪用户 url,但 url 结果会像

我怎样才能从下面的代码行中获得正确的完整网址。网址是www.videocond2h.com