Windows installer for Stubby

Overview

Stubby can be installed

The 0.4.x releases of the windows installers include both the command line tool described below and also an experimental release of a Graphical Interface to manage Stubby.

Stubby has been tested on Windows 10 and should work on 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!

Installation

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!

Latest stable msi and zip installers:

Latest stable installer is version 0.3.0.6 built from:

  • getdns version: 1.6.0 
  • openssl version: 1.0.2s
  • stubby version: 0.3.0 
Description File SHA256 Checksum
64bit Windows Installer abc0c103d56d620ef942b48d7c3c2713638587a397baecb003644c82816a0249
32bit Windows Installer stubby-0.3.0.6-x86.msi a1afae37090c622304d4ea8ad593f277fed50b5bd2281032b4bb9522c1097e2e
Zip file with 64bit install
9e6b1480bc9690d8280a921499273d85c59bc7097ff7203efc2a7ba7351df2f7
Zip file with 32bit install
db742031551af20d611b011dea7827a6611281d28e8b3dcada7a8cc92fa4a0bb

Latest chocolatey package is available herehttps://chocolatey.org/packages/stubby/0.3.0.6

Latest development msi and zip installers:

Latest development installer is version 0.4.4-rc1 built from:

  • getdns version: 1.7.4-rc1 
  • openssl version: 1.1.1g
  • stubby version: 0.4.4-rc1
Description File SHA256 Checksum
64bit Windows Installer

1af9efc289df598930253d9cb325fb72b6630531396dcb1b45f64826ea659851

32bit Windows Installer

58eab8f11ff79eb1479754abd363716f84fcb919927b7ac452634a4fcd902e10

Zip file with 64bit install

b7c582ef49b2dac75bc1a4e17e0b985d59b186da49cf56282922bd41a48a899b

Zip file with 32bit install

a6f575f89fab6f213bb6fa639465ef6575f302e5c621b9c48be66f627e9c17d0

Release notes

Version 0.4.4-rc1

  • This update is built on top of the latest getdns/stubby releases (1.7.3 and 0.4.3) with patches to fix issues with the Windows build. As such it is label as an rc1 release for the 0.4.4 release.
  • Note that since the 0.3.0 version, the Sinodun dnsovertls servers have been decommissioned and removed from the default config file. Users who preserve their config over upgrade should manually remove those servers from the config.

Version 0.4.0-a2

Version 0.4.0-a1

  • The msi and zip files now includes an alpha release of Stubby Manager GUI see this page for details. This installs alongside the existing install and should not interfere with existing installs. (Chocolatey package does not contain this yet.) The alpha is not feature complete and should be used with care, see Stubby Manager GUI.
  • Stubby can now be installed as a Windows service, see this README.md for details.

Version 0.3.0

  • Update to use Stubby 0.3.0.
  • This release is built with the Visual Studio toolchain. Previous releases were built with MinGW.

Version 0.2.6

  • Update to use Stubby 0.2.6

Version 0.2.5

  • Previous versions of the installer were numbered 0.0.1 to 0.0.7. From this release onward we are adopting a new policy. Installer releases will have a 4 component version a.b.c.d. a.b.c gives the Stubby version. d indicates the installer package revision, starting at 0 for the first packaging of a given Stubby version.

  • The 0.2.5.0 release now provides a 32bit install as well as a 64bit install.

    • On a 64bit Windows installation, a 32bit install will place files in C:\Program Files (x86)\Stubby. All other installs place files in C:\Program Files\Stubby.
  • This release corrects the default configuration file location to C:\Program Files\Stubby\stubby.yml. This path no longer needs to be specified on the command line.

  • stubby.bat has been updated to look for the configuration file in the same directory as the Stubby executable.

Installer contents

These contain the following files by the installer.

The 0.3.0.6 release and later provides a 32bit install as well as a 64bit install. On a 64bit Windows installation, a 32bit install will place files in C:\Program Files (x86)\Stubby. All other installs place 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
  • getdns_server_mon.exe - tool for probing servers
  • Powershell scripts for modifying system resolvers:
    • stubby_setdns_windows.ps1
    • stubby_resetdns_windows.ps1
    • Windows 7 versions of Powershell scripts (see below)
      • stubby_setdns_windows7.ps1
      • stubby_resetdns_windows7.ps1
  • Scripts to enable Stubby to be configured as a Scheduled Task
    • stubby.xml
    • stubby.bat
  • Additional files required for the Stubby Manager GUI

Configuration

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.

Run Stubby

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)

"C:\Program Files\Stubby\stubby.exe" -l

The -l flag enables full logging. Alternatively a specific logging level can be controlled by using the -v flag (run "C:\Program Files\Stubby\stubby.exe" - 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.

Test Stubby

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:

"C:\Program Files\Stubby\getdns_query" -s @127.0.0.1 www.example.com

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 the following to switch the system DNS resolvers to use Stubby.

PowerShell -ExecutionPolicy bypass -file "C:\Program Files\Stubby\stubby_setdns_windows.ps1"

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

PowerShell -ExecutionPolicy bypass -file "C:\Program Files\Stubby\stubby_resetdns_windows.ps1

Modify your upstream resolvers (Windows 7)

Follow the procedure above, but use the scripts:

  • C:\Program Files\Stubby\stubby_setdns_windows7.ps1 and
  • C:\Program Files\Stubby\stubby_resetdns_windows7.ps1

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).

Install Stubby as Windows service

See this README.md for details.

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

schtasks /create /tn Stubby /XML "C:\Program Files\Stubby\stubby.xml" /RU <you_user_name>

Known Issues

  • 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

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:

  1. Open the Control Panel
  2. Choose ‘Network and Internet’
  3. Choose ‘View network status and tasks’ under ‘Network and Sharing Center’ 
  4. Choose ‘Change adapter settings’ from the left hand menu
  5. Then choose your interface - most likely either ‘Wi-fi’ or ‘Ethernet’
  6. In the dialog that appears, click on the ‘Properties’ button at the bottom
  7. In the list that appears double click on ‘Internet Protocol Version 4 (TCP/IPv4)’
    1. 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
    2. Be sure to press OK and then Close to apply the settings. 
  8. Repeat step 7 for  ‘Internet Protocol Version 6 (TCP/IPv6)’ if you have IPv6 enabled

Opportunistic mode

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).