Windows

How to configure Control D on any Windows computer.

Automatic Setup (GUI)

Want to spend the least amount of time setting up Control D on a Windows device? We probably read your mind.

GUI Setup Utility is what you're looking for.

Automatic Setup (CLI)

GUI is not your thing, or looking to do a scripted deployment? Have no fear, there is an app for that.

Command Line Daemon is what you're looking for.

Automatic Setup (YogaDNS)

Launch YogaDNS and navigate to Configuration > Configuration Wizard. Select Control D DoH as the provider. Enter your Control D resolver ID and an optional client name. YogaDNS will work seamlessly to route your queries via Control D.

CDYogaDNS

Manual Setup

Want to do everything manually? We understand, some of us still drive stick shift. There are a few ways to do it.

PowerShell (Legacy DNS)

If you're looking for a 1 liner command to configure Legacy DNS on an interface, this is it. The following example will configure 76.76.2.2 (free ad-blocking DNS resolver - yours will be different) on the default network interface. Be sure to run this in Admin prompt.

Get-WmiObject -Class Win32_IP4RouteTable |  where { $_.destination -eq '0.0.0.0' -and $_.mask -eq '0.0.0.0'} |  Sort-Object metric1 | select interfaceindex | set-DnsClientServerAddress -ServerAddresses ('76.76.2.2')

Wow, that was easy.

netsh (Legacy DNS)

Powershell not your thing? Sure, let's setup Legacy DNS another way. Fire up that Admin prompt.

List all interfaces and find the Interface you are currently using or want to change the DNS server on.

netsh interface ip show config

Here we're gonna assume Ethernet0 and DNS server 76.76.2.2 (yours will be different).

netsh interface ipv4 set dns name="Ethernet0" static 76.76.2.2

.... and you're done.

netsh (Secure DNS)

🚧

Compatibility Warning

Windows 11 is required to execute these commands.

Running Windows 11 and wish to setup DNS-over-HTTPS? Good thinking, let's do that. Want a super detailed guide? Check out this blog post. Otherwise, fire up that Admin prompt.

First, let's create a DOH template. Keep in mind, your server and dohtemplate values will be different.

netsh dns add encryption server=76.76.2.2 dohtemplate=https://freedns.controld.com/p2

List all interfaces and find the Interface you are currently using or want to change the DNS server on.

netsh interface show interface

Admin State    State          Type             Interface Name
-------------------------------------------------------------------------
Disabled       Connecting     Dedicated        Local Area Connection 3
Disabled       Connecting     Dedicated        VMware Network Adapter VMnet1
Enabled        Connected      Dedicated        Ethernet0
Disabled       Connecting     Dedicated        Wi-Fi

Choose the network that is both Enabled and Connected. Here we're gonna assume Ethernet0 and DNS server 76.76.2.2 (yours will be different).

netsh interface ipv4 set dns name="Ethernet0" static 76.76.2.2

Now, for some reason you have to open the GUI Settings app, navigate to Network Settings, and edit your interface.

Go to DNS server assignment, choose manual IPv4, and choose the On (automatic template) drop-down menu option for DNS over HTTPS.