VPN
获取Endpoint
在确认您使用SDK配置Endpoint时,可先阅读开发人员指南中关于 VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分,VPN服务是VPC服务的一部分,使用VPC服务域名。
获取AK/SK
要使用百度云产品,您需要拥有一个百度云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。可以通过如下步骤获得并了解您的AK/SK信息:
新建VpnClient
VpnClient是Vpn服务的客户端,为开发者与Vpn服务进行交互提供了一系列的方法。 新建VpnClient时,需要先使用Endpoint、AK、SK对VpnClientConfiguration类型的config实例进行配置,再使用config实例对VpnClient进行配置,具体配置方法如下:
1static final String HOST = "";
2static final String AK = "";
3static final String SK = "";
4VpnClientConfiguration config = new VpnClientConfiguration();
5config.setCredentials(new DefaultBceCredentials(AK, SK));
6config.setEndpoint(HOST);
7VpnClient vpnClient = new VpnClient(config);
创建VPN网关
函数声明
1public CreateVpnResponse createVpn(CreateVpnRequest createVpnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:创建VPN请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "vpnId": "vpn-ku4cxya6nisq"
4}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleCreateVpn.java
释放VPN网关
函数声明
1public void deleteVpn(DeleteVpnRequest deleteVpnResquest) {
2 ......
3}
参数含义
请参考OpenAPI文档:释放VPN网关请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteVpn.java
更新VPN网关
函数声明
1public void updateVpn(UpdateVpnRequest updateVpnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新VPN网关请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateVpn.java
查询VPN网关列表
函数声明
1public ListVpnResponse listVpns(ListVpnRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询VPN网关列表请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "nextMarker": "vpn-xktdeMSf",
4 "marker": "vpn-IyWRtII7",
5 "maxKeys": 1,
6 "isTruncated": true,
7 "vpns": [
8 {
9 "vpnId": "vpn-9c875b4065b5",
10 "vpnName": "VpnJavaSdkTest2",
11 "description": "this is a desc",
12 "status": "unconfigured",
13 "expiredTime": null,
14 "paymentTiming": "Postpaid",
15 "eip": "",
16 "tags": [
17 {
18 "tagKey": "tagKey",
19 "tagValue": "tagValue"
20 }
21 ],
22 "bandwidthInMbps": 0,
23 "vpcId": "vpc-8gc432kidqqb",
24 "vpnConnNum": 0,
25 "vpnConns": null,
26 "sslVpnServer": null,
27 "type": "SSL",
28 "maxConnection": 20,
29 "createTime": "2024-12-24 16:41:00",
30 "deleteProtect": true
31 }
32 ]
33}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleListVpn.java
查询VPN网关详情
函数声明
1public GetVpnResponse getVpn(String vpnId) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询VPN网关详情请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "vpnId": "vpn-9c875b4065b5",
4 "vpnName": "VpnJavaSdkTest2",
5 "description": "this is a desc",
6 "status": "unconfigured",
7 "expiredTime": null,
8 "paymentTiming": "Postpaid",
9 "eip": "",
10 "tags": [
11 {
12 "tagKey": "tagKey",
13 "tagValue": "tagValue"
14 }
15 ],
16 "bandwidthInMbps": 0,
17 "vpcId": "vpc-8gc432kidqqb",
18 "vpnConnNum": 0,
19 "vpnConns": null,
20 "sslVpnServer": null,
21 "type": "SSL",
22 "maxConnection": 20,
23 "createTime": "2024-12-24 16:41:00",
24 "deleteProtect": true
25}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleGetVpn.java
VPN网关绑定EIP
函数声明
1public void bindEip(BindEipRequest bindEipRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:VPN网关绑定EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleBindEip.java
VPN网关解绑EIP
函数声明
1public void bindEip(BindEipRequest bindEipRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:VPN网关解绑EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUnBindEip.java
VPN网关续费
函数声明
1public void renewVpn(RenewVpnRequest renewVpnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:VPN网关续费请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleRenewVpn.java
创建VPN网关隧道
函数声明
1public CreateVpnConnResponse createVpnConn(CreateVpnConnRequest createVpnConnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:创建VPN网关隧道请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "vpnConnId": "vpnconn-ku4cxya6nisq"
4}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleCreateVpnConn.java
更新VPN网关隧道
函数声明
1public void updateVpnConn(UpdateVpnConnRequest updateVpnConnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新VPN网关隧道请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateVpnConn.java
查询VPN网关隧道列表
函数声明
1public ListVpnConnResponse listVpnConns(ListVpnConnRequest listVpnConnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询VPN网关隧道列表请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "vpnConns": [
4 {
5 "secretKey": "ddd22@www",
6 "localSubnets": ["192.168.100.0/24"],
7 "remoteIp": "10.107.245.188",
8 "remoteSubnets": ["192.168.100.0/24"],
9 "description": "111",
10 "vpnConnName": "vpncon",
11 "ikeConfig":
12 {
13 "ikeVersion": "v1",
14 "ikeMode": "main",
15 "ikeEncAlg": "aes",
16 "ikeAuthAlg": "sha1",
17 "ikePfs": "group2",
18 "ikeVersion": "v1"
19 },
20 "ipsecConfig":
21 {
22 "ipsecEncAlg": "aes",
23 "ipsecAuthAlg": "sha1",
24 "ipsecPfs": "group2",
25 "ipsecLifetime": "28800s"
26 }
27 }
28 ]
29}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleListVpnConn.java
删除VPN网关隧道
函数声明
1public void deleteVpnConn(DeleteVpnConnRequest deleteVpnConnRequest) {
2 ......
3}
参数含义
请参考OpenAPI文档:删除VPN网关隧道请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteVpnConn.java
创建SSL-VPN服务端
函数声明
1public CreateSslVpnServerResponse createSslVpnServer(CreateSslVpnServerRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:创建SSL-VPN服务端请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "sslVpnServerId": "sslvpn-5b2hq4nm40tt"
4}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleCreateSslVpnServer.java
查询SSL-VPN服务端
函数声明
1public GetSslVpnServerResponse getSslVpnServer(String vpnId) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询SSL-VPN服务端请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "vpnId": "vpn-shyt1vzgqc3z",
4 "sslVpnServerId": "sslvpn-5b2hq4nm40tt",
5 "sslVpnServerName": "hzb_1_1",
6 "interfaceType": "tap",
7 "status": "active",
8 "localSubnets": ["192.168.0.0/24"],
9 "remoteSubnet": "172.168.0.0/16",
10 "maxConnection": 10,
11 "clientDns":""
12}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleGetSslVpnServer.java
更新SSL-VPN服务端
函数声明
1public void updateSslVpnServer(UpdateSslVpnServerRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新SSL-VPN服务端请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateSslVpnServer.java
删除SSL-VPN服务端
函数声明
1public void deleteSslVpnServer(DeleteSslVpnServerRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:删除SSL-VPN服务端请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteSslVpnServer.java
批量创建SSL-VPN用户
函数声明
1public BatchCreateSslVpnUserResponse batchCreateSslVpnUser(BatchCreateSslVpnUserRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:批量创建SSL-VPN用户请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "sslVpnUserIds": ["vpn-ssl-user-d4fwdu3dw0m8"]
4}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleBatchCreateSslVpnUser.java
更新SSL-VPN用户
函数声明
1public void updateSslVpnUser(UpdateSslVpnUserRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新SSL-VPN用户请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateSslVpnUser.java
查询SSL-VPN用户列表
函数声明
1public ListSslVpnUserResponse getSslVpnUser(ListSslVpnUserRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询SSL-VPN用户列表请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "marker": "vpn-ssl-user-xynkefqf3n5x",
4 "maxKeys": 1,
5 "isTruncated": false,
6 "sslVpnUsers": [
7 {
8 "userId": "vpn-ssl-user-xynkefqf3n5x",
9 "userName": "user",
10 "description": "desc"
11 }
12 ]
13}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleGetSslVpnUser.java
删除SSL-VPN用户
函数声明
1public void deleteSslVpnUser(DeleteSslVpnUserRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:删除SSL-VPN用户请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteSslVpnUser.java
附录
公共返回信息metadata格式
1 {
2 "bceRequestId":"f5f0821d-45fe-439b-bbf4-fc48b639f84a",
3 "contentLength":28,
4 "contentType":"application/json;charset=UTF-8",
5 "date":1701917695000,
6 "server":"openresty/1.15.8.1"
7 }