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进行配置,具体配置方法如下:
static final String HOST = "";
static final String AK = "";
static final String SK = "";
VpnClientConfiguration config = new VpnClientConfiguration();
config.setCredentials(new DefaultBceCredentials(AK, SK));
config.setEndpoint(HOST);
VpnClient vpnClient = new VpnClient(config);
创建VPN网关
函数声明
public CreateVpnResponse createVpn(CreateVpnRequest createVpnRequest) {
......
}
参数含义
请参考OpenAPI文档:创建VPN请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"vpnId": "vpn-ku4cxya6nisq"
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleCreateVpn.java
释放VPN网关
函数声明
public void deleteVpn(DeleteVpnRequest deleteVpnResquest) {
......
}
参数含义
请参考OpenAPI文档:释放VPN网关请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteVpn.java
更新VPN网关
函数声明
public void updateVpn(UpdateVpnRequest updateVpnRequest) {
......
}
参数含义
请参考OpenAPI文档:更新VPN网关请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateVpn.java
查询VPN网关列表
函数声明
public ListVpnResponse listVpns(ListVpnRequest request) {
......
}
参数含义
请参考OpenAPI文档:查询VPN网关列表请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"nextMarker": "vpn-xktdeMSf",
"marker": "vpn-IyWRtII7",
"maxKeys": 1,
"isTruncated": true,
"vpns": [
{
"status": "active",
"eip": "10.12.34.32",
"vpnId": "vpn-IyWRtII7",
"vpcId": "83edd0d2-8a68-4ce5-a396-9d2917d58a57",
"description": "",
"expiredTime": null,
"productType": "postpay",
"vpnConnNum": 0,
"bandwidthInMbps": 10,
"vpnConns": [],
"vpnName": "VPN_aoko_2",
"createTime": "2021-04-25 17:22:34"
}
]
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleListVpn.java
查询VPN网关详情
函数声明
public GetVpnResponse getVpn(String vpnId) {
......
}
参数含义
请参考OpenAPI文档:查询VPN网关详情请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"status": "active",
"eip": "",
"vpnId": "vpn-shkgan7et1vx",
"vpcId": "83edd0d2-8a68-4ce5-a396-9d2917d58a57",
"description": "",
"expiredTime": null,
"paymentTiming": "Postpaid",
"vpnConnNum": 0,
"bandwidthInMbps": 0,
"vpnConns": [],
"vpnName": "VPN_aoko_2",
"createTime": "2021-04-25 17:22:34"
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleGetVpn.java
VPN网关绑定EIP
函数声明
public void bindEip(BindEipRequest bindEipRequest) {
......
}
参数含义
请参考OpenAPI文档:VPN网关绑定EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleBindEip.java
VPN网关解绑EIP
函数声明
public void bindEip(BindEipRequest bindEipRequest) {
......
}
参数含义
请参考OpenAPI文档:VPN网关解绑EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUnBindEip.java
VPN网关续费
函数声明
public void renewVpn(RenewVpnRequest renewVpnRequest) {
......
}
参数含义
请参考OpenAPI文档:VPN网关续费请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleRenewVpn.java
创建VPN网关隧道
函数声明
public CreateVpnConnResponse createVpnConn(CreateVpnConnRequest createVpnConnRequest) {
......
}
参数含义
请参考OpenAPI文档:创建VPN网关隧道请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"vpnConnId": "vpnconn-ku4cxya6nisq"
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleCreateVpnConn.java
更新VPN网关隧道
函数声明
public void updateVpnConn(UpdateVpnConnRequest updateVpnConnRequest) {
......
}
参数含义
请参考OpenAPI文档:更新VPN网关隧道请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateVpnConn.java
查询VPN网关隧道列表
函数声明
public ListVpnConnResponse listVpnConns(ListVpnConnRequest listVpnConnRequest) {
......
}
参数含义
请参考OpenAPI文档:查询VPN网关隧道列表请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"vpnConns": [
{
"secretKey": "ddd22@www",
"localSubnets": ["192.168.100.0/24"],
"remoteIp": "10.107.245.188",
"remoteSubnets": ["192.168.100.0/24"],
"description": "111",
"vpnConnName": "vpncon",
"ikeConfig":
{
"ikeVersion": "v1",
"ikeMode": "main",
"ikeEncAlg": "aes",
"ikeAuthAlg": "sha1",
"ikePfs": "group2",
"ikeVersion": "v1"
},
"ipsecConfig":
{
"ipsecEncAlg": "aes",
"ipsecAuthAlg": "sha1",
"ipsecPfs": "group2",
"ipsecLifetime": "28800s"
}
}
]
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleListVpnConn.java
删除VPN网关隧道
函数声明
public void deleteVpnConn(DeleteVpnConnRequest deleteVpnConnRequest) {
......
}
参数含义
请参考OpenAPI文档:删除VPN网关隧道请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteVpnConn.java
创建SSL-VPN服务端
函数声明
public CreateSslVpnServerResponse createSslVpnServer(CreateSslVpnServerRequest request) {
......
}
参数含义
请参考OpenAPI文档:创建SSL-VPN服务端请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"sslVpnServerId": "sslvpn-5b2hq4nm40tt"
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleCreateSslVpnServer.java
查询SSL-VPN服务端
函数声明
public GetSslVpnServerResponse getSslVpnServer(String vpnId) {
......
}
参数含义
请参考OpenAPI文档:查询SSL-VPN服务端请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"vpnId": "vpn-shyt1vzgqc3z",
"sslVpnServerId": "sslvpn-5b2hq4nm40tt",
"sslVpnServerName": "hzb_1_1",
"interfaceType": "tap",
"status": "active",
"localSubnets": ["192.168.0.0/24"],
"remoteSubnet": "172.168.0.0/16",
"maxConnection": 10,
"clientDns":""
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleGetSslVpnServer.java
更新SSL-VPN服务端
函数声明
public void updateSslVpnServer(UpdateSslVpnServerRequest request) {
......
}
参数含义
请参考OpenAPI文档:更新SSL-VPN服务端请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateSslVpnServer.java
删除SSL-VPN服务端
函数声明
public void deleteSslVpnServer(DeleteSslVpnServerRequest request) {
......
}
参数含义
请参考OpenAPI文档:删除SSL-VPN服务端请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteSslVpnServer.java
批量创建SSL-VPN用户
函数声明
public BatchCreateSslVpnUserResponse batchCreateSslVpnUser(BatchCreateSslVpnUserRequest request) {
......
}
参数含义
请参考OpenAPI文档:批量创建SSL-VPN用户请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"sslVpnUserIds": ["vpn-ssl-user-d4fwdu3dw0m8"]
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleBatchCreateSslVpnUser.java
更新SSL-VPN用户
函数声明
public void updateSslVpnUser(UpdateSslVpnUserRequest request) {
......
}
参数含义
请参考OpenAPI文档:更新SSL-VPN用户请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleUpdateSslVpnUser.java
查询SSL-VPN用户列表
函数声明
public ListSslVpnUserResponse getSslVpnUser(ListSslVpnUserRequest request) {
......
}
参数含义
请参考OpenAPI文档:查询SSL-VPN用户列表请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"marker": "vpn-ssl-user-xynkefqf3n5x",
"maxKeys": 1,
"isTruncated": false,
"sslVpnUsers": [
{
"userId": "vpn-ssl-user-xynkefqf3n5x",
"userName": "user",
"description": "desc"
}
]
}
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleGetSslVpnUser.java
删除SSL-VPN用户
函数声明
public void deleteSslVpnUser(DeleteSslVpnUserRequest request) {
......
}
参数含义
请参考OpenAPI文档:删除SSL-VPN用户请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:异常列表
示例代码
具体代码示例参考:ExampleDeleteSslVpnUser.java
附录
公共返回信息metadata格式
{
"bceRequestId":"f5f0821d-45fe-439b-bbf4-fc48b639f84a",
"contentLength":28,
"contentType":"application/json;charset=UTF-8",
"date":1701917695000,
"server":"openresty/1.15.8.1"
}