1 ===============================================================================
5 ddclient is a Perl client used to update dynamic DNS entries for accounts
6 on many dynamic DNS services.
8 ===============================================================================
10 Dynamic DNS services currently supported include:
12 DynDNS.com - See http://www.dyndns.com for details on obtaining a free account.
13 Hammernode - See http://www.hn.org for details on obtaining a free account.
14 Zoneedit - See http://www.zoneedit.com for details.
15 EasyDNS - See http://www.easydns.com for details.
16 NameCheap - See http://www.namecheap.com for details
17 ConCont - See http://www.dydns.za.net for details
18 DnsPark - See http://www.dnspark.com for details
19 DslReports - See http://www.dslreports.com for details
20 Sitelutions - See http://www.sitelutions.com for details
21 Loopia - See http://www.loopia.se for details
22 Noip - See http://www.noip.com/ for details
23 Freedns - See http://freedns.afraid.org/ for details
24 ChangeIP - See http://www.changeip.com/ for details
25 dtdns - See http://www.dtdns.com/ for details
26 nsupdate - See nsupdate(1) and ddns-confgen(8) for details
27 CloudFlare - See https://www.cloudflare.com/ for details
28 Google - See http://www.google.com/domains for details
29 Duckdns - See https://duckdns.org/ for details
30 Freemyip - See https://freemyip.com for details
31 woima.fi - See https://woima.fi/ for details
33 DDclient now supports many of cable/dsl broadband routers.
35 Comments, suggestions and requests: use the forums on
36 http://sourceforge.net/projects/ddclient/
38 The code was originally written by Paul Burry and is now hosted and maintained
39 through sourceforge.net. Please check out http://ddclient.sf.net
41 -------------------------------------------------------------------------------
44 - one or more accounts from one of the dynamic DNS services
47 (you need the IO::Socket::SSL perl library for ssl-support,
48 JSON::PP perl library for JSON support and
49 IO::Socket:INET6 perl library for ipv6-support)
51 - Linux or probably any common Unix system
53 -------------------------------------------------------------------------------
56 cp ddclient /usr/sbin/
58 mkdir /var/cache/ddclient
59 cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
60 vi /etc/ddclient/ddclient.conf
61 -- and change hostnames, logins, and passwords appropriately
63 ## For those using Redhat style rc files and using daemon-mode:
64 cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
65 ## enable automatic startup when booting
66 ## check your distribution
67 /sbin/chkconfig --add ddclient
68 ## start the first time by hand
69 /etc/rc.d/init.d/ddclient start
71 ## For those using Alpine style rc files and using daemon-mode:
72 cp sample-etc_rc.d_init.d_ddclient.alpine /etc/init.d/ddclient
73 ## enable automatic startup when booting
74 rc-update add ddclient
75 ## make sure you have perl installed
77 ## start the first time by hand
78 rc-service ddclient start
80 ## For those using Ubuntu style rc files and using daemon-mode:
81 cp sample-etc_rc.d_init.d_ddclient.ubuntu /etc/init.d/ddclient
82 ## enable automatic startup when booting
83 update-rc.d ddclient defaults
84 ## make sure you have perl installed
86 ## start the first time by hand
87 service ddclient start
89 ## If you are not using daemon-mode, configure cron and dhcp or ppp
90 ## as described below.
92 -------------------------------------------------------------------------------
95 1. enable debugging and verbose messages.
96 ``$ ddclient -daemon=0 -debug -verbose -noquiet``
98 2. Do you need to specify a proxy?
100 ``proxy=your.isp.proxy``
101 to the ddclient.conf file.
103 3. Define the IP address of your router with ``fw=xxx.xxx.xxx.xxx`` in
104 ``/etc/ddclient/ddclient.conf`` and then try
105 ``$ ddclient -daemon=0 -query``
106 to see if the router status web page can be understood.
108 4. Need support for another router/firewall?
109 Define the router status page yourself with:
110 ``fw=url-to-your-router``'s-status-page
111 ``fw-skip=any-string-preceding-your-IP-address``
113 ddclient does something like this to provide builtin support for
115 For example, the Linksys routers could have been added with:
117 fw=192.168.1.1/Status.htm
118 fw-skip=WAN.*?IP Address
121 Send me the output from:
122 $ ddclient -geturl {fw-ip-status-url} [-login login [-password password]]
123 and I'll add it to the next release!
125 ie. for my fw/router I used:
126 $ ddclient -geturl 192.168.1.254/status.htm
128 5. Some broadband routers require the use of a password when ddclient
129 accesses its status page to determine the router's WAN IP address.
130 If this is the case for your router, add
131 fw-login=your-router-login
132 fw-password=your-router-password
133 to the beginning of your ddclient.conf file.
134 Note that some routers use either 'root' or 'admin' as their login
135 while some others accept anything.
137 -------------------------------------------------------------------------------
138 USING DDCLIENT WITH ppp
140 If you are using a ppp connection, you can easily update your DynDNS
141 entry with each connection, with:
143 ## configure pppd to update DynDNS with each connection
144 cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.local
146 Alternatively, you may just configure ddclient to operate as a daemon
147 and monitor your ppp interface.
149 -------------------------------------------------------------------------------
150 USING DDCLIENT WITH cron
152 If you have not configured ddclient to use daemon-mode, you'll need to
153 configure cron to force an update once a month so that the dns entry will
156 ## configure cron to force an update twice a month
157 cp sample-etc_cron.d_ddclient /etc/cron.d/ddclient
158 vi /etc/cron.d/ddclient
160 -------------------------------------------------------------------------------
161 USING DDCLIENT WITH dhcpcd-1.3.17
163 If you are using dhcpcd-1.3.17 or thereabouts, you can easily update
164 your DynDNS entry automatically every time your lease is obtained
165 or renewed by creating an executable file named:
166 /etc/dhcpc/dhcpcd-{your-interface}.exe
168 cp sample-etc_dhcpc_dhcpcd-eth0.exe /etc/dhcpc/dhcpcd-{your-interface}.exe
170 In my case, it is named dhcpcd-eth0.exe and contains the lines:
173 PATH=/usr/sbin:/root/bin:${PATH}
174 logger -t dhcpcd IP address changed to $1
175 ddclient -proxy fasthttp.sympatico.ca -wildcard -ip $1 | logger -t ddclient
178 Other DHCP clients may have another method of calling out to programs
179 for updating DNS entries.
181 Alternatively, you may just configure ddclient to operate as a daemon
182 and monitor your ethernet interface.
184 -------------------------------------------------------------------------------
185 USING DDCLIENT WITH dhclient
187 If you are using the ISC DHCP client (dhclient), you can update
188 your DynDNS entry automatically every time your lease is obtained
189 or renewed by creating an executable file named:
190 /etc/dhclient-exit-hooks
192 cp sample-etc_dhclient-exit-hooks /etc/dhclient-exit-hooks
194 Edit /etc/dhclient-exit-hooks to change any options required.
196 Alternatively, you may just configure ddclient to operate as a daemon
197 and monitor your ethernet interface.
199 -------------------------------------------------------------------------------