Internet Automated Dynamic DNS Client
, or In-a-Dyn, periodically checks your
actual Internet accessible IP for changes. When it changes
updates your name server record(s)
Common DDNS service providers supported by inadyn
are listed below. Some of these services are free of charge for non-commercial
use, others take a small fee, but also provide more domain names to choose
defaults to HTTPS for all providers, some
may however not support this so try disabling SSL for your provider in case of
problems. Providers known to support SSL updates are listed below with
- ⟨http://www.dnsexit.com⟩, parent of
- ⟨https://www.pubyun.com⟩, formerly
DDNS providers not listed here, like ⟨http://twoDNS.de⟩, can often
be configured using the generic DDNS provider plugin. See
for example configurations.
Earlier versions of inadyn
supported more command
line options, from v2.0 inadyn
has been greatly
for details of the /etc/inadyn.conf
- Run only once and quit, updates only if too old or unknown.
Use --force to for an update before
- Force one update. Only works with
-1, --once flag,
ignored for all other use-cases.
- Set directory for persistent cache files, defaults to
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
SEC command line option.
- Full path to command, or script, to run to check for IP
address change. This is the same as the configuration file option
checkip-command but will apply to
all providers. This command line option is
only provided for convenience, it is recommended to instead use the
configuration file. For more details, see the
man page. You will need to quote the complete command if any arguments, or
pipe, is given.
- Ignore errors from DDNS provider and try again later. This
command line option tells inadyn to not exit
on errors from a DDNS provider and instead try again later. Please do not
use this, it usually indicates that we are sending a malformed request,
e.g. wrong username, password or DNS alias for the given account.
Continuing could possibly lock you out of your account!
- Full path to command, or script, to run. The following
environment variables are set: INADYN_IP, INADYN_HOSTNAME. The first
environment variable contains the new IP address, the second the host name
alias. The cmd is called for each listed host
name. If inadyn is started with the
command line option, the INADYN_IFACE environment variable is also set.
You will need to quote the complete command if any arguments, or pipe, is
- Use MODE to set the exec
script run mode: compat, event: - compat: run exec handler on successful
DDNS update only, default - event: run exec handler on any update status
The following environment variables are set: INADYN_EVENT, INADYN_ERROR,
INADYN_ERROR_MESSAGE. INADYN_EVENT contains the event, one of: nochg,
update, error. The event nochg indicates that no update had to be sent,
the event update indicates that an update was sent successully, the event
error indicates that the update was sent and an error occurred.
INADYN_ERROR contains the error code, INADYN_ERROR_MESSAGE contains the
error message for the error code.
- Use FILE for
configuration. By default /etc/inadyn.conf,
is used. See
- Show summary of command line options and exit
- Check IP of IFNAME instead of querying an external server.
With this command line option the external IP check is disabled and
inadyn will report the IP address of
IFNAME to all DDNS providers listed in
the configuration file. This can be useful to register LAN IP addresses,
or, when connected directly to a public IP address, to speed up the IP
check if the DDNS provider's check-ip servers are slow to respond.
This option can also be given as a configuration option in
both serve a purpose, use whichever one works for you.
- Specify program identity (name) to be used for PID file and
syslog messages. Useful with multiple instances of
inadyn, or to simply replace the
inadyn name with something more generic, e.g.
"DDNS", without renaming the binary. Note, this option only
changes the base name of the PID file, not the location, which is system
specific. Usually /var/run/inadyn.pid or
- Set log level: none, err, info,
notice, debug. The default is
notice, but you might want to set this to
- Run in foreground, default is to daemonize and continue in
the background. This option is usually required when running under process
supervisors like systemd and Finit, but is also useful when running from
the terminal, when debugging a config or at initial set up. Remember to
also give the -s option if you still want to
redirect log messages to the syslog.
- Drop root privileges after initial setup to the given user
- When running as a daemon, even when running in the
foreground with -n,
inadyn creates a PID file so users can easily
find the PID of the process to send signals to. See
SIGNALS for more information
on this. This option tells inadyn to
not create a PID file. Some users prefer this
when running under systemd.
- Set PID file name and location, defaults to
/run/inadyn.pid, derived from
NAME, which is strongly recommended to
change over this option. However, some users want to keep application
runtime files in separate directories, usually in combination with
--drop-privs, for such cases this is the
option to use.
log messages, warnings and error conditions. This is the default when
running in the background. When running in the foreground, see
-n, log messages are printed to stdout.
- Initial startup delay. 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
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
inadyn cache file and the
SEC setting honored across reboots,
avoiding unnecessary IP address updates.
- Show program version and exit.
prints a message when the IP is updated. If
no update is needed then by default it prints a single “.”
character, unless --loglevel
is set to
. Therefore, unless
is set to
, the log will contain lots of dots. When
the connection goes down inadyn
may print some
harmless error messages which should be followed by “OK”
messages after the Internet connection is restored.
responds to the following signals:
- Reload the .conf file,
standard UNIX behavior
- Tell inadyn to exit
- Same as TERM
- Force update now, even if the IP address has not
- 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
its process ID to /var/run/inadyn.pid
, unless the
option is used.
one .cache file per DDNS provider
home page is at GitHub:
was originally written by Narcis Ilisei
⟨mailto:email@example.com⟩ and Steve Horbachuk. Current
patch monkey is Joachim Nilsson ⟨mailto:firstname.lastname@example.org⟩
with a lot of help from Andrey Tikhomirov and Mike Fleetwood.
This manual page was originally written for the Debian
project by Shaul Karl ⟨mailto:email@example.com⟩,
and is currently maintained by Joachim Nilsson.