- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在安卓上创建一个 VPN 客户端。我查看了 android 示例应用程序“ToyVpn”,我尝试从该应用程序连接到我的 PC(Windows 7),但出现端口无法访问的异常。
E/ToyVpnService(2302): Got java.net.PortUnreachableException:
E/ToyVpnService(2302): Got java.net.SocketException: sendto failed: ECONNREFUSED (Connection refused)
但是当我通过 Android 的默认 vpn 客户端连接到我的 PC 时,它连接成功。通过在命令行中输入“netstat”,我观察到我的电脑的端口 1723 连接到手机的端口 36302。因此,offcourse 端口可以访问。
这是示例应用程序,它应该可以工作...但是我也看到了一些其他链接,其中提到他们无法通过此应用程序连接到服务器。
这个示例是否有效?这个 API 需要 root 手机吗?
除此之外,我没有找到任何示例或教程来展示如何正确使用“android.net.VpnService”。
任何人都可以指导我这件事......吗?
最佳答案
ToyVpnService 是简单自定义 VPN 的示例实现。它不符合标准。如果您想要符合标准的 VPN,您应该使用内置的 VPN。
如果你想测试示例,有一个 linux 服务器可以理解与 ToyVPN 示例一起打包的 ToyVPN 协议(protocol)。
https://github.com/android/platform_development/tree/master/samples/ToyVpn
之所以称为 ToyVPN,是因为它就是这样。
它只展示了 VpnService API 如何从手机上的应用程序捕获数据包到互联网并将它们推送到隧道。同样,如何将数据包注入(inject)应用程序,就像它们来自网络一样。
剩下的就交给开发者去实现了。
关于Android:无法通过 ToyVpn 应用程序连接到 VPN 服务器;获取端口不可达异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195879/
有点迷茫.. 在git community manual , 它说 The git log command can show lists of commits. On its own, it show
我是一名优秀的程序员,十分优秀!