HarmonyOS VPN相关能力?

当前正在基于VpnExtensionAbility开发一款vpn相关能力的应用,想咨询一下,在通过VpnExtension.startVpnExtensionAbility拉起的vpn进程内,能否主动关闭当前vpn进程。第二个问题是,通过借鉴提供的VPN demo中,发现没有添加路由的相关操作。在尝试自己添加路由时,发现路由结构RouteInfo有一个成员变量interface,理解应该是填当前虚拟网卡的名称,当时没有看到相关获取当前创建的虚拟网卡的名称的api。请提供一份创建路由表并添加的示例代码。

阅读 539
1 个回答

1.可以主动关闭当前vpn进程。

2.interface是开发者自己命名的,可以写成定值。

config配置的示例如下:

{
 "addresses": [{
         "address": {
             "address": "2.3.2.1",
             "family": 1
         },
         "prefixLength": 32
     }
 ],
 "dnsAddresses": ["198.18.0.1"],
 "trustedApplications": [],
 "blockedApplications": [],
 "mtu": 1500,
 "isIPv4Accepted": true,
 "isIPv6Accepted": true,
 "searchDomains": [],
 "routes": [{
         "interface": "eth0",
         "destination": {
             "address": {
                 "address": "198.18.0.1",
                 "family": 1
             },
             "prefixLength": 32
         },
         "gateway": {
             "address": "198.18.0.1",
             "family": 1
         },
         "hasGateway": false,
         "isDefaultRoute": false
     }, {
         "interface": "eth0",
         "destination": {
             "address": {
                 "address": "10.242.1.22",
                 "family": 1
             },
             "prefixLength": 32
         },
         "gateway": {
             "address": "10.242.1.1",
             "family": 1
         },
         "hasGateway": false,
         "isDefaultRoute": false
     }, {
         "interface": "eth0",
         "destination": {
             "address": {
                 "address": "10.242.3.199",
                 "family": 1
             },
             "prefixLength": 32
         },
         "gateway": {
             "address": "10.242.3.1",
             "family": 1
         },
         "hasGateway": false,
         "isDefaultRoute": false
     }, {
         "interface": "eth0",
         "destination": {
             "address": {
                 "address": "10.242.255.110",
                 "family": 1
             },
             "prefixLength": 32
         },
         "gateway": {
             "address": "10.242.255.1",
             "family": 1
         },
         "hasGateway": false,
         "isDefaultRoute": false
     }, {
         "interface": "eth0",
         "destination": {
             "address": {
                 "address": "198.18.0.0",
                 "family": 1
             },
             "prefixLength": 16
         },
         "gateway": {
             "address": "198.18.0.1",
             "family": 1
         },
         "hasGateway": false,
         "isDefaultRoute": false
     }
 ]
 }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进