Git Product home page Git Product logo

ddclient's Introduction

===============================================================================

DDCLIENT v3.8.3

ddclient is a Perl client used to update dynamic DNS entries for accounts on many dynamic DNS services.

===============================================================================

Dynamic DNS services currently supported include:

DynDNS.com  - See http://www.dyndns.com for details on obtaining a free account.
Hammernode  - See http://www.hn.org for details on obtaining a free account.
Zoneedit    - See http://www.zoneedit.com for details.
EasyDNS     - See http://www.easydns.com for details.
NameCheap   - See http://www.namecheap.com for details
ConCont     - See http://www.dydns.za.net for details
DnsPark     - See http://www.dnspark.com for details
DslReports  - See http://www.dslreports.com for details
Sitelutions - See http://www.sitelutions.com for details
Loopia      - See http://www.loopia.se for details
Noip        - See http://www.noip.com/ for details
Freedns     - See http://freedns.afraid.org/ for details
ChangeIP    - See http://www.changeip.com/ for details
dtdns       - See http://www.dtdns.com/ for details
nsupdate    - See nsupdate(1) and ddns-confgen(8) for details
CloudFlare  - See https://www.cloudflare.com/ for details
Google      - See http://www.google.com/domains for details
Duckdns     - See https://duckdns.org/ for details
woima.fi    - See https://woima.fi/ for details

DDclient now supports many of cable/dsl broadband routers.

Comments, suggestions and requests: use the forums on http://sourceforge.net/projects/ddclient/

The code was originally written by Paul Burry and is now hosted and maintained
through sourceforge.net. Please check out http://ddclient.sf.net


REQUIREMENTS:

  • one or more accounts from one of the dynamic DNS services

  • Perl 5.014 or later (you need the IO::Socket::SSL perl library for ssl-support, JSON::Any perl library for JSON support and IO::Socket:INET6 perl library for ipv6-support)

  • Linux or probably any common Unix system


INSTALLATION:

cp ddclient /usr/sbin/
mkdir /etc/ddclient
mkdir /var/cache/ddclient
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
vi /etc/ddclient/ddclient.conf
-- and change hostnames, logins, and passwords appropriately

## For those using Redhat style rc files and using daemon-mode:
cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
## enable automatic startup when booting
## check your distribution
/sbin/chkconfig --add ddclient
## start the first time by hand
/etc/rc.d/init.d/ddclient start

## For those using Alpine style rc files and using daemon-mode:
cp sample-etc_rc.d_init.d_ddclient.alpine /etc/init.d/ddclient
## enable automatic startup when booting
rc-update add ddclient
## make sure you have perl installed 
apk add perl
## start the first time by hand
rc-service ddclient start

## For those using Ubuntu style rc files and using daemon-mode:
cp sample-etc_rc.d_init.d_ddclient.ubuntu /etc/init.d/ddclient
## enable automatic startup when booting
update-rc.d ddclient defaults
## make sure you have perl installed 
apt-get install perl
## start the first time by hand
service ddclient start

## If you are not using daemon-mode, configure cron and dhcp or ppp
## as described below.

TROUBLESHOOTING:

  1. enable debugging and verbose messages. $ ddclient -daemon=0 -debug -verbose -noquiet

  2. Do you need to specify a proxy? If so, just add a proxy=your.isp.proxy to the ddclient.conf file.

  3. Define the IP address of your router with fw=xxx.xxx.xxx.xxx in /etc/ddclient/ddclient.conf and then try $ ddclient -daemon=0 -query to see if the router status web page can be understood.

  4. Need support for another router/firewall? Define the router status page yourself with: fw=url-to-your-router's-status-page fw-skip=any-string-preceding-your-IP-address

    ddclient does something like this to provide builtin support for common routers. For example, the Linksys routers could have been added with:

    fw=192.168.1.1/Status.htm fw-skip=WAN.*?IP Address

    OR Send me the output from: $ ddclient -geturl {fw-ip-status-url} [-login login [-password password]] and I'll add it to the next release!

    ie. for my fw/router I used: $ ddclient -geturl 192.168.1.254/status.htm

  5. Some broadband routers require the use of a password when ddclient accesses its status page to determine the router's WAN IP address. If this is the case for your router, add fw-login=your-router-login fw-password=your-router-password to the beginning of your ddclient.conf file. Note that some routers use either 'root' or 'admin' as their login while some others accept anything.


USING DDCLIENT WITH ppp

If you are using a ppp connection, you can easily update your DynDNS entry with each connection, with:

## configure pppd to update DynDNS with each connection
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.local

Alternatively, you may just configure ddclient to operate as a daemon and monitor your ppp interface.


USING DDCLIENT WITH cron

If you have not configured ddclient to use daemon-mode, you'll need to configure cron to force an update once a month so that the dns entry will not become stale.

## configure cron to force an update twice a month
cp sample-etc_cron.d_ddclient /etc/cron.d/ddclient
vi /etc/cron.d/ddclient

USING DDCLIENT WITH dhcpcd-1.3.17

If you are using dhcpcd-1.3.17 or thereabouts, you can easily update your DynDNS entry automatically every time your lease is obtained or renewed by creating an executable file named: /etc/dhcpc/dhcpcd-{your-interface}.exe ie.: cp sample-etc_dhcpc_dhcpcd-eth0.exe /etc/dhcpc/dhcpcd-{your-interface}.exe

In my case, it is named dhcpcd-eth0.exe and contains the lines:

#!/bin/sh
PATH=/usr/sbin:/root/bin:${PATH}
logger -t dhcpcd IP address changed to $1
ddclient -proxy fasthttp.sympatico.ca -wildcard -ip $1 | logger -t ddclient 
exit 0

Other DHCP clients may have another method of calling out to programs for updating DNS entries.

Alternatively, you may just configure ddclient to operate as a daemon and monitor your ethernet interface.


USING DDCLIENT WITH dhclient

If you are using the ISC DHCP client (dhclient), you can update your DynDNS entry automatically every time your lease is obtained or renewed by creating an executable file named: /etc/dhclient-exit-hooks ie.: cp sample-etc_dhclient-exit-hooks /etc/dhclient-exit-hooks

Edit /etc/dhclient-exit-hooks to change any options required.

Alternatively, you may just configure ddclient to operate as a daemon and monitor your ethernet interface.


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.