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