diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index c5f5bd79c1a9..b2d5854fbc0c 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -150,6 +150,7 @@ in
         ExecReload = "${pkgs.consul}/bin/consul reload";
         PermissionsStartOnly = true;
         User = if cfg.dropPrivileges then "consul" else null;
+        TimeoutStartSec = "${toString (20 + (3 * cfg.joinRetries))}s";
       } // (optionalAttrs (cfg.leaveOnStop) {
         ExecStop = "${pkgs.consul}/bin/consul leave";
       });