inadyn
—
Internet Automated Dynamic DNS Client
inadyn |
[ -1,
--once ]
[--force ]
[--cache-dir
PATH ]
[-c,
--cmd
/path/to/cmd ]
[-C,
--continue-on-error ]
[-e,
--exec
/path/to/cmd ]
[--exec-mode
MODE ]
[-f,
--config
FILE ]
[-h,
--help ]
[-i,
--iface
IFNAME ]
[-I,
--ident
NAME ]
[-j,
--json ]
[-l,
--loglevel
LEVEL ]
[-L,
--list-providers ]
[-n,
--foreground ]
[--no-pidfile ]
[-P,
--pidfile
FILE ]
[-p,
--drop-privs
USER[ :GROUP ] ]
[-s,
--syslog ]
[-S,
--show-provider
-NAME ]
[-t,
--startup-delay
SEC ]
[-v,
--version ] |
inadyn
, or In-a-Dyn, periodically checks your
actual Internet accessible IP for changes. When it changes
inadyn
updates your name server record(s)
automatically.
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 from.
inadyn
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
https. The list is ordered by the plugin that
support the service:
- ⟨https://freedns.afraid.org⟩
- ⟨https://nsupdate.info⟩
- ⟨https://duckdns.org⟩
- ⟨https://freemyip.com⟩
- ⟨http://www.dyndns.org⟩, ⟨http://dyn.com⟩
- ⟨http://dns.he.net⟩
- ⟨https://www.dnsomatic.com⟩
- ⟨https://domains.google⟩
- ⟨https://www.dynu.com⟩
- ⟨https://www.loopia.com⟩
- ⟨http://www.noip.com⟩
- ⟨https://www.pubyun.com⟩, formerly
⟨http://www.3322.org⟩
- ⟨https://www.selfhost.de⟩
- ⟨https://spdyn.de⟩
- ⟨http://www.easydns.com⟩
- ⟨http://www.tunnelbroker.net⟩
- ⟨http://www.sitelutions.com⟩
- ⟨http://www.dnsexit.com⟩, parent of
⟨https://zoneedit.com⟩
- ⟨http://www.changeip.com⟩
- ⟨https://www.ovh.com⟩
- ⟨https://www.strato.com⟩
- ⟨http://www.dhis.org⟩
- ⟨http://giradns.com⟩, ⟨https://gira.de⟩
- ⟨https://www.duiadns.net⟩
- ⟨https://ddnss.de⟩
- ⟨http://dynv6.com⟩
- ⟨http://ipv4.dynv6.com⟩
- ⟨https://www.cloudxns.net⟩
- ⟨https://www.dnspod.cn⟩
- ⟨https://connect.yandex.ru⟩
- ⟨https://www.cloudflare.com⟩
- ⟨https://www.goip.de⟩
DDNS providers not listed here, e.g. ⟨https://www.namecheap.com⟩,
can often be configured using the custom DDNS provider plugin. See
inadyn.conf(5)
for examples.
Earlier versions of
inadyn
supported more
command line options, from v2.0
inadyn
has
been greatly simplified. See
inadyn.conf(5)
for details of the
/etc/inadyn.conf
configuration file format.
-1,
--once
- Run only once and quit, updates only if too old or unknown. Use
--force
to for an update before
exiting.
--force
- Force one update. Only works with
-1,
--once
flag, ignored for all other
use-cases.
--cache-dir
PATH
- Set directory for persistent cache files, defaults to
/var/cache/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 command line option.
-c,
--cmd
/path/to/cmd [optional
args
]
- 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
inadyn.conf(5)
man page. You will need to quote the complete command if any arguments, or
pipe, is given.
--continue-on-error
- 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!
-e,
--exec=/path/to/cmd
[optional args
]
- 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
-i
IFNAME 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 given.
--exec-mode
MODE
- 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.
-f,
--config
FILE
- Use FILE for configuration. By default
/etc/inadyn.conf, is used. See
inadyn.conf(5)
for examples.
-h,
--help
- Show summary of command line options and exit
-i,
--iface
IFNAME
- 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
inadyn.conf(5),
both serve a purpose, use whichever one works for you.
-I,
--ident
NAME
- 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
/run/inadyn.pid.
-j,
--json
- Output provider listing in JSON format, see also
-L
.
-l,
--loglevel
LEVEL
- Set log level: none, err, info, notice,
debug. The default is notice, but you
might want to set this to
-l
warning.
-l,
--list-providers
- List available DDNS providers.
-n,
--foreground
- 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.
-p,
--drop-privs
USER[:GROUP
]
- Drop root privileges after initial setup to the given user and group.
--no-pidfile
- 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.
-P,
--pidfile
FILE
- Set PID file name and location, defaults to
/run/inadyn.pid, derived from
--ident
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.
-s,
--syslog
- Use syslog(3)
for 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.
-S,
--show-provider
NAME
- Show information about DDNS provider
NAME, substring search supported.
-t,
--startup-delay
SEC
- 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
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
inadyn
cache file and the
forced-update
SEC setting honored across reboots,
avoiding unnecessary IP address updates.
-v,
--version
- Show program version and exit.
inadyn
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
none. Therefore, unless
--loglevel
is set to
none, 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.
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
- 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, unless the
--ident
NAME option is used.
- /etc/inadyn.conf
-
- /run/inadyn.pid
-
- /var/cache/inadyn/dyndns.org.cache
-
- /var/cache/inadyn/freedns.afraid.org.cache
-
- ... one .cache file per DDNS
provider
-
inadyn.conf(5)
The
inadyn
home page is at GitHub:
⟨https://github.com/troglobit/inadyn⟩
inadyn
was originally written by Narcis
Ilisei ⟨mailto:inarcis2002@hotpop.com⟩ and Steve Horbachuk.
Current patch monkey is Joachim Wiberg
⟨mailto: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 Shaul Karl ⟨mailto:shaul@debian.org⟩,
and is currently maintained by Joachim Wiberg.