Preparing the release of v3.9.0
[ddclient.git] / README.md
blob3fe594842269efb047063b6758d529c36b1ca0dd
1 ===============================================================================
2 # DDCLIENT v3.9.0
3 =======
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 -------------------------------------------------------------------------------
42 REQUIREMENTS:
44 - one or more accounts from one of the dynamic DNS services
46 - Perl 5.014 or later
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 -------------------------------------------------------------------------------
54 INSTALLATION:
56     cp ddclient /usr/sbin/
57     mkdir /etc/ddclient
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 
76     apk add perl
77     ## start the first time by hand
78     rc-service ddclient start
79     
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 
85     apt-get install perl
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 -------------------------------------------------------------------------------
93 TROUBLESHOOTING:
95   1. enable debugging and verbose messages.
96          ``$ ddclient -daemon=0 -debug -verbose -noquiet``
98   2. Do you need to specify a proxy?
99      If so, just add a
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 
114      common routers.
115      For example, the Linksys routers could have been added with:
116      
117         fw=192.168.1.1/Status.htm
118             fw-skip=WAN.*?IP Address
120      OR
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
154 not become stale.
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
167 ie.:
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:
172     #!/bin/sh
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 
176     exit 0
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
191 ie.:
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 -------------------------------------------------------------------------------