diff --git a/zh-cn/application-dev/reference/apis/js-apis-net-vpn.md b/zh-cn/application-dev/reference/apis/js-apis-net-vpn.md
new file mode 100644
index 0000000000000000000000000000000000000000..b30e503c821cd576a9af52e6819b1f44ba04758e
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-net-vpn.md
@@ -0,0 +1,399 @@
+# @ohos.net.vpn (VPN管理)
+
+VPN管理模块,支持VPN的启动和停止功能。
+
+> **说明:**
+> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+
+```js
+import vpn from '@ohos.net.vpn';
+```
+
+## vpn.createVpnConnection10+
+
+function createVpnConnection(context: AbilityContext): VpnConnection;
+
+创建一个VPN连接对象。
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
+| context | AbilityContext | 是 | 指定context |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 401 | Parameter error. |
+
+**示例:**
+
+```js
+ import featureAbility from '@ohos.ability.featureAbility';
+
+ let context = featureAbility.getContext();
+ VpnConnection = vpn.createVpnConnection(context);
+ console.info("vpn onInit: " + JSON.stringify(VpnConnection));
+```
+
+## VpnConnection.setUp10+
+
+setUp(config: VpnConfig, callback: AsyncCallback\): void;
+
+使用config创建一个vpn网络,使用callback方式作为异步方法。
+
+**系统接口**:此接口为系统接口。
+
+**需要权限**:ohos.permission.MANAGE_VPN
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
+| config | [VpnConfig](#vpnconfig10) | 是 | 指定VPN网络的配置信息。 |
+| callback | AsyncCallback\ | 是 | 回调函数,当成功启动VPN网络时,返回虚拟网卡的tunfd, error为undefined,否则为错误对象。 |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 201 | Permission denied. |
+| 202 | Non-system applications use system APIs. |
+| 401 | Parameter error. |
+| 2200001 | Invalid parameter value. |
+| 2200002 | Operation failed. Cannot connect to service. |
+| 2100003 | System internal error. |
+| 2203001 | VPN creation denied, please check the user type. |
+| 2203002 | VPN exist already, please execute destroy first. |
+
+**示例:**
+
+```js
+ let config = {
+ addresses: [{
+ address: {
+ address: "10.0.0.5",
+ family: 1,
+ },
+ prefixLength: 24,
+ }],
+ routes: [],
+ mtu: 1400,
+ dnsAddresses:[
+ "8.8.8.8", // 114.114.114.114
+ ],
+ acceptedApplications:[],
+ refusedApplications:[],
+ }
+ VpnConnection.setUp(config, (error, data) => {
+ console.info(JSON.stringify(error));
+ console.info("tunfd: " + JSON.stringify(data));
+ })
+```
+
+## VpnConnection.setUp10+
+
+setUp(config: VpnConfig): Promise\;
+
+使用config创建一个vpn网络,使用Promise方式作为异步方法。
+
+**系统接口**:此接口为系统接口。
+
+**需要权限**:ohos.permission.MANAGE_VPN
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
+| config | [VpnConfig](#vpnconfig10) | 是 | 指定VPN网络的配置信息。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | 以Promise形式返回获取结果,返回指定虚拟网卡的tunfd。 |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 201 | Permission denied. |
+| 202 | Non-system applications use system APIs. |
+| 401 | Parameter error. |
+| 2200001 | Invalid parameter value. |
+| 2200002 | Operation failed. Cannot connect to service. |
+| 2100003 | System internal error. |
+| 2203001 | VPN creation denied, please check the user type. |
+| 2203002 | VPN exist already, please execute destroy first. |
+
+**示例:**
+
+```js
+ let config = {
+ addresses: [{
+ address: {
+ address: "10.0.0.5",
+ family: 1,
+ },
+ prefixLength: 24,
+ }],
+ routes: [],
+ mtu: 1400,
+ dnsAddresses:[
+ "8.8.8.8", // 114.114.114.114
+ ],
+ acceptedApplications:[],
+ refusedApplications:[],
+ }
+ VpnConnection.setUp(config).then((data) => {
+ console.info(TAG + "setUp success, tunfd: " + JSON.stringify(data))
+ }).catch(err => {
+ console.info(TAG + "setUp fail" + JSON.stringify(err))
+ })
+```
+
+## VpnConnection.protect10+
+
+protect(socketFd: number, callback: AsyncCallback\): void;
+
+保护套接字不受VPN连接。经过保护后,通过此套接字发送的数据将直接进入底层网络,因此其流量不会通过VPN转发,使用callback方式作为异步方法。
+
+**系统接口**:此接口为系统接口。
+
+**需要权限**:ohos.permission.MANAGE_VPN
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
+| socketFd | number | 是 | 指定保护的socketfd。 |
+| callback | AsyncCallback\ | 是 | 回调函数,成功时,err为undefined,失败返回错误码错误信息。 |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 201 | Permission denied. |
+| 202 | Non-system applications use system APIs. |
+| 401 | Parameter error. |
+| 2200001 | Invalid parameter value. |
+| 2200002 | Operation failed. Cannot connect to service. |
+| 2100003 | System internal error. |
+| 2203004 | Invalid socket file descriptor. |
+
+**示例:**
+
+```js
+ import socket from "@ohos.net.socket";
+ var tcp = socket.constructTCPSocketInstance();
+ let tunnelfd = 0
+ tcp.bind({
+ address: "0.0.0.0",
+ family: 1,
+ port: 0
+ })
+ let connectAddress = {
+ address: "192.168.1.11",
+ port: 8888,
+ family: 1
+ };
+ tcp.connect({
+ address: connectAddress, timeout: 6000
+ })
+ tcp.getSocketFd().then((data) => {
+ console.info("tunenlfd: " + data);
+ tunnelfd = data
+ })
+ VpnConnection.protect(tunnelfd, (error, data) => {
+ console.info(JSON.stringify(error));
+ console.info(JSON.stringify(data));
+ })
+```
+
+## VpnConnection.protect10+
+
+protect(socketFd: number): Promise;
+
+保护套接字不受VPN连接。经过保护后,通过此套接字发送的数据将直接进入底层网络,因此其流量不会通过VPN转发, 使用Promise方式作为异步方法。
+
+**系统接口**:此接口为系统接口。
+
+**需要权限**:ohos.permission.MANAGE_VPN
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
+| socketFd | number | 是 | 指定保护的socketfd。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | 以Promise形式返回设定结果,失败返回错误码错误信息。 |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 201 | Permission denied. |
+| 202 | Non-system applications use system APIs. |
+| 401 | Parameter error. |
+| 2200001 | Invalid parameter value. |
+| 2200002 | Operation failed. Cannot connect to service. |
+| 2100003 | System internal error. |
+| 2203004 | Invalid socket file descriptor. |
+
+**示例:**
+
+```js
+ import socket from "@ohos.net.socket";
+ var tcp = socket.constructTCPSocketInstance();
+ let tunnelfd = 0
+ tcp.bind({
+ address: "0.0.0.0",
+ family: 1,
+ port: 0
+ })
+ let connectAddress = {
+ address: "192.168.1.11",
+ port: 8888,
+ family: 1
+ };
+ tcp.connect({
+ address: connectAddress, timeout: 6000
+ })
+ tcp.getSocketFd().then((data) => {
+ console.info("tunenlfd: " + data);
+ tunnelfd = data
+ })
+ VpnConnection.protect(tunnelfd).then((data) => {
+ console.info("protect success" + JSON.stringify(data))
+ }).catch(err => {
+ console.info("protect fail" + JSON.stringify(err))
+ })
+```
+
+## VpnConnection.destroy10+
+
+destroy(callback: AsyncCallback\): void;
+
+销毁启动的VPN网络,使用callback方式作为异步方法。
+
+**系统接口**:此接口为系统接口。
+
+**需要权限**:ohos.permission.MANAGE_VPN
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
+| callback | AsyncCallback\ | 是 | 回调函数,成功时,err为undefined,失败返回错误码错误信息。 |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 201 | Permission denied. |
+| 202 | Non-system applications use system APIs. |
+| 401 | Parameter error. |
+| 2200002 | Operation failed. Cannot connect to service. |
+| 2100003 | System internal error. |
+
+**示例:**
+
+```js
+ VpnConnection.destroy((error, data) => {
+ console.info(JSON.stringify(error));
+ console.info(JSON.stringify(data));
+ })
+```
+
+## VpnConnection.destroy10+
+
+destroy(): Promise;
+
+销毁启动的VPN网络,使用Promise方式作为异步方法。
+
+**系统接口**:此接口为系统接口。
+
+**需要权限**:ohos.permission.MANAGE_VPN
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+**返回值:**
+
+| 类型 | 说明 |
+| --------------------------------- | ------------------------------------- |
+| Promise\ | 以Promise形式返回设定结果,失败返回错误码错误信息。 |
+
+**错误码:**
+
+以下错误码的详细介绍参见[VPN错误码](../errorcodes/errorcode-net-vpn)。
+
+| 错误码ID | 错误信息 |
+| ------- | ----------------------------- |
+| 201 | Permission denied. |
+| 202 | Non-system applications use system APIs. |
+| 401 | Parameter error. |
+| 2200002 | Operation failed. Cannot connect to service. |
+| 2100003 | System internal error. |
+
+**示例:**
+
+```js
+ VpnConnection.destroy().then((data) => {
+ console.info("destroy success" + JSON.stringify(data))
+ }).catch(err => {
+ console.info("destroy fail" + JSON.stringify(err))
+ });
+```
+
+## VpnConfig10+
+
+VPN配置参数。
+
+**系统接口**:此接口为系统接口。
+
+**系统能力**:SystemCapability.Communication.NetManager.Vpn
+
+| 名称 | 类型 | 必填 | 说明 |
+| ------- | ------ | -- |------------------------------ |
+| addresses | Array | 是 | VPN虚拟网卡的IP地址。 |
+| routes | Array | 否 | VPN虚拟网卡的路由信息。 |
+| dnsAddresses | Array | 否 | DNS服务器地址信息。 |
+| searchDomains | Array | 否 | DNS的搜索域列表。 |
+| mtu | number | 否 | 最大传输单元MTU值(单位:字节)。 |
+| isIPv4Accepted | boolean | 否 | 是否支持IPV4, 默认值为true。 |
+| isIPv6Accepted | boolean | 否 | 是否支持IPV6, 默认值为flase。 ||
+| isLegacy | boolean | 否 | 是否支持内置VPN, 默认值为flase。 |
+| isBlocking | boolean | 否 | 是否阻塞模式, 默认值为flase。 |
+| trustedApplications | Array | 否 | 白名单信息, string类型表示的包名。 |
+| blockedApplications | Array | 否 | 黑名单信息, string类型表示的包名。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-socket.md b/zh-cn/application-dev/reference/apis/js-apis-socket.md
index e47fab146540c4f981ba3618e29c8505224040c2..50c0a750986c040caa0fd573e2d8a4a63323a1b3 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-socket.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-socket.md
@@ -1235,6 +1235,87 @@ promise.then(() => {
});
```
+### getSocketFd10+
+
+getSocketFd(callback: AsyncCallback\): void
+
+获取TCPSocket的文件描述符。使用callback方式作为异步方法。
+
+> **说明:**
+> bind或connect方法调用成功后,才可调用此方法。
+
+**系统能力**:SystemCapability.Communication.NetStack
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------------------------ | ---- | ---------- |
+| callback | AsyncCallback\ | 是 | 回调函数,当成功获取fd时,返回tcpsocket的fd。 |
+
+**示例:**
+
+```js
+ import socket from "@ohos.net.socket";
+ var tcp = socket.constructTCPSocketInstance();
+ let tunnelfd = 0
+ tcp.bind({
+ address: "0.0.0.0",
+ family: 1,
+ })
+ let connectAddress = {
+ address: "192.168.1.11",
+ port: 8888,
+ family: 1
+ };
+ tcp.connect({
+ address: connectAddress, timeout: 6000
+ })
+ tcp.getSocketFd((data) => {
+ console.info("tunenlfd: " + data);
+ tunnelfd = data
+ })
+```
+### getSocketFd10+
+
+getSocketFd(): Promise\
+
+获取TCPSocket的文件描述符。使用Promise方式作为异步方法。
+
+> **说明:**
+> bind或connect方法调用成功后,才可调用此方法。
+
+**系统能力**:SystemCapability.Communication.NetStack
+
+**返回值:**
+
+| 类型 | 说明 |
+| :----------------------------------------------- | :----------------------------------------- |
+| Promise\ | 以Promise形式返回获取TCPSocket的文件描述符。 |
+
+**示例:**
+
+```js
+ import socket from "@ohos.net.socket";
+ var tcp = socket.constructTCPSocketInstance();
+ let tunnelfd = 0
+ tcp.bind({
+ address: "0.0.0.0",
+ family: 1,
+ })
+ let connectAddress = {
+ address: "192.168.1.11",
+ port: 8888,
+ family: 1
+ };
+ tcp.connect({
+ address: connectAddress, timeout: 6000
+ })
+ tcp.getSocketFd().then((data) => {
+ console.info("tunenlfd: " + data);
+ tunnelfd = data
+ })
+```
+
### setExtraOptions7+
setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback\): void
diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-net-vpn.md b/zh-cn/application-dev/reference/errorcodes/errorcode-net-vpn.md
new file mode 100644
index 0000000000000000000000000000000000000000..797b14388ef921ee3372e16db0cd702bdc720721
--- /dev/null
+++ b/zh-cn/application-dev/reference/errorcodes/errorcode-net-vpn.md
@@ -0,0 +1,61 @@
+# VPN错误码
+
+> **说明:**
+>
+> 以下仅介绍本模块特有错误码,通用错误码请参考[通用错误码说明文档](errorcode-universal.md)。
+
+## 2203001 VPN创建失败
+
+**错误信息**
+
+VPN creation denied, please check the user type.
+
+**错误描述**
+
+VPN创建拒绝,请检测当前用户的类型。
+
+**可能原因**
+
+用户的type不匹配, GUEST用户不能调用setUp接口。
+
+**处理步骤**
+
+检查当前用户的类型。
+
+
+## 2203002 VPN已存在
+
+**错误信息**
+
+VPN exist already, please execute destroy first.
+
+**错误描述**
+
+VPN已经存在,请先执行destory接口。
+
+**可能原因**
+
+VPN已经被创建。
+
+**处理步骤**
+
+先执行destory接口,再调用该接口。
+
+
+## 2203004 无效描述符
+
+**错误信息**
+
+Invalid socket file descriptor.
+
+**错误描述**
+
+无效的文件描述符。
+
+**可能原因**
+
+tcp链路建立失败。
+
+**处理步骤**
+
+检查tcp链路是否建立成功。
\ No newline at end of file