Monthly Archives: March 2026

Sonos V1 on Windows – Slow Startup

We have a lot of Sonos V1 smart speakers in our house, and for as long as I can remember, starting the Sonos V1 app on my main Windows machine is extremely slow.

Initially, it warns that it can’t find any Sonos equipment. Then it spends 30-60 seconds doing some sort of network discovery, and eventually it figures things out and provides the usual Sonos UI interface.

On most PCs, the app takes only a couple of seconds to find everything. It’s slower on mine because my PC has several different IP subnets assigned to my main network adapter. (I find it useful to keep spare subnets like 192.168.1.x and 192.168.100.x permanently configured to help setting up new routers and other equipment.)

The Sonos app relies on Apple’s “Bonjour Service” which uses the mDNS protocol to discover devices. When there is more than one subnet, Bonjour sends out discovery messages on all the subnets, and waits for each one to timeout before returning the results. This timeout is responsible for the long delay on startup.

Over the years, I’ve tried various fixes for this, all unsuccessful. Recently, I gave ChatGPT a chance to diagnose it, and was pleasantly surprised when it came up with a working solution.

In essence, you add Block rules to the Windows firewall to stop Bonjour transmitting on all subnets except for your primary subnet. The firewall rules mean Bonjour sees an immediate failure when it tries to send each discovery packet and doesn’t need to wait for the timeout period.

If you have this problem, here are the steps to follow.

First, open PowerShell as Administrator (you can just open a command line in Administrator mode and type powershell if you’re not a regular PowerShell user).

Type this command to see your current IP subnets:

    Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.InterfaceAlias -eq "Ethernet"} | grep IPAddress

You’ll likely see something like this:

    10.1.1.205 ✅ (keep)    192.168.0.205 ❌    192.168.1.205 ❌

The first IP address is in the main subnet I use for Sonos and other equipment. We’ll leave this alone. The other two addresses are spare subnets that we’ll block using this script. Just paste it directly into PowerShell, modifying it as needed:

    foreach ($subnet in @("192.168.0.0/24", "192.168.1.0/24"))
    {
        set Rulename "Block mDNS from non-Sonos subnet $subnet"
        Remove-NetFirewallRule -DisplayName $Rulename
        New-NetFirewallRule -DisplayName $Rulename
            -Direction Outbound -Protocol UDP
            -LocalPort 5353 -LocalAddress "$subnet"
            -Program "C:\Program Files\Bonjour\mDNSResponder.exe" `
            -Action Block
    }

The @(....) array in the first line should list all the subnets you want to block – but not your primary IP subnet. This adds a new rule to the firewall for each subnet saying any contact attempts from mDNSResponder.exe (which actually carries out the discovery) should be blocked.

Once you have done this, just restart the Bonjour Service and you’re all set:

    Restart-Service "Bonjour Service"

Now you should find the Sonos app starts up almost instantly!