• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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。      |