diff --git a/hub/executor/executor.go b/hub/executor/executor.go
index d54d55b752..97072ec88d 100644
--- a/hub/executor/executor.go
+++ b/hub/executor/executor.go
@@ -101,6 +101,7 @@ func ApplyConfig(cfg *config.Config, force bool) {
 	updateNTP(cfg.NTP)
 	updateDNS(cfg.DNS, cfg.General.IPv6)
 	updateListeners(cfg.General, cfg.Listeners, force)
+	updateTun(cfg.General) // tun should not care "force"
 	updateIPTables(cfg)
 	updateTunnels(cfg.Tunnels)
 
@@ -198,6 +199,9 @@ func updateListeners(general *config.General, listeners map[string]C.InboundList
 	listener.ReCreateShadowSocks(general.ShadowSocksConfig, tunnel.Tunnel)
 	listener.ReCreateVmess(general.VmessConfig, tunnel.Tunnel)
 	listener.ReCreateTuic(general.TuicServer, tunnel.Tunnel)
+}
+
+func updateTun(general *config.General) {
 	listener.ReCreateTun(general.Tun, tunnel.Tunnel)
 }