diff --git a/core/server.go b/core/server.go
index f1664ff020edc0dc37573615a87e216d079d2fc6..5069498cc34a3d27f6d9e7ea609c9356ad6c48dc 100644
--- a/core/server.go
+++ b/core/server.go
@@ -35,6 +35,10 @@ func ReadServer() (*model.Server, error) {
 		server.Address = "fd9f:6666::10:6:6:1/112, 10.6.6.1/24"
 		server.Dns = "fd9f::10:0:0:2, 10.0.0.2"
 		server.PersistentKeepalive = 16
+		server.PreUp = "echo WireGuard PreUp"
+		server.PostUp = "echo WireGuard PostUp"
+		server.PreDown = "echo WireGuard PreDown"
+		server.PostDown = "echo WireGuard PostDown"
 		server.Created = time.Now().UTC()
 		server.Updated = server.Created
 
diff --git a/model/server.go b/model/server.go
index 0d2c642973850fcdf17bbb8b24508d2924d74523..e27df514ab1633a13157b52598480224f1ffc4bc 100644
--- a/model/server.go
+++ b/model/server.go
@@ -15,4 +15,8 @@ type Server struct {
 	Endpoint            string    `json:"endpoint"`
 	PersistentKeepalive int       `json:"persistentKeepalive"`
 	Dns                 string    `json:"dns"`
+	PreUp               string    `json:"preUp"`
+	PostUp              string    `json:"postUp"`
+	PreDown             string    `json:"preDown"`
+	PostDown            string    `json:"postDown"`
 }
diff --git a/template/template.go b/template/template.go
index 7469d6a3bc8a17a99f84451fb052d1ef95c789b0..ea6a72077280928a0bc80e63027748dc2d521f7d 100644
--- a/template/template.go
+++ b/template/template.go
@@ -217,6 +217,10 @@ Address = {{.}}
 	{{end}}
 ListenPort = {{.Server.ListenPort}}
 PrivateKey = {{.Server.PrivateKey}}
+PreUp = {{.Server.PreUp}}
+PostUp = {{.Server.PostUp}}
+PreDown = {{.Server.PreDown}}
+PostDown = {{.Server.PostDown}}
 	{{$server := .Server}}
 	{{range .Clients}}
 		{{if .Enable}}
diff --git a/ui/src/views/Home.vue b/ui/src/views/Home.vue
index a6b70d103c3e25935e68942f886154c1e4bf8230..1968b0d55afee8a99feb157cdc94cac417f66697 100644
--- a/ui/src/views/Home.vue
+++ b/ui/src/views/Home.vue
@@ -55,6 +55,14 @@
                   </v-chip>
                 </template>
               </v-combobox>
+              <v-text-field
+                      v-model="server.preUp"
+                      label="PreUp: script snippets which will be executed by bash before setting up the interface"
+              />
+              <v-text-field
+                      v-model="server.postUp"
+                      label="PostUp: script snippets which will be executed by bash after setting up the interface"
+              />
             </v-col>
             <v-col cols="6">
               <v-text-field
@@ -96,6 +104,14 @@
                   </v-chip>
                 </template>
               </v-combobox>
+              <v-text-field
+                      v-model="server.preDown"
+                      label="PreDown: script snippets which will be executed by bash before setting down the interface"
+              />
+              <v-text-field
+                      v-model="server.postDown "
+                      label="PostDown : script snippets which will be executed by bash after setting down the interface"
+              />
             </v-col>
           </div>