A Dynamic DNS client for Windows
Here’s a link to ddclient.exe, a dynamic DNS client for Windows, to go with the dynamic DNS server that I’ve posted about as part of a 3-part series of posts (Part 1, Part 2).
Click on the big green button with an arrow on it, download the installer, save it on a machine somewhere that you wish to refer to by a DNS name, run it, click the Next button a few times, enter the configuration values in the text fields shown below, click Next a few more times, and you should be right as rain.
It’s essentially a PAR‘ed up version of a slightly modified ddclient, packaged as a Windows service with an NSIS wrapper around it so that you can install/uninstall it a bit easier.
The only modifications I’ve made to ddclient itself is to Windows™-ify it a bit more (when running as a service, it stores the ddclient.cache and logfiles in the local application data folder)
This should hopefully save you the trouble of installing and configuring perl / ddclient on each Windows machine that you wish to perform DNS updates for.
It should all be relatively simple to use, but here are some screenshots:
Since the original ddclient looks like it might be GPL’ed, I’ll pop the sourcecode up here at some stage.
In the meantime, if you want the sourcecode, let me know and I’ll email it to you. Here it is on github.
ddclient service Windows account
When you install using the NSIS installer, you will be prompted which Windows user you wish to run the ddclient service as (see the second screenshot above). The options are:
- Local System: Completely trusted account, moreso than the administrator account. There is nothing on a single box that this account can not do and it has the right to access the network as the machine.
- Network Service (recommended): Limited service account that is meant to run standard least-privileged services. This account is far more limited than Local System (or even Administrator) but still has the right to access the network as the machine.
- Custom account: If you like, you can choose an existing account, which can be a standard user account or one you have created if specifically to run the ddclient application.
You probably just want to use the Network Service account.
Log file location
If the ddclient application doesn’t appear to be working, then you probably want to check the contents of the log file first. The location of the logs should be in the service account’s local Application Data folder, and is called
On Windows 10, the logs can be found at:
The installer (as of 1.1.0) now supports silent installation; that is, you can specify on the command line the details that are requested during install, and the client (and service) will be installed without displaying the graphical user interface.
You can get the list of parameters by typing
ddclient-1.8.0 /? at the C:\ prompt, which will display something similar to the following:
An example command-line would look something like:
C:\installer>ddclient-1.8.0 /S /HOSTNAME=movingtarget.example.com /DDSERVER=dyndns.namingwords.com /DDCONNECTION=HTTP /DDPROTOCOL=dyndns2 /DDUSERNAME=scott /DDPASSWORD=tiger /SERVICEASNETWORKUSER
which would allow you to refer to the current machine as
movingtarget.example.com, and access any publicly accessible ports on that machine from The Cloud, i.e. wherever you happen to be on the internet.
Some things on my TODO list include
scriptable (silent) installations, and
- fixing a bug I’m seeing on Windows 7 when using a custom Windows account to run the service (as a workaround, install it using the Network Service account and then change the account yourself in Control Panel -> Administrative Tools -> Services )
Update 21/8/2013: Updated to version 1.0.1 of the installer/uninstaller (logs in application data, kills process during service removal), added screenshots.
Update 25/8/2013: Updated to version 1.1.0 of the installer/uninstaller (silent install; software is now licensed under the ‘BSD Simplified’ license), updated screenshots/text.
Update 29/6/2014: Updated to version 1.2.0 of the installer/installer (SSL support, protocol selection support, added Digest::SHA1 to the list of included perl packages as requested, removed ddclient.conf permission checks as requested)
Update 20/5/2015: Updated to version 1.4.0 of the installer/installer (ddclient 3.8.2 changes including changeip protocol, GNU licence, now hosted on github)
Update 26/6/2016: Updated to version 1.5.0 of the installer/installer (ddclient 3.8.3 changes including nsupdate protocol, cloudflare protocol, googledomains protocol and the duckdns protocol).
Update 25/7/2021: Updated to version 1.6.0 of the installer/installer (ddclient 3.9.1 changes including dinahosting, dnsmadeeasy, dondominio, freemyip, gandi, nfsn, ovh, woima, yandex, dnsexit). Now compiles on 64-bit Windows 10 using strawberry perl.
Update 7/11/2021: Updated to version 1.7.0 of the installer/installer to fix a missing DLL issue – see https://github.com/randomnoun/ddclient-nsis/issues/6
Update 27/4/2022: Updated to version 1.8.0 of the installer/installer to include ‘JSON:PP’ package ( for cloudflare / gandi ) – see https://github.com/randomnoun/ddclient-nsis/issues/6
It’s also now on github:
Is there an equivalent for “use=if, if=eth0” on windows?