diff --git a/internal/provider/utils/connection.go b/internal/provider/utils/connection.go index 5761208c..65bcb3cf 100644 --- a/internal/provider/utils/connection.go +++ b/internal/provider/utils/connection.go @@ -2,6 +2,7 @@ package utils import ( "fmt" + "math/rand/v2" "slices" "github.com/qdm12/gluetun/internal/configuration/settings" @@ -44,6 +45,12 @@ func GetConnection(provider string, return connection, fmt.Errorf("filtering servers: %w", err) } + // Randomize order of the servers struct so the first connection to be picked + // won't always be the same one. + rand.Shuffle(len(servers), func(i, j int) { + servers[i], servers[j] = servers[j], servers[i] + }) + protocol := getProtocol(selection) port := getPort(selection, defaults.OpenVPNTCPPort, defaults.OpenVPNUDPPort, defaults.WireguardPort)