{"id":2886,"date":"2017-05-15T00:00:14","date_gmt":"2017-05-15T07:00:14","guid":{"rendered":"http:\/\/192.168.3.4\/?p=2886"},"modified":"2018-01-09T06:51:26","modified_gmt":"2018-01-09T14:51:26","slug":"dynamic-dns-and-ddclient","status":"publish","type":"post","link":"https:\/\/www.cloudacm.com\/?p=2886","title":{"rendered":"Dynamic DNS and DDClient"},"content":{"rendered":"<p>In my earlier posts I covered network services.\u00a0 The purpose of those services is to provide a function over a network connection.\u00a0 More often than not the internet connection of a network service host can change.\u00a0 In order for a client to access these network services, it needs to know where the host is.\u00a0 To remedy this problem, a &#8220;call home&#8221; service is used to register the host so the client can find it.\u00a0 This service is referred to as Dynamic DNS.\u00a0 In this post I&#8217;ll cover how to install and configure Dynamic DNS on a Linux host.<\/p>\n<p>The first thing to do is create an account with a Dynamic DNS provider.\u00a0 Here is a list of providers https:\/\/doc.pfsense.org\/index.php\/Dynamic_DNS.\u00a0 Once you establish an account, you will need the following items in order to configure on your host.<\/p>\n<ul>\n<li>Dynamic DNS Server<\/li>\n<li>Dynamic DNS Protocol on how to communicate<\/li>\n<li>Username of the account<\/li>\n<li>Password of the account<\/li>\n<li>Network interface of host<\/li>\n<li>Fully qualified domain name of host<\/li>\n<\/ul>\n<p>The service we&#8217;ll be using is call DDClient and most distributions have an installer.\u00a0 For mine, I ran this command.<\/p>\n<p>[bash]<br \/>\nsudo apt-get install ddclient<br \/>\n[\/bash]<\/p>\n<p>This will bring up a text based prompt for you enter in your Dynamic DNS service providers information.\u00a0 Using the information from the bulleted list above, enter in that information.\u00a0 Once complete the install will complete.\u00a0 There are some service configurations that should be made.\u00a0 Use a text editor run as su and edit the following files.<\/p>\n<p>[bash]<br \/>\nFile: \/etc\/default\/ddclient<br \/>\n===========================<br \/>\nrun_ipup=&quot;false&quot;<br \/>\nrun_daemon=&quot;true&quot;<br \/>\ndaemon_interval=&quot;3600&quot;<br \/>\n[\/bash]<\/p>\n<p>[bash]<br \/>\nFile: \/etc\/ddclient.conf<br \/>\n========================<br \/>\ndaemon=3600<br \/>\nssl=yes<br \/>\nprotocol=dydns2<br \/>\nuse=web, web=CheckDynamicDNSProvider_FQDN<br \/>\nserver=MemberDynamicDNSProvider_FQDN<br \/>\nlogin=YourUsername<br \/>\npassword=&#8217;YourPassword&#8217;<br \/>\nYourHostFQDN<br \/>\n[\/bash]<\/p>\n<p>The service on your host should be ready. Lets use this command to verify all is working as expected.<\/p>\n<p>[bash]<br \/>\nsudo ddclient -daemon=0 -debug -verbose -noquiet<br \/>\n[\/bash]<\/p>\n<p>The results will echo back and the last line should read something like this.<\/p>\n<pre>SUCCESS:  host.dynamicdns.provider: skipped: IP address was already set to xxx.xxx.xxx.xxx\r\n<\/pre>\n<p>That should do it.\u00a0 Now your host can be accessed by a client using a fully qualified domain name.\u00a0 If the internet connection for your host should change, it will call home and update the FQDN used by your client.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my earlier posts I covered network services.\u00a0 The purpose of those services is to provide a function over a network connection.\u00a0 More often than not the internet connection of a network service host can change.\u00a0 In order for a client to access these network services, it needs to know where the host is.\u00a0 To remedy this problem, a &#8220;call home&#8221; service is used to register the host so the client can find it.\u00a0 This service is referred to as&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.cloudacm.com\/?p=2886\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-2886","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2886"}],"version-history":[{"count":12,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2886\/revisions"}],"predecessor-version":[{"id":2899,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2886\/revisions\/2899"}],"wp:attachment":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}