{"id":1075,"date":"2013-08-19T03:12:24","date_gmt":"2013-08-19T03:12:24","guid":{"rendered":"http:\/\/www.randomnoun.com\/wp\/?p=1075"},"modified":"2025-04-27T02:31:48","modified_gmt":"2025-04-27T02:31:48","slug":"a-dynamic-dns-client-for-windows","status":"publish","type":"post","link":"https:\/\/www.randomnoun.com\/wp\/2013\/08\/19\/a-dynamic-dns-client-for-windows\/","title":{"rendered":"A Dynamic DNS client for Windows"},"content":{"rendered":"<p>Hello. <\/p>\n<p>Here&#8217;s  a link to <b>ddclient.exe<\/b>, a dynamic DNS client for Windows, to go with the dynamic DNS server that I&#8217;ve posted about as part of a 3-part series of posts (<a href=\"https:\/\/www.randomnoun.com\/wp\/2013\/07\/08\/a-dead-simple-dynamic-dns-server\/\">Part 1<\/a>, <a href=\"https:\/\/www.randomnoun.com\/wp\/2013\/07\/09\/a-slightly-less-simple-dynamic-dns-server\/\">Part 2<\/a>).<\/p>\n<p><a href=\"\/wpf\/ddclient-1.10.0.exe\"><\/p>\n<div class=\"download-button nobr\">\n <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/02\/download-arrow.png\" width=\"41\" height=\"40\" style=\"margin: 5px; float:left;\"><\/p>\n<div class=\"big\">Download installer<\/div>\n<div class=\"small\">ddclient-1.10.0.exe<\/div>\n<\/div>\n<p><\/a><\/p>\n<p>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.<\/p>\n<p>It&#8217;s essentially a <a href=\"http:\/\/search.cpan.org\/~rschupp\/PAR-1.007\/lib\/PAR.pm\">PAR<\/a>&#8216;ed up version of a slightly modified <a href=\"http:\/\/sourceforge.net\/apps\/trac\/ddclient\/\">ddclient<\/a>, packaged as a Windows service with an <a href=\"http:\/\/nsis.sourceforge.net\/Main_Page\">NSIS<\/a> wrapper around it so that you can install\/uninstall it a bit easier.<\/p>\n<p>The only modifications I&#8217;ve made to ddclient itself is to Windows&trade;-ify it a bit more (when running as a service, it stores the ddclient.cache and logfiles in the local application data folder)<\/p>\n<p>This should hopefully save you the trouble of installing and configuring <a href=\"http:\/\/www.activestate.com\/activeperl\">perl<\/a> \/ <a href=\"http:\/\/sourceforge.net\/apps\/trac\/ddclient\/\">ddclient<\/a> on each Windows machine that you wish to perform DNS updates for.<\/p>\n<p>It should all be relatively simple to use, but here are some screenshots:<\/p>\n<figure id=\"attachment_1086\" aria-describedby=\"caption-attachment-1086\" style=\"width: 402px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/08\/ddclient-screenshot1b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/08\/ddclient-screenshot1b.png\" alt=\"Select Dynamic DNS server page\" width=\"402\" height=\"309\" class=\"size-full wp-image-1086\" \/><\/a><figcaption id=\"caption-attachment-1086\" class=\"wp-caption-text\">Select Dynamic DNS server page<\/figcaption><\/figure>\n<p>\n<figure id=\"attachment_1087\" aria-describedby=\"caption-attachment-1087\" style=\"width: 402px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/08\/ddclient-screenshot2b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/08\/ddclient-screenshot2b.png\" alt=\"Select windows service user account page\" width=\"402\" height=\"309\" class=\"size-full wp-image-1087\" \/><\/a><figcaption id=\"caption-attachment-1087\" class=\"wp-caption-text\">Select windows service user account page<\/figcaption><\/figure>\n<p>\n<hr\/>\n<p>Since the original ddclient looks like it might be GPL&#8217;ed, I&#8217;ll pop the sourcecode up here at some stage. <strike>In the meantime, if you want the sourcecode, let me know and I&#8217;ll email it to you<\/strike>. <a href=\"https:\/\/github.com\/knoxg\/ddclient-nsis\">Here it is on github<\/a>.<\/p>\n<h2>ddclient service Windows account<\/h2>\n<p>When you install using the NSIS installer, you will be prompted <a href=\"http:\/\/stackoverflow.com\/questions\/510170\/the-difference-between-the-local-system-account-and-the-network-service-acco\">which Windows user<\/a> you wish to run the <b>ddclient<\/b> service as (see the second screenshot above). The options are:<\/p>\n<ul>\n<li><b>Local System<\/b>:  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.\n<li><b>Network Service (recommended)<\/b>:  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.\n<li><b>Custom account<\/b>: 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.\n<\/ul>\n<p>You probably just want to use the <b>Network Service<\/b> account.<\/p>\n<h2>Log file location<\/h2>\n<p>If the ddclient application doesn&#8217;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&#8217;s local Application Data folder, and is called <code>ddclient.log<\/code><\/p>\n<p>On Windows 10, the logs can be found at:<\/p>\n<ul>\n<li><tt>C:\\windows\\ServiceProfiles\\LocalService\\AppData\\Local\\ddclient.log<\/tt>\n<li><tt>C:\\windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\ddclient.log<\/tt>\n<li><tt>C:\\Users\\<i>username<\/i>\\AppData\\Local\\ddclient.log<\/tt>\n<\/ul>\n<h2>Silent installation<\/h2>\n<p>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.<\/p>\n<p>You can get the list of parameters by typing <code>ddclient-1.10.0 \/?<\/code> at the C:\\ prompt, which will display something similar to the following:<\/p>\n<figure id=\"attachment_1099\" aria-describedby=\"caption-attachment-1099\" style=\"width: 413px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/08\/ddclient-helppage-b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2013\/08\/ddclient-helppage-b.png\" alt=\"List of command-line parameters\" width=\"413\" height=\"438\" class=\"size-full wp-image-1099\" \/><\/a><figcaption id=\"caption-attachment-1099\" class=\"wp-caption-text\">List of command-line parameters<\/figcaption><\/figure>\n<p>An example command-line would look something like:<\/p>\n<pre style=\"width:100%; overflow:scroll; border: dotted 1px black; padding: 5px;\">\r\nC:\\installer><b>ddclient-1.10.0 \/S \/HOSTNAME=movingtarget.example.com \/DDSERVER=dyndns.namingwords.com \/DDCONNECTION=HTTP \/DDPROTOCOL=dyndns2 \/DDUSERNAME=scott \/DDPASSWORD=tiger \/SERVICEASNETWORKUSER<\/b>\r\n<\/pre>\n<p>which would allow you to refer to the current machine as <code>movingtarget.example.com<\/code>, and access any publicly accessible ports on that machine from The Cloud, i.e. wherever you happen to be on the internet.<\/p>\n<p>\nSome things on my TODO list include <\/p>\n<ul>\n<li><strike>scriptable (silent) installations<\/strike>, and\n<li>fixing a bug I&#8217;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 )\n<\/ul>\n<p><b>Update 21\/8\/2013:<\/b> Updated to version 1.0.1 of the installer(logs in application data, kills process during service removal), added screenshots.<\/p>\n<p><b>Update 25\/8\/2013:<\/b> Updated to version 1.1.0 of the installer(silent install; software is now licensed under the &#8216;BSD Simplified&#8217; license), updated screenshots\/text.<\/p>\n<p><b>Update 29\/6\/2014:<\/b> Updated to version 1.2.0 of the 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)<\/p>\n<p><b>Update 20\/5\/2015:<\/b> Updated to version 1.4.0 of the installer(ddclient 3.8.2 changes including changeip protocol, GNU licence, now <a href=\"https:\/\/github.com\/knoxg\/ddclient-nsis\">hosted on github<\/a>)<\/p>\n<p><b>Update 26\/6\/2016:<\/b> Updated to version 1.5.0 of the installer(ddclient 3.8.3 changes including nsupdate protocol, cloudflare protocol, googledomains protocol and the duckdns protocol). <\/p>\n<p><b>Update 25\/7\/2021:<\/b> Updated to version 1.6.0 of the 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.<\/p>\n<p><b>Update 7\/11\/2021:<\/b> Updated to version 1.7.0 of the installerto fix a missing DLL issue &#8211; see https:\/\/github.com\/randomnoun\/ddclient-nsis\/issues\/6<\/p>\n<p><b>Update 27\/4\/2022:<\/b> Updated to version 1.8.0 of the installerto include &#8216;JSON:PP&#8217; package ( for cloudflare \/ gandi ) &#8211; see https:\/\/github.com\/randomnoun\/ddclient-nsis\/issues\/6<\/p>\n<p><b>Update 19\/4\/2025:<\/b> Updated to version 1.9.0 of the installer (ddclient 4.0.0 changes including many more protocols)<\/p>\n<p><b>Update 27\/4\/2025:<\/b> Updated to version 1.10.0 of the installer (fixed temp folder )<\/p>\n<p>It&#8217;s also now on github:<\/p>\n<p><a href=\"https:\/\/github.com\/randomnoun\/ddclient-nsis\"><\/p>\n<div class=\"github-button nobr\">\n <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.randomnoun.com\/wp\/wp-content\/uploads\/2020\/12\/github-42.png\" width=\"42\" height=\"42\" style=\"margin: 5px; float:left;\"><\/p>\n<div class=\"big\">ddclient-nsis<\/div>\n<div class=\"small\">git@github.com:randomnoun\/ddclient-nsis.git<\/div>\n<\/div>\n<p><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello. Here&#8217;s a link to ddclient.exe, a dynamic DNS client for Windows, to go with the dynamic DNS server that I&#8217;ve posted about as part of a 3-part series of posts (Part 1, Part 2). Download installer ddclient-1.10.0.exe Click on the big green button with an arrow on it, download the installer, save it on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2937,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[6,11,12,29,31,33],"class_list":["post-1075","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","tag-ddclient","tag-dns","tag-dyndns","tag-namingwords","tag-nsis","tag-perl"],"_links":{"self":[{"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/posts\/1075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/comments?post=1075"}],"version-history":[{"count":11,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/posts\/1075\/revisions"}],"predecessor-version":[{"id":4198,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/posts\/1075\/revisions\/4198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/media\/2937"}],"wp:attachment":[{"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/media?parent=1075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/categories?post=1075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.randomnoun.com\/wp\/wp-json\/wp\/v2\/tags?post=1075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}