1# @ohos.net.netFirewall (网络防火墙) 2 3本模块提供网络防火墙能力,为应用程序提供查询防火墙能力。 应用程序可以对机器进行防火墙拦截记录的查询。 4 5 6 7> **说明:** 8> 9> 本模块首批接口从API version 15开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10 11## 导入模块 12 13```ts 14import { netfirewall } from '@kit.NetworkKit'; 15``` 16 17 18## netFirewall.getNetFirewallPolicy 19 20getNetFirewallPolicy(userId: number): Promise\<NetFirewallPolicy> 21 22查询防火墙状态。 23 24**需要权限**:ohos.permission.GET_NET_FIREWALL 25 26**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 27 28**参数:** 29 30| 参数名 | 类型 | 必填 | 说明 | 31| -------- | ---------------------- | ---- | ---------------------------------------------- | 32| userId | number | 是 | 系统中的多用户用户ID,只能是存在的用户ID。 | 33 34**返回值:** 35 36| 类型 | 说明 | 37| ------------------------------------------------- | ------------------------------------- | 38| Promise\<[NetFirewallPolicy](#netfirewallpolicy)> | 以Promise形式返回当前用户防火墙策略。 | 39 40 41**错误码:** 42 43以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 44| 错误码ID | 错误信息 | 45| ------- | ----------------------------------------------------| 46| 201 | Permission denied. | 47| 401 | Parameter error. | 48| 2100001 | Invalid parameter value. | 49| 2100002 | Operation failed. Cannot connect to service. | 50| 2100003 | System internal error. | 51| 29400000 | The specified user does not exist. | 52 53**示例:** 54 55```ts 56import { netFirewall } '@kit.NetworkKit'; 57import { BusinessError } from '@kit.BasicServicesKit'; 58 59netFirewall.getNetFirewallPolicy(100).then((result: netFirewall.NetFirewallPolicy) => { 60 console.info('firewall policy: ', JSON.stringify(result)); 61}, (reason: BusinessError) => { 62 console.error('get firewall policy failed: ', JSON.stringify(reason)); 63}); 64``` 65 66 67## netFirewall.updateNetFirewallRule 68 69updateNetFirewallRule(rule: NetFirewallRule): Promise\<void> 70 71更新防火墙规则。 72 73**需要权限**:ohos.permission.MANAGE_NET_FIREWALL 74 75**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 76 77**参数:** 78 79| 参数名 | 类型 | 必填 | 说明 | 80| ------- | -------------------------------------- | ---- | -------------------------------- | 81| rule | [NetFirewallRule](#netfirewallrule) | 是 | 防火墙规则。 | 82 83**返回值:** 84 85| 类型 | 说明 | 86| ------------------- | ------------------------------------------------------------------- | 87| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 88 89**错误码:** 90 91以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 92| 错误码ID | 错误信息 | 93| ------- | ------------------------------------------------------------------------------- | 94| 201 | Permission denied. | 95| 401 | Parameter error. | 96| 2100001 | Invalid parameter value. | 97| 2100002 | Operation failed. Cannot connect to service. | 98| 2100003 | System internal error. | 99| 29400000 | The specified user does not exist. | 100| 29400002 | The number of IP address rules in the firewall rule exceeds the maximum. | 101| 29400003 | The number of port rules in the firewall rule exceeds the maximum. | 102| 29400004 | The number of domain rules in the firewall rule exceeds the maximum. | 103| 29400005 | The number of domain rules exceeds the maximum. | 104| 29400006 | The specified rule does not exist. | 105| 29400007 | The dns rule is duplication. | 106 107**示例:** 108 109```ts 110import { netFirewall } '@kit.NetworkKit'; 111import { BusinessError } from '@kit.BasicServicesKit'; 112 113let ipRuleUpd: netFirewall.NetFirewallRule = { 114 id: 1, 115 name: "rule1", 116 description: "rule1 description update", 117 direction: netFirewall.NetFirewallRuleDirection.RULE_IN, 118 action:netFirewall.NetFirewallRuleDirection.RULE_DENY, 119 type: netFirewall.NetFirewallRuleType.RULE_IP, 120 isEnabled: false, 121 appUid: 20001, 122 localIps: [ 123 { 124 family: 1, 125 type: 1, 126 address: "10.10.1.1", 127 mask: 24 128 },{ 129 family: 1, 130 type: 2, 131 startIp: "10.20.1.1", 132 endIp: "10.20.1.10" 133 }], 134 userId: 100 135}; 136netFirewall.updateNetFirewallRule(ipRuleUpd).then(() => { 137 console.info('update firewall rule success.'); 138}, (reason: BusinessError) => { 139 console.error('update firewall rule failed: ', JSON.stringify(reason)); 140}); 141``` 142 143## netFirewall.removeNetFirewallRule 144 145removeNetFirewallRule(userId: number, ruleId: number): Promise\<void> 146 147删除防火墙规则。 148 149**需要权限**:ohos.permission.MANAGE_NET_FIREWALL 150 151**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 152 153**参数:** 154 155| 参数名 | 类型 | 必填 | 说明 | 156| -------- | ----------------------------------- | ---- | -------------------------------------------- | 157| rule | [NetFirewallRule](#netfirewallrule) | 是 | 防火墙规则。 | 158| userId | number | 是 | 系统中的多用户用户ID,只能是存在的用户ID。 | 159| ruleId | number | 是 | 防火墙规则ID。 | 160 161**返回值:** 162 163| 类型 | 说明 | 164| ------------------- | ---------------------------------------------------------------------| 165| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 166 167**错误码:** 168 169以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 170| 错误码ID | 错误信息 | 171| ------- | ------------------------------------------------------------------------------- | 172| 201 | Permission denied. | 173| 401 | Parameter error. | 174| 2100001 | Invalid parameter value. | 175| 2100002 | Operation failed. Cannot connect to service. | 176| 2100003 | System internal error. | 177| 29400000 | The specified user does not exist. | 178| 29400006 | The specified rule does not exist. | 179 180**示例:** 181 182```ts 183import { netFirewall } '@kit.NetworkKit'; 184import { BusinessError } from '@kit.BasicServicesKit'; 185 186netFirewall.removeNetFirewallRule(100, 1).then(() => { 187 console.info("delete firewall rule success."); 188}).catch((error : BusinessError) => { 189 console.error("delete firewall rule failed: " + JSON.stringify(error)); 190}); 191``` 192 193## netFirewall.getNetFirewallRules 194 195getNetFirewallRules(userId: number, requestParam: RequestParam): Promise\<FirewallRulePage> 196 197按userId获取防火墙规则,需要指定分页查询参数。 198 199**需要权限**:ohos.permission.GET_NET_FIREWALL 200 201**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 202 203**参数:** 204 205| 参数名 | 类型 | 必填 | 说明 | 206| --------------- | ----------------------------- | ---- | -------------------------------------------- | 207| userId | number | 是 | 系统中的多用户用户ID,只能是存在的用户ID。 | 208| requestParam | [RequestParam](#requestparam) | 是 | 分页查询参数。 | 209 210**返回值:** 211 212| 类型 | 说明 | 213| ----------------------------------------------- | ---------------------------------------- | 214| Promise\<[FirewallRulePage](#firewallrulepage)> | 以Promise形式返回防火墙分页规则列表。 | 215 216**错误码:** 217 218以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 219| 错误码ID | 错误信息 | 220| ------- | --------------------------------------------------------------------------------| 221| 201 | Permission denied. | 222| 401 | Parameter error. | 223| 2100001 | Invalid parameter value. | 224| 2100002 | Operation failed. Cannot connect to service. | 225| 2100003 | System internal error. | 226| 29400000 | The specified user does not exist. | 227 228**示例:** 229 230```ts 231import { netFirewall } '@kit.NetworkKit'; 232import { BusinessError } from '@kit.BasicServicesKit'; 233 234let ruleParam: netFirewall.RequestParam = { 235 page: 1, 236 pageSize: 10, 237 orderField: netFirewall.NetFirewallOrderField.ORDER_BY_RULE_NAME, 238 orderType: netFirewall.NetFirewallOrderType.ORDER_ASC 239}; 240netFirewall.getNetFirewallRules(100, ruleParam).then((result: netfirewall.FirewallRulePage) => { 241 console.info("result:", JSON.stringify(result)); 242}, (error: BusinessError) => { 243 console.error("get firewall rules failed: " + JSON.stringify(error)); 244}); 245``` 246 247## netFirewall.getNetFirewallRule 248 249getNetFirewallRule(userId: number, ruleId: number): Promise\<NetFirewallRule> 250 251通过userId和ruleId获取指定的防火墙规则。 252 253**需要权限**:ohos.permission.GET_NET_FIREWALL 254 255**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 256 257**参数:** 258 259| 参数名 | 类型 | 必填 | 说明 | 260| -------- | ------------------------- | ---- | -------------------------------------------- | 261| userId | number | 是 | 系统中的多用户用户ID,只能是存在的用户ID。 | 262| ruleId | number | 是 | 防火墙规则ID。 | 263 264**返回值:** 265 266| 类型 | 说明 | 267| ----------------------------------------------- | ---------------------------------------- | 268| Promise\<[NetFirewallRule](#netfirewallrule)> | 以Promise形式返回防火墙规则。 | 269 270**错误码:** 271 272以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 273| 错误码ID | 错误信息 | 274| ------- | ------------------------------------------------------------------------------- | 275| 201 | Permission denied. | 276| 401 | Parameter error. | 277| 2100001 | Invalid parameter value. | 278| 2100002 | Operation failed. Cannot connect to service. | 279| 2100003 | System internal error. | 280| 29400000 | The specified user does not exist. | 281| 29400006 | The specified rule does not exist. | 282 283**示例:** 284 285```ts 286import { netFirewall } '@kit.NetworkKit'; 287import { BusinessError } from '@kit.BasicServicesKit'; 288 289netFirewall.getNetFirewallRule(100, 1).then((rule: netFirewall.NetFirewallRule) => { 290 console.info("result:", JSON.stringify(rule)); 291}).catch((error : BusinessError) => { 292 console.error(" get firewall rules failed: " + JSON.stringify(error)); 293}); 294``` 295 296## netFirewall.setNetFirewallPolicy 297 298setNetFirewallPolicy(userId: number, policy: NetFirewallPolicy): Promise\<void> 299 300设置防火墙状态。 301 302**需要权限**:ohos.permission.MANAGE_NET_FIREWALL 303 304**系统能力**:SystemCapability.Communication.NetManager.netfirewall 305 306**参数:** 307 308| 参数名 | 类型 | 必填 | 说明 | 309| ------ | ----------------------------------------| ---- | -------------------------------------------- | 310| userId | number | 是 | 系统中的多用户用户ID,只能是存在的用户ID。 | 311| policy | [NetFirewallPolicy](#netfirewallpolicy) | 是 | 设置的防火墙策略。 | 312 313**返回值:** 314 315| 类型 | 说明 | 316| ------------------- | ---------------------------------------- | 317| Promise\<void> | 无返回结果的Promise对象。 | 318 319**错误码:** 320 321以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 322| 错误码ID | 错误信息 | 323| ------- | ----------------------------------------------------| 324| 201 | Permission denied. | 325| 401 | Parameter error. | 326| 2100001 | Invalid parameter value. | 327| 2100002 | Operation failed. Cannot connect to service. | 328| 2100003 | System internal error. | 329| 29400000 | The specified user does not exist. | 330 331**示例:** 332 333```ts 334import { netFirewall } '@kit.NetworkKit'; 335import { BusinessError } from '@kit.BasicServicesKit'; 336 337let policy: netFirewall.NetFirewallPolicy = { 338 isOpen: true, 339 inAction: netFirewall.FirewallRuleAction.RULE_DENY, 340 outAction: netFirewall.FirewallRuleAction.RULE_ALLOW 341}; 342netFirewall.setNetFirewallPolicy(100, policy).then(() => { 343 console.info("set firewall policy success."); 344}).catch((error : BusinessError) => { 345 console.error("set firewall policy failed: " + JSON.stringify(error)); 346}); 347``` 348 349## netFirewall.addNetFirewallRule 350 351addNetFirewallRule(rule: NetFirewallRule): Promise\<number> 352 353添加防火墙规则。 354 355**需要权限**:ohos.permission.MANAGE_NET_FIREWALL 356 357**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 358 359**参数:** 360 361| 参数名 | 类型 | 必填 | 说明 | 362| -------- | ------------------------------------------------- | ---- | ------------ | 363| rule | [NetFirewallRule](#netfirewallrule) | 是 | 防火墙规则。 | 364 365**返回值:** 366 367| 类型 | 说明 | 368| ------------------------- | ----------------------------------------------------------- | 369| Promise\<number> | 以Promise形式返回防火墙规则ID,防火墙规则ID由系统自动生成。 | 370 371**错误码:** 372 373以下错误码的详细介绍请参见通用错误码和网络连接管理错误码。 374| 错误码ID | 错误信息 | 375| ------- | ------------------------------------------------------------------------ | 376| 201 | Permission denied. | 377| 401 | Parameter error. | 378| 2100001 | Invalid parameter value. | 379| 2100002 | Operation failed. Cannot connect to service. | 380| 2100003 | System internal error. | 381| 29400000 | The specified user does not exist. | 382| 29400001 | The number of firewall rules exceeds the maximum. | 383| 29400002 | The number of IP address rules in the firewall rule exceeds the maximum. | 384| 29400003 | The number of port rules in the firewall rule exceeds the maximum. | 385| 29400004 | The number of domain rules in the firewall rule exceeds the maximum. | 386| 29400005 | The number of domain rules exceeds the maximum. | 387| 29400007 | The dns rule is duplication. | 388 389**示例:** 390 391```ts 392import { netFirewall } '@kit.NetworkKit'; 393import { BusinessError } from '@kit.BasicServicesKit'; 394 395let ipRule: netFirewall.NetFirewallRule = { 396 name: "rule1", 397 description: "rule1 description", 398 direction: netFirewall.NetFirewallRuleDirection.RULE_IN, 399 action:netFirewall.NetFirewallRuleDirection.RULE_DENY, 400 type: netFirewall.NetFirewallRuleType.RULE_IP, 401 isEnabled: true, 402 appUid: 20001, 403 localIps: [ 404 { 405 family: 1, 406 type: 1, 407 address: "10.10.1.1", 408 mask: 24 409 },{ 410 family: 1, 411 type: 2, 412 startIp: "10.20.1.1", 413 endIp: "10.20.1.10" 414 }], 415 remoteIps:[ 416 { 417 family: 1, 418 type: 1, 419 address: "20.10.1.1", 420 mask: 24 421 },{ 422 family: 1, 423 type: 2, 424 startIp: "20.20.1.1", 425 endIp: "20.20.1.10" 426 }], 427 protocol: 6, 428 localPorts: [ 429 { 430 startPort: 1000, 431 endPort: 1000 432 },{ 433 startPort: 2000, 434 endPort: 2001 435 }], 436 remotePorts: [ 437 { 438 startPort: 443, 439 endPort: 443 440 }], 441 userId: 100 442}; 443netFirewall.addNetFirewallRule(ipRule).then((result: number) => { 444 console.info('rule Id: ', result); 445}, (reason: BusinessError) => { 446 console.error('add firewall rule failed: ', JSON.stringify(reason)); 447}); 448 449let domainRule: netFirewall.NetFirewallRule = { 450 name: "rule2", 451 description: "rule2 description", 452 direction: netFirewall.NetFirewallRuleDirection.RULE_IN, 453 action:netFirewall.NetFirewallRuleDirection.RULE_DENY, 454 type: netFirewall.NetFirewallRuleType.RULE_DOMAIN, 455 isEnabled: true, 456 appUid: 20002, 457 domains: [ 458 { 459 isWildcard: false, 460 domain: "www.example.cn" 461 },{ 462 isWildcard: true, 463 domain: "*.example.cn" 464 }], 465 userId: 100 466}; 467netFirewall.addNetFirewallRule(domainRule).then((result: number) => { 468 console.info('rule Id: ', result); 469}, (reason: BusinessError) => { 470 console.error('add firewall rule failed: ', JSON.stringify(reason)); 471}); 472 473let dnsRule: netFirewall.NetFirewallRule = { 474 name: "rule3", 475 description: "rule3 description", 476 direction: netFirewall.NetFirewallRuleDirection.RULE_IN, 477 action:netFirewall.NetFirewallRuleDirection.RULE_DENY, 478 type: netFirewall.NetFirewallRuleType.RULE_DNS, 479 isEnabled: true, 480 appUid: 20003, 481 primaryDns: "4.4.4.4", 482 standbyDns: "8.8.8.8", 483 userId: 100 484}; 485netFirewall.addNetFirewallRule(dnsRule).then((result: number) => { 486 console.info('rule Id: ', result); 487}, (reason: BusinessError) => { 488 console.error('add firewall rule failed: ', JSON.stringify(reason)); 489}); 490``` 491 492## NetFirewallRule 493 494防火墙规则信息结构。 495 496**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 497 498| 名称 | 类型 |必填| 说明 | 499| ------------|-------------------------------------------------------------|----|-------------------------------------------------------------- | 500| userId | number | 是 | 系统中的多用户用户ID,只能是存在的用户ID。 | 501| name | string | 是 | 规则名称,必填,最多128个字符。 | 502| direction | [NetFirewallRuleDirection](#netfirewallruledirection) | 是 | 规则方向,入站或出站。 | 503| action | [FirewallRuleAction](#firewallruleaction) | 是 | 行为。 | 504| type | [NetFirewallRuleType](#netfirewallruletype) | 是 | 规则类型。 | 505| isEnabled | boolean | 是 | 是否启用。 | 506| id | number | 否 | 规则ID。 | 507| description | string | 否 | 规则描述,可选,最多256个字符。 | 508| appUid | number | 否 | 应用程序或服务UID。 | 509| localIps | Array\<[NetFirewallIpParams](#netfirewallipparams)> | 否 | 本地IP地址:ruleType=RULE_IP有效,否则忽略,最多10个。 | 510| remoteIps | Array\<[NetFirewallIpParams](#netfirewallipparams)> | 否 | 远端IP地址:当ruleType=RULE_IP时有效,否则将被忽略,最多10个。 | 511| protocol | number | 否 | 协议,TCP:6,UDP:17,当ruleType=RULE_IP时有效,否则将被忽略。 | 512| localPorts | Array\<[NetFirewallPortParams](#netfirewallportparams)> | 否 | 本地端口:当ruleType=RULE_IP时有效,否则将被忽略,最多10个。 | 513| remotePorts | Array\<[NetFirewallPortParams](#netfirewallportparams)> | 否 | 远端端口:当ruleType=RULE_IP时有效,否则将被忽略,最多10个。 | 514| domains | Array\<[NetFirewallDomainParams](#netfirewalldomainparams)> | 否 | 域名列表:当ruleType=RULE_DOMAIN时有效,否则将被忽略。 | 515| dns | [NetFirewallDnsParams](#netfirewalldnsparams) | 否 | DNS:当ruleType=RULE_DNS时有效,否则将被忽略。 | 516 517## RequestParam 518 519查询输入信息结构。 520 521**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 522 523| 名称 | 类型 | 必填 | 说明 | 524|------------|--------------------------------------------------|------|---------------------------- | 525| page | number | 是 | 页码,值范围:[1,1000]。 | 526| pageSize | number | 是 | 页面大小,值范围:[1,50]。 | 527| orderField | [NetFirewallOrderField](#netfirewallorderfield) | 是 | 排序字段。 | 528| orderType | [NetFirewallOrderType](#netfirewallordertype) | 是 | 排序顺序。 | 529 530 531## FirewallRulePage 532 533防火墙规则页信息结构。 534 535**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 536 537| 名称 | 类型 | 必填 | 说明 | 538|------------|-------------------------------------------- |------|---------------| 539| page | number | 是 | 当前页码。 | 540| pageSize | number | 是 | 页大小。 | 541| totalPage | number | 是 | 总页数。 | 542| data | Array\<[NetFirewallRule](#netfirewallrule)> | 是 | 页面数据。 | 543 544## NetFirewallPolicy 545 546防火墙状态。 547 548**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 549 550| 名称 | 类型 | 必填 | 说明 | 551| -----------| -------------------------------------------|------|-------------- | 552| isOpen | boolean | 是 | 防火墙开/关。 | 553| inAction | [FirewallRuleAction](#firewallruleaction) | 是 | 入站行动。 | 554| outAction | [FirewallRuleAction](#firewallruleaction) | 是 | 出站行动。 | 555 556## NetFirewallRuleDirection 557 558枚举,防火墙规则的拦截方向。 559 560**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 561 562| 名称 | 值 | 说明 | 563|--------------|------|--------| 564| RULE_IN | 1 | 入站。 | 565| RULE_OUT | 2 | 出站。 | 566 567 568## FirewallRuleAction 569 570枚举,防火墙规则行为,允许网络连接或阻断连接。 571 572**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 573 574| 名称 | 值 | 说明 | 575|----------------|------|------- | 576| RULE_ALLOW | 0 | 允许。 | 577| RULE_DENY | 1 | 阻断。 | 578 579## NetFirewallRuleType 580 581枚举,防火墙规则类型。 582 583**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 584 585| 名称 | 值 | 说明 | 586|----------------| ---- | ------------ | 587| RULE_IP | 1 | IP类规则。 | 588| RULE_DOMAIN | 2 | 域名类规则。 | 589| RULE_DNS | 3 | DNS规则。 | 590 591## NetFirewallOrderField 592 593枚举,防火墙规则排序类型。 594 595**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 596 597| 名称 | 值 | 说明 | 598| --------------------- | ---- | --------------------- | 599| ORDER_BY_RULE_NAME | 1 | 根据防火墙规则名排序。 | 600| ORDER_BY_RECORD_TIME | 100 | 根据记录时间排序。 | 601 602## NetFirewallOrderType 603 604枚举,防火墙规则排序类型,按名称或时间顺序排序。 605 606**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 607 608| 名称 | 值 | 说明 | 609| ---------- | ---- | ------------------------------ | 610| ORDER_ASC | 1 | 按防火墙规则排序类型升序排序。 | 611| ORDER_DESC | 100 | 按防火墙规则排序类型降序排序。 | 612 613 614## NetFirewallIpParams 615 616**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 617 618| 名称 | 类型 |必填| 说明 | 619| ----------- | -------|----|------------------------------------------------------------ | 620| type | number | 是 | 1:IP地址或子网,当使用单个IP时,掩码为32; 2:IP段。 | 621| family | number | 否 | IPv4=1, IPv6=2, 默认IPv4,其他当前不支持。 | 622| address | string | 否 | IP地址:当类型等于1时有效,否则将被忽略。 | 623| mask | number | 否 | IPv4:子网掩码,IPv6:前缀,当类型等于1时有效,否则将被忽略。 | 624| startIp | string | 否 | 起始IP:当类型等于2时有效,否则将被忽略。 | 625| endIp | string | 否 | 结束IP: 当类型等于2时有效,否则将被忽略。 | 626 627## NetFirewallPortParams 628 629防火墙规则端口参数。 630 631**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 632 633| 名称 | 类型 | 必填 | 说明 | 634| ------------ | -------|------|----------- | 635| startPort | number | 是 | 开始端口。 | 636| endPort | number | 是 | 结束端口。 | 637 638## NetFirewallDomainParams 639 640防火墙规则域信息。 641 642**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 643 644| 名称 | 类型 | 必填 | 说明 | 645| ------------ | --------|------|------------------------------------------ | 646| isWildcard | boolean | 是 | 是否包含通配符。 | 647| domain | string | 是 | 当isWildcard为false时,需要确定的完整域。 | 648 649## NetFirewallDnsParams 650 651防火墙规则DNS信息。 652 653**系统能力**:SystemCapability.Communication.NetManager.NetFirewall 654 655| 名称 | 类型 | 必填 | 说明 | 656| ------------ | --------|------|--------------- | 657| primaryDns | string | 是 | 主域名服务器。 | 658| standbyDns | string | 否 | 备份DNS。 |