diff --git a/client/internal/config.go b/client/internal/config.go index 8bee88cf0..c8edcfb88 100644 --- a/client/internal/config.go +++ b/client/internal/config.go @@ -27,7 +27,7 @@ const ( ) var defaultInterfaceBlacklist = []string{iface.WgInterfaceDefault, "wt", "utun", "tun0", "zt", "ZeroTier", "wg", "ts", - "Tailscale", "tailscale", "docker", "veth", "br-"} + "Tailscale", "tailscale", "docker", "veth", "br-", "lo"} // ConfigInput carries configuration changes to the client type ConfigInput struct { diff --git a/client/internal/stdnet/stdnet.go b/client/internal/stdnet/stdnet.go index c596e105e..142fea80f 100644 --- a/client/internal/stdnet/stdnet.go +++ b/client/internal/stdnet/stdnet.go @@ -196,6 +196,12 @@ func parseInterfacesString(interfaces string) []*transport.Interface { func InterfaceFilter(disallowList []string) func(string) bool { return func(iFace string) bool { + + if strings.HasPrefix(iFace, "lo") { + // hardcoded loopback check to support already installed agents + return false + } + for _, s := range disallowList { if strings.HasPrefix(iFace, s) { log.Debugf("ignoring interface %s - it is not allowed", iFace)