diff --git a/CMakeLists.txt b/CMakeLists.txt
index fce3be430822ab9053d24e1c33b5f883180630c2..8ed44aeb44d2aa1fb3a1c993a9d7ae6cf9b320e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,7 +46,7 @@ SET( CPACK_GENERATOR "DEB")
 SET( CPACK_PACKAGE_NAME  "${PROJECT_NAME}")
 SET( CPACK_PACKAGE_VERSION_MAJOR 2)
 SET( CPACK_PACKAGE_VERSION_MINOR 4)
-SET( CPACK_PACKAGE_VERSION_PATCH 23)
+SET( CPACK_PACKAGE_VERSION_PATCH 25)
 
 SET( CPACK_SYSTEM_NAME "debian-9.9-amd64")
 SET( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${CPACK_PACKAGE_VERSION_PATCH}")
diff --git a/libdap-chain-net b/libdap-chain-net
index dd43031c777822e26894718de325745ec024adb4..810dc5ef6961594ddc1d7a79b1533be68d74d88c 160000
--- a/libdap-chain-net
+++ b/libdap-chain-net
@@ -1 +1 @@
-Subproject commit dd43031c777822e26894718de325745ec024adb4
+Subproject commit 810dc5ef6961594ddc1d7a79b1533be68d74d88c
diff --git a/libdap-chain-net-srv-vpn b/libdap-chain-net-srv-vpn
index 5e9b770c4048b5e6e72f11befe5e3df8a9040c6b..0f72724bd867caa67b10921e4b775a68e27c48fb 160000
--- a/libdap-chain-net-srv-vpn
+++ b/libdap-chain-net-srv-vpn
@@ -1 +1 @@
-Subproject commit 5e9b770c4048b5e6e72f11befe5e3df8a9040c6b
+Subproject commit 0f72724bd867caa67b10921e4b775a68e27c48fb
diff --git a/libdap-client b/libdap-client
index 7e52293d5d2468cc19ca6cc5b22fe53cb237e31d..9f4943f40c1150a818e3200d2d6efc235fc4e1c1 160000
--- a/libdap-client
+++ b/libdap-client
@@ -1 +1 @@
-Subproject commit 7e52293d5d2468cc19ca6cc5b22fe53cb237e31d
+Subproject commit 9f4943f40c1150a818e3200d2d6efc235fc4e1c1
diff --git a/libdap-stream-ch b/libdap-stream-ch
index 3d0776c846c61ef3a34f90ee511c773cf033ee13..8f22ef8aaf1b3e4370fcf73cc0d4044679edad58 160000
--- a/libdap-stream-ch
+++ b/libdap-stream-ch
@@ -1 +1 @@
-Subproject commit 3d0776c846c61ef3a34f90ee511c773cf033ee13
+Subproject commit 8f22ef8aaf1b3e4370fcf73cc0d4044679edad58
diff --git a/sources/main.c b/sources/main.c
index a2e8450523140b77242f67bbec7242683ea85aa1..cc2525616b33eabf7e52c408ddab7d97c2958c47 100644
--- a/sources/main.c
+++ b/sources/main.c
@@ -82,6 +82,7 @@
 #include "dap_chain_net_srv_datum.h"
 #include "dap_chain_net_srv_datum_pool.h"
 #include "dap_chain_net_srv_vpn.h"
+#include "dap_chain_net_vpn_client.h"
 #include "dap_chain_global_db.h"
 #include "dap_chain_mempool.h"
 #include "dap_chain_node_cli.h"
@@ -272,7 +273,6 @@ int main( int argc, const char **argv )
         return -66;
     }
 
-#if 0
     if( dap_chain_net_srv_app_init() !=0){
         log_it(L_CRITICAL,"Can't init dap chain network service applications module");
         return -67;
@@ -287,11 +287,18 @@ int main( int argc, const char **argv )
         log_it(L_CRITICAL,"Can't init dap chain network service datum pool module");
         return -69;
     }
-    if( dap_chain_net_srv_vpn_init(g_config) !=0){
-        log_it(L_ERROR,"Can't init dap chain network service vpn module");
-        //return -70;
+    // vpn server
+    if(dap_config_get_item_bool_default(g_config, "vpn", "enabled", false)) {
+        if(dap_chain_net_srv_vpn_init(g_config) != 0) {
+            log_it(L_ERROR, "Can't init dap chain network service vpn module");
+            return -70;
+        }
+    }
+    // vpn client
+    if(dap_chain_net_vpn_client_init(g_config) != 0) {
+        log_it(L_ERROR, "Can't init dap chain network service vpn client");
+        return -71;
     }
-#endif
 
 	if ( enc_http_init() != 0 ) {
 	    log_it( L_CRITICAL, "Can't init encryption http session storage module" );
diff --git a/sources/main_node_cli.c b/sources/main_node_cli.c
index c9be4351aa9085e8f0876c4229e73a4ccac8a74e..590ca757dbb9a96a54ff36caca9ae377a20953d4 100644
--- a/sources/main_node_cli.c
+++ b/sources/main_node_cli.c
@@ -198,7 +198,7 @@ int main(int argc, const char * argv[])
     memset(s_sys_dir_path + l_sys_dir_path_len, '\0', MAX_PATH - l_sys_dir_path_len);
 
     if((g_config = dap_config_open(DAP_APP_NAME)) == NULL) {
-        printf("Can't init general configurations\n");
+        printf("Can't init general configurations " DAP_APP_NAME ".cfg\n");
         exit(-1);
     }
 
@@ -206,7 +206,7 @@ int main(int argc, const char * argv[])
     cparam = node_cli_connect();
     if(!cparam)
     {
-        printf("Can't connected to cellframe-node\n");
+        printf("Can't connected to " DAP_APP_NAME "\n");
         exit(-1);
     }