INADYN(8)

NAME
inadyn - a small DDNS client to maintain your presence on the Internet

SYNOPSIS
inadyn [-a, --alias ALIAS] [-b, --background] [-B, --bind IFNAME] [-d, --drop-privs USER[:GROUP]] [-e, --exec SCRIPT] [-f, --forced-update SEC] [-F, --config FILE] [-L, --logfile FILE] [-P, --pidfile FILE] [-c, --cache-dir PATH] [-h, --help] [-i, --iface IFNAME] [-l, --syslog] [-n, --iterations NUM] [-H, --checkip-url SERVER[:PORT] URL] [-N, --server-name SERVER[:PORT]] [-U, --server-url PATH] [-S, --system PROVIDER] [-s, --ssl] [-o, --once] [-t, --startup-delay SEC] [-T, --period SEC] [-u, --username USERNAME] [-p, --password PASSWORD] [-v, --version] [-V, --verbose LEVEL] [-w, --wildcard] [-x, --proxy-server SERVER[:PORT]]

DESCRIPTION
inadyn is a client for “open” name servers, also known as DDNS service providers. That is, it lets you have a public Internet name for your DHCP/PPPoE assigned system. Some of these services are free of charge for non-commercial use, others take a small fee, but also provide more domains to choose from.

Common DDNS service providers supported by inadyn

•   http://www.dyndns.org
•   http://freedns.afraid.org
•   http://zoneedit.com
•   http://www.no-ip.com
•   http://www.easydns.com
•   http://www.tzo.com
•   http://www.3322.org
•   http://www.dnsomatic.com
•   http://www.tunnelbroker.net
•   http://dns.he.net
•   http://www.dynsip.org
•   http://www.sitelutions.com
•   http://www.dnsexit.com
•   http://www.changeip.com
•   http://www.zerigo.com
•   http://www.dhis.org
•   https://nsupdate.info
•   http://duckdns.org
•   https://www.loopia.com
•   https://domains.google.com
•   https://www.ovh.com
•   https://www.dtdns.com

DDNS providers not listed here, like http://twoDNS.de, can often be configured using the generic DDNS provider plugin. See inadyn.conf(5) for example configurations.

The basic operation of inadyn is to periodically check whether the actual Internet accessible IP of your system is the same one that is recorded in the name server, and update the name server records when there is a mismatch.

OPTIONS

-h, --help
    Print a summary of the options and exit

-u, --username USERNAME
    The username, if applicable. This might be referred to as hash

-p, --password PASSWORD
    The password, if applicable

-a, --alias ALIAS
    A host name alias. This option can appear multiple times, for each domain that has the same IP

-F, --config FILE
    The file name that contains inadyn command options exactly as specified in the command line syntax (adds to those already present on the cmd line). The default configuration file name, /usr/pkg/etc/inadyn.conf, is looked at automatically if inadyn is called without any command line options. The format is as expected for a UNIX config file; the hash character is used to comment entire lines. Spaces are ingored. The long options may be specified without -- if placed at the beginning of the line

-H, --checkip-url SERVER[:PORT] PATH
    Detect IP address by calling PATH from this SERVER[:PORT]. Default: http://checkip.dyndns.org

-N, --server-name SERVER[:PORT]
    The server that receives the update DNS requests. When no proxy is specified it is sufficient to set the --system option so that the default servers will be taken. The option is useful for generic DynDNS services that support HTTP update.

-U, --server-url PATH
    The update path on the DynDNS server.

-S, --system email@ddns-service.tld
    DNS service to connect to. Defaults to default@dyndns.org.
    default@dyndns.org
        http://www.dyndns.org
    default@freedns.afraid.org
        http://freedns.afraid.org
    default@zoneedit.com
        http://zoneedit.com
    default@no-ip.com
        http://www.no-ip.com
    default@easydns.com
        http://www.easydns.com
    default@tzo.com
        http://www.tzo.com
    dyndns@3322.org
        http://www.3322.org
    default@dnsomatic.com
        http://www.dnsomatic.com
    ipv6tb@he.net
        http://www.tunnelbroker.net
    dyndns@he.net
        http://dns.he.net
    default@dynsip.org
        http://www.dynsip.org
    default@sitelutions.com
        http://www.sitelutions.com
    default@dnsexit.com
        http://www.dnsexit.com
    default@changeip.com
        http://www.changeip.com
    default@zerigo.com
        http://www.zerigo.com
    default@dhis.org
        http://www.dhis.org
    ipv4@nsupdate.info
        https://nsupdate.info
    default@duckdns.org
        http://duckdns.org
    default@loopia.com
        https://www.loopia.com
    custom@http_srv_basic_auth
        Try this if your DDNS service provider is not listed

-x, --proxy-server SERVER[:PORT]
    HTTP proxy server name and port. Default: None

-T, --period SEC
    How often the IP is checked, in seconds. Default: apx 1 minute. Max: 10 days.

-f, --forced-update SEC
    How often the IP should be updated even if it is not changed. The time should be given in seconds. Default is equal to 30 days.

-L, --logfile FILE
    The name, including the full path, of a log file. See also the ---syslog option, below.

-b, --background
    Run in background. Output is sent to the UNIX syslog facilities or to a log file, if one was specified.

