This package install the command line interface for Stubby. A future release will include a Graphical Interface to manage Stubby.
We consider Windows support for the Stubby CLI to be Beta at this time. It has been tested on Windows 10 and Windows 8. There is limited support for Windows 7 - see below.
User testing reports, bug reports and patches/pull requests are all welcomed via the Stubby github issue tracker!
The installer currently overwrites all existing files so if you have made changes to the stubby.yml then you should create a backup of this file before upgrading!
Download and run the 0.0.2 installer: Stubby.msi
SHA256 Checksum: 5a3ea837174be848fd296eaa1d5910aa24001c634cf32e478d007cca05e49d9d
This installs the following files in C:\Program Files\Stubby\
- README.txt - containing these instructions
- stubby.exe - binary
- stubby.yml - configuration file
- getdns_query.exe - tool for testing stubby
- Powershell scripts for modifying system resolvers:
Windows 7 versions of Powershell scripts (see below)
Scripts to enable Stubby to be configured as a Scheduled Task
This version of the installer (0.0.2) is built from:
getdns version: 1.2.1rc-1 (with minor fixes)
stubby version: 0.2.0
It is recommended to use the default configuration file provided which will use 'Strict' privacy mode and spread the DNS queries among several of the current DNS Privacy test servers. Note that this file contains both IPv4 and IPv6 addresses. It installed in "C:\Program Files\Stubby\stubby.yml"
More information on how to customise the configuration can be found here.
Simply invoke Stubby on the command line from a command prompt window (To get a command prompt go to the Windows search box and type 'cmd' and then choose the 'Command prompt' option)
The -l flag enables full logging. Alternatively a specific logging level can be controlled by using the -v flag (run '
- h' for details of available levels).
We are working on support for running Stubby as a service on Windows 10. Instructions for setting up a Scheduled task are below.
A quick test can be done by opening a separate Command prompt window and using getdns_query (or your favourite DNS tool) on the loopback address:
You should see a status of GETDNS_RESPSTATUS_GOOD and and rcode of GETDNS_RCODE_NOERROR in the getdns_query output. You should also see a connection being made in the stubby logs.
Modify your upstream resolvers
Once this change is made all your DNS queries will be re-directed to Stubby and sent over TLS!
(You may need to restart some applications to have them pick up the network settings).
For Stubby to re-send outgoing DNS queries over TLS the recursive resolvers configured on your machine must be changed to send all the local queries to the loopback interface on which Stubby is listening.
In most cases your system will use the 'default' DNS servers that are provided by whatever network you are on at the time. Using the two Powershell comands will be all you need to switch back and forth from Stubby to the default DNS settings for the network you are on. (The scripts don't store any DNS config information because it can change dynamically). If you want to double check what servers you are using right now you can use then follow the instructions below to inspect your system settings. If you have reason to think your system uses specific servers on all networks it might be useful to note your existing default nameservers before making this change so you can use the same instructions to reset them!
To set your nameservers to use Stubby
- From Windows search box type 'cmd' and on the 'Command prompt' option that appears right click and select 'run as Administrator'
In the command prompt window that appears type
PowerShell -ExecutionPolicy bypass -
to switch the system DNS resolvers to use Stubby.
You can monitor the DNS traffic using Wireshark watching on port 853.
If you encounter problems or want to turn Stubby off for any reason then reverse this change to restore the default network settings (no DNS Privacy) by running
Modify your upstream resolvers (Windows 7)
Follow the procedure above, but use the scripts:
- C:\Program Files\Stubby\stubby_setdns_windows7.ps1 and
WARNING: These scripts can only update DNS servers on the IPv4 service. IPv6 will still use the default DNS servers, sending queries in clear text so one option is to disable IPv6, the other is to manually update the IPv6 addessses (see below).
Create a Scheduled Task
If you want Stubby to always start when you boot your system, you can create a Scheduled task for this. A template for the task is provided.
To create the task just run
- We are aware of occasional issues when Windows sleeps and resumes when stubby must be restarted to work correctly.
- If you get an error when trying to run Stubby that includes the words "Could not bind on given address" then retry the command from an 'Administrator' Command prompt window
- The '-h' output of stubby.exe shows the wrong path for the installed configuration file. An issue has been opened for this.
The installer currently overwrites the stubby.yml file so if changes have been made a backup should be created before upgrading
- We have had reports of an issue on Windows 7 where one of the latest optional updates is required for certificate verification to work: see this issue.
Manual update of system revolvers on Windows
If you need to manually inspect or change your system revolvers on Windows through the GUI then do the following:
- Open the Control Panel
- Choose 'Network and Internet'
- Choose 'View network status and tasks' under 'Network and Sharing Center'
- Choose 'Change adapter settings' from the left hand menu
- Then choose your interface - most likely either 'Wi-fi' or 'Ethernet'
- In the dialog that appears, click on the 'Properties' button at the bottom
- In the list that appears double click on 'Internet Protocol Version 4 (TCP/IPv4)'
- You can toggle your DNS between using the default DNS servers provided by the network you are on and setting specific servers using the botton radio buttons on this page
- Be sure to press OK and then Close to apply the settings.
- Repeat step 7 for 'Internet Protocol Version 6 (TCP/IPv6)' if you have IPv6 enabled
A helpful screenshot (in German):
If you have changed the default config in the stubby.yml file and are running in Opportunistic mode then you may want to add an alternative DNS server in here for robustness. However DNS queries sent to this server will be sent clear text over UDP/TCP, so this is NOT recommended for Strict mode unless required for bootstrapping (e.g. in a corporate network).