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