-V, --verbose LEVEL
    Set the debug level, which is an integer between 0 to 5.

-n, --iterations NUM
    Set the number of DNS updates. The default is 0, which means infinity.

-l, --syslog
    Use the system syslog(3) mechanism for log messages, warnings and error conditions.

-d, --drop-privs USER[:GROUP]
    Drop privileges after initial setup to the given user and group.

-B, --bind IFNAME
    Set interface to bind to. Only on UNIX systems.

-i, --iface IFNAME
    Set interface to check for IP. Only on UNIX systems. External IP check is not performed

-P, --pidfile FILE
    Set pidfile, defaults to /var/run/inadyn.pid

-c, --cache-dir PATH
    Set directory for persistent cache files, defaults to /var/db/inadyn

    The cache files are used to keep track of which addresses have been successfully sent to their respective DDNS provider and when. The latter 'when' is important to prevent inadyn from banning you for excessive updates.

    When restarting inadyn or rebooting your server, or embedded device, inadyn reads the cache files to seed its internal data structures with the last sent IP address and when the update was performed. It is therefore very important to both have a cache file and for it to have the correct time stamp. The absence of a cache file will currently cause a forced update.

    On an embedded device with no RTC, or no battery backed RTC, it is strongly recommended to pair this setting with the --startup-delay SEC option to ensure that an NTP client has set the device's clock before a cache file is created or read.

-e, --exec SCRIPT
    Full path to external command, or script, to run after a successful DDNS update SCRIPT can use following environment variables: INADYN_IP, INADYN_HOSTNAME. First environment variable contains new IP address, second one - host name alias. INADYN_IFACE is available, if --iface option used.

-w, --wildcard
    Enable domain name wildcarding of your domain name, for DDNS providers that support this, e.g. easydns.com and loopia.com. This means that anything typed before your hostname, e.g. www. or ftp., is also updated when your IP changes. Default: disabled. For inadyn < 1.96.3 wildcarding was enabled by default

-t, --startup-delay SEC
    Initial delay at program startup. Default is 0 seconds. Any signal can be used to abort the startup delay early, but SIGUSR2 is the recommended to use. See SIGNALS below for full details of how inadyn responds to signals.

    Intended to allow time for embedded devices without a battery backed real time clock to set their clock via NTP at bootup. This is so that the time since the last update can be calculated correctly from the cache file and the --forced-update option honored across reboots, avoiding unnecessary IP address updates

-s, --ssl
    Use HTTPS to connect to this DDNS service provider, default HTTP

-o, --once
    Force one update and quit

-z, --fake-address
    When using SIGUSR1, to do a forced update, this option can be used to fake an address update using the “random” address 203.0.113.42 (example IP address from RFC5737) before updating with the actual IP address. This is completely outside spec., but can be useful for people who very rarely, if ever, get an IP address change. Because some DDNS service providers will not register even a forced update if the IP is the same. As a result the user will likely be deregistered as an inactive user.

TYPICAL USAGE

  http://www.dyndns.org
inadyn
-u nick -p secret -a my.registered.name
inadyn
-u nick -p secret -T -60 -a test.homeip.net -a my.second.domain
inadyn
-b -u nick -p secret -T 60 -a test.homeip.net -a my.second.domain -L -inadyn.log

  http://freedns.afraid.org
inadyn
-S default@freedns.afraid.org -u nick -p secret -a my.registered.name
inadyn
-S default@freedns.afraid.org -u nick -p secret -T 60 -a test.homeip.net -a my.second.domain

The hash is automatically retrieved by inadyn using the FreeDNS API.

OUTPUT
inadyn prints a message when the IP is updated. If no update is needed then by default it prints a single “”. character, unless --verbose is set to 0. Therefore, unless --verbose is set to 0, the log file will contains lot of dots. When the connection goes down it could be that inadyn will print some error messages. Those are harmless and should be followed by “OK” messages after the connection is back up.

SIGNALS
inadyn responds to the following signals:

HUP Reload the .conf file, standard UNIX behavior
TERM
    Tell inadyn to exit gracefully
INT Same as TERM
USR1
    Force update now, even if the IP address has not changed. Works in tandem with --fake-address
USR2
    Check IP address change now. Useful when a new DHCP/PPPoE lease or new gateway is received. Please note that inadyn does not track such events by itself. You need an external monitor for that

For convenience in sending signals, inadyn writes its process ID to /var/run/inadyn.pid

FILES
/usr/pkg/etc/inadyn.conf
/var/run/inadyn.pid
/var/db/inadyn/dyndns.org.cache
/var/db/inadyn/freedns.afraid.org.cache
... one .cache file per DDNS provider

SEE ALSO
inadyn.conf(5)

The inadyn home page is at GitHub: https://github.com/troglobit/inadyn

AUTHORS
inadyn was originally written by
•   Narcis Ilisei inarcis2002@hotpop.com and
•   Steve Horbachuk

It is now maintained at GitHub by
•   Joachim Nilsson troglobit@gmail.com with a lot of help from
•   Andrey Tikhomirov, and
•   Mike Fleetwood

This manual page was originally written for the Debian GNU/Linux project by -nosplit Shaul Karl <shaul@debian.org>. Currently maintained by -nosplit Joachim Nilsson.