NAT网关
更新时间:2025-08-05
批量创建NAT网关
Java
1public void batchCreateBecNat(BecClient client) {
2 NatDeploymentInstance natDeploymentInstance = new NatDeploymentInstance();
3 // 节点ID, 必需
4 natDeploymentInstance.setRegionId("cn-huhehaote-ix");
5 // NAT网关类型。small、mid、large分别代表:普通型(小)、普通型(中)、普通型(大), 必需
6 natDeploymentInstance.setSpec("small");
7 // 三线选定运营商[ct,un,cm],分别是电信、联通、移动,仅支持单选, 非必需
8 natDeploymentInstance.setSubServiceProviders(java.util.Arrays.asList("ct"));
9 // VPC ID, 非必需
10 natDeploymentInstance.setVpcId("vpc-h5okp5hjsnzy");
11 BatchCreateBecNatsRequest request = BatchCreateBecNatsRequest.builder()
12 // NAT网关带宽, 非必需
13 .bandwidth(100)
14 // NAT网关部署, 必需
15 .deployInstances(Arrays.asList(natDeploymentInstance))
16 // NAT网关描述, 非必需
17 .desc("批量创建NAT测试")
18 // NAT网关名称, 必需
19 .name("name")
20 .build();
21 BatchCreateBecNatsResponse batchCreateBecNatsResponse = client.batchCreateBecNat(request);
22 }
查询NAT网关列表
Java
1public void getBecNats(BecClient client) {
2 ListRequest listRequest = new ListRequest();
3 // 过滤类型:NAT_NAME、NAT_ID,分别表示NAT名称、NAT ID, 非必需
4 listRequest.setKeywordType("NAT_NAME");
5 // 过滤值, 非必需
6 listRequest.setKeyword("wj");
7 // 页码, 非必需
8 listRequest.setPageNo(1);
9 // 每页结果数, 非必需
10 listRequest.setPageSize(10);
11 GetBecNatsRequest request = GetBecNatsRequest.builder()
12 // VPC ID, 非必需
13 .vpcId("vpc-h5okp5hjsnzy")
14 // 节点ID, 非必需
15 .regionId("cn-huhehaote-ix")
16 // 分页及过滤参数, 非必需
17 .listRequest(listRequest)
18 .build();
19 GetBecNatsResponse becNats = client.getBecNats(request);
20 }
查询NAT网关详情
Java
1public void getBecNat(BecClient client) {
2 GetBecNatRequest request = GetBecNatRequest.builder()
3 // NAT网关ID, 必需
4 .natId("nat-cn-huhehaote2-ix-ikhxbs4c")
5 .build();
6 GetBecNatResponse becNat = client.getBecNat(request);
7 }
修改NAT网关
Java
1public void updateBecNat(BecClient client) {
2 UpdateBecNatRequest request = UpdateBecNatRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // NAT网关描述, 非必需
6 .desc("更新NAT网关描述")
7 // NAT网关名称, 非必需
8 .name("wj-newname")
9 .build();
10 UpdateBecNatResponse updateBecNatResponse = client.updateBecNat(request);
11 }
修改NAT网关带宽
Java
1public void updateBecNatBandwidth(BecClient client) {
2 UpdateBecNatBandwidthRequest request = UpdateBecNatBandwidthRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // NAT网关带宽, 必需
6 .bandwidth(200)
7 .build();
8 UpdateBecNatBandwidthResponse updateBecNatBandwidthResponse = client.updateBecNatBandwidth(request);
9 }
批量删除NAT网关
Java
1public void batchDeleteBecNats(BecClient client) {
2 BatchDeleteBecNatsRequest request = BatchDeleteBecNatsRequest.builder()
3 // NAT网关ID列表, 必需
4 .natIdList(Arrays.asList("nat-cn-huhehaote-ix-kqq4igma"))
5 .build();
6 BatchDeleteBecNatsResponse batchDeleteBecNatsResponse = client.batchDeleteBecNats(request);
7 }
创建DNAT规则
Java
1public void createBecDnatRule(BecClient client) {
2 CreateBecDnatRuleRequest request = CreateBecDnatRuleRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // 内网IP, 必需
6 .privateIpAddress("192.168.1.10")
7 // 内网端口(1-65535),协议为TCP、UDP必须传, 非必需
8 .privatePort("8080")
9 // 协议,支持TCP、UDP、all, 必需
10 .protocol("TCP")
11 // 公网IP, 必需
12 .publicIpAddress("1.2.3.5")
13 // 公网端口(1-65535),协议为TCP、UDP必须传, 非必需
14 .publicPort("80")
15 // DNAT规则名称, 必需
16 .ruleName("dnat-rule-01")
17 .build();
18 CreateBecDnatRuleResponse becDnatRule = client.createBecDnatRule(request);
19 }
批量创建DNAT规则
Java
1public void batchCreateBecDnatRules(BecClient client) {
2 CreateBecDnatRuleRequest dnatRule = CreateBecDnatRuleRequest.builder()
3 // 内网IP, 必需
4 .privateIpAddress("172.17.16.0")
5 // 内网端口(1-65535),协议为TCP、UDP必须传, 非必需
6 .privatePort("8080")
7 // 协议,支持TCP、UDP、all, 必需
8 .protocol("TCP")
9 // 公网IP, 必需
10 .publicIpAddress("223.111.122.138")
11 // 公网端口(1-65535),协议为TCP、UDP必须传, 非必需
12 .publicPort("80")
13 // DNAT规则名称, 必需
14 .ruleName("rule01")
15 .build();
16 BatchCreateBecDnatRulesRequest request = BatchCreateBecDnatRulesRequest.builder()
17 // NAT ID, 必需
18 .natId("nat-cn-yangzhou-ix-puhbtwkl")
19 // DNAT规则列表, 必需
20 .rules(Arrays.asList(dnatRule))
21 .build();
22 BatchCreateBecDnatRulesResponse batchCreateBecDnatRulesResponse = client.batchCreateBecDnatRules(request);
23 }
查询DNAT规则列表
Java
1public void getBecDnatRules(BecClient client) {
2 GetBecDnatRulesRequest request = GetBecDnatRulesRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // 页码, 非必需
6 .pageNo(1)
7 // 每页结果数, 非必需
8 .pageSize(10)
9 .build();
10 GetBecDnatRulesResponse becDnatRules = client.getBecDnatRules(request);
11 }
更新DNAT规则
Java
1public void updateBecDnatRule(BecClient client) {
2 UpdateBecDnatRuleRequest request = UpdateBecDnatRuleRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // 内网IP, 必需
6 .privateIpAddress("192.168.1.10")
7 // 内网端口(1-65535),协议为TCP、UDP必须传, 非必需
8 .privatePort("8080")
9 // 协议,支持TCP、UDP、all, 必需
10 .protocol("TCP")
11 // 公网IP, 必需
12 .publicIpAddress("1.2.3.6")
13 // 公网端口(1-65535),协议为TCP、UDP必须传, 非必需
14 .publicPort("80")
15 // DNAT规则名称, 必需
16 .ruleName("dnat-rule-new")
17 // DNAT规则ID, 必需
18 .ruleId("rule-s52z3mpg9es9")
19 .build();
20 UpdateBecDnatRuleResponse updateBecDnatRuleResponse = client.updateBecDnatRule(request);
21 }
批量删除DNAT规则
Java
1public void batchDeleteBecDnatRules(BecClient client) {
2 BatchDeleteBecDnatRulesRequest request = BatchDeleteBecDnatRulesRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // DNAT规则ID列表, 必需
6 .ruleIdList(Arrays.asList("rule-s52z3mpg9es9", "rule-kxkb1thi9wcc"))
7 .build();
8 BatchDeleteBecDnatRulesResponse batchDeleteBecDnatRulesResponse = client.batchDeleteBecDnatRules(request);
9 }
创建SNAT规则
Java
1public void createBecSnatRule(BecClient client) {
2 CreateBecSnatRuleRequest request = CreateBecSnatRuleRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // SNAT规则名称, 必需
6 .ruleName("snat-rule-01")
7 // 源网段, 必需
8 .sourceCIDR("192.168.1.0/24")
9 .build();
10 CreateBecSnatRuleResponse becSnatRule = client.createBecSnatRule(request);
11 }
批量创建SNAT规则
Java
1public void batchCreateBecSnatRules(BecClient client) {
2 CreateBecSnatRuleRequest snatRule = CreateBecSnatRuleRequest.builder()
3 // SNAT规则名称, 必需
4 .ruleName("snat-rule-batch")
5 // 源网段, 必需
6 .sourceCIDR("192.168.2.0/24")
7 .build();
8 BatchCreateBecSnatRulesRequest request = BatchCreateBecSnatRulesRequest.builder()
9 // NAT ID, 必需
10 .natId("nat-cn-huhehaote-ix-kqq4igma")
11 // SNAT规则列表, 必需
12 .snatRules(Arrays.asList(snatRule))
13 .build();
14 BatchCreateBecSnatRulesResponse batchCreateBecSnatRulesResponse = client.batchCreateBecSnatRules(request);
15 }
查询SNAT规则列表
Java
1public void getBecSnatRules(BecClient client) {
2 GetBecSnatRulesRequest request = GetBecSnatRulesRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // 页码, 非必需
6 .pageNo(1)
7 // 每页结果数, 非必需
8 .pageSize(10)
9 .build();
10 GetBecSnatRulesResponse becSnatRules = client.getBecSnatRules(request);
11 }
更新SNAT规则
Java
1public void updateBecSnatRule(BecClient client) {
2 UpdateBecSnatRuleRequest request = UpdateBecSnatRuleRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // SNAT规则名称, 必需
6 .ruleName("snat-rule-update")
7 // 源网段, 必需
8 .sourceCIDR("192.168.2.0/24")
9 // SNAT规则ID, 必需
10 .ruleId("rule-idt8vakda4bg")
11 .build();
12 UpdateBecSnatRuleResponse updateBecSnatRuleResponse = client.updateBecSnatRule(request);
13 }
批量删除SNAT规则
Java
1public void batchDeleteBecSnatRules(BecClient client) {
2 BatchDeleteBecSnatRulesRequest request = BatchDeleteBecSnatRulesRequest.builder()
3 // NAT ID, 必需
4 .natId("nat-cn-huhehaote-ix-kqq4igma")
5 // SNAT规则ID列表, 必需
6 .ruleIdList(Arrays.asList("rule-idt8vakda4bg", "rule-laxffejrlbrq"))
7 .build();
8 BatchDeleteBecSnatRulesResponse batchDeleteBecSnatRulesResponse = client.batchDeleteBecSnatRules(request);
9 }
获取NAT网关监控
Java
1public void getBecNatMetrics(BecClient client) {
2 GetBecNatMetricsRequest request = GetBecNatMetricsRequest.builder()
3 // nat网关Id,必需
4 .natId("nat-cn-huhehaote2-ix-ikhxbs4c")
5 // 监控参数。取值为:BANDWIDTH_RECEIVE、BANDWIDTH_TRANSMIT、TRAFFIC_RECEIVE、TRAFFIC_TRANSMIT、PACKETS_RECEIVE、PACKETS_TRANSMIT、CONNECT_NUM,分别对应入网带宽、出网带宽、入网流量、出网流量、入向包速率、出向包速率、连接数。必需
6 .metricsType("BANDWIDTH_TRANSMIT")
7 // 起始时间,Unix时间戳,单位秒,必需
8 .start(1753324917L)
9 // 终止时间,Unix时间戳,单位秒,必需
10 .end(1753411317L)
11 .build();
12 GetBecNatMetricsResponse becNatMetrics = client.getBecNatMetrics(request);
13 }