如何修复我的 dns only vpn 项目中的建立错误
How to fix establish error in my dns only vpn project
我正在尝试制作一个只有 Dns 的 Vpn。我有一个问题
public void run() {
try {
//a. Configure the TUN and get the interface.
mInterface = builder.setSession("MyVPNService")
.addAddress("192.168.0.1", 24)
.addDnsServer("8.8.8.8")
.addRoute("0.0.0.0", 0)
.establish();
最后一个建立方法抛出一个异常android.os.RemoteException 就像那样
W/System.err: java.lang.SecurityException: com.example.dnschangervpn.MyVpnService does not require android.permission.BIND_VPN_SERVICE
at android.os.Parcel.createException(Parcel.java:1966)
at android.os.Parcel.readException(Parcel.java:1934)
at android.os.Parcel.readException(Parcel.java:1884)
at android.net.IConnectivityManager$Stub$Proxy.establishVpn(IConnectivityManager.java:2441)
W/System.err: at android.net.VpnService$Builder.establish(VpnService.java:993)
at com.example.dnschangervpn.MyVpnService.run(MyVpnService.java:34)
at java.lang.Thread.run(Thread.java:764)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.connectivity.Vpn.establish(Unknown Source:496)
at com.android.server.ConnectivityService.establishVpn(Unknown Source:107)
at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:640)
at android.os.Binder.execTransact(Binder.java:739)
我发现我必须向我的服务授予清单许可,所以我这样做了并且成功了。
<service
android:name=".MyVpnService"
android:permission="android.permission.BIND_VPN_SERVICE"
/>
我正在尝试制作一个只有 Dns 的 Vpn。我有一个问题
public void run() {
try {
//a. Configure the TUN and get the interface.
mInterface = builder.setSession("MyVPNService")
.addAddress("192.168.0.1", 24)
.addDnsServer("8.8.8.8")
.addRoute("0.0.0.0", 0)
.establish();
最后一个建立方法抛出一个异常android.os.RemoteException 就像那样
W/System.err: java.lang.SecurityException: com.example.dnschangervpn.MyVpnService does not require android.permission.BIND_VPN_SERVICE
at android.os.Parcel.createException(Parcel.java:1966)
at android.os.Parcel.readException(Parcel.java:1934)
at android.os.Parcel.readException(Parcel.java:1884)
at android.net.IConnectivityManager$Stub$Proxy.establishVpn(IConnectivityManager.java:2441)
W/System.err: at android.net.VpnService$Builder.establish(VpnService.java:993)
at com.example.dnschangervpn.MyVpnService.run(MyVpnService.java:34)
at java.lang.Thread.run(Thread.java:764)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.connectivity.Vpn.establish(Unknown Source:496)
at com.android.server.ConnectivityService.establishVpn(Unknown Source:107)
at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:640)
at android.os.Binder.execTransact(Binder.java:739)
我发现我必须向我的服务授予清单许可,所以我这样做了并且成功了。
<service
android:name=".MyVpnService"
android:permission="android.permission.BIND_VPN_SERVICE"
/>