Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
INADYN(8)		    System Manager's Manual		     INADYN(8)

     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] [-l, --loglevel LEVEL]
	    [-n, --foreground] [--no-pidfile] [-P, --pidfile FILE]
	    [-p, --drop-privs USER[:GROUP]] [-s, --syslog]
	    [-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:

     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>, <>
	 +o   <>
	 +o   <>
	 +o   <>
	 +o   <>
	 +o   <>
	 +o   <>
	 +o   <>, formerly	<>
	 +o   <>
	 +o   <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>, parent of <>
     +o	 <>
	 +o   <>
	 +o   <>
     +o	 <>
     +o	 <>, <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>
     +o	 <>

     DDNS providers not	listed here, e.g.  <>,	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 /usr/local/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 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

	     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 ban-
	     ning you for excessive updates.

	     When restarting inadyn or rebooting your server, or embedded de-
	     vice, 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.

	     Ignore errors from	DDNS provider and try again later.  This com-
	     mand 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 environ-
	     ment 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: -	com-
	     pat: run exec handler on successful DDNS update only, default -
	     event: run	exec handler on	any update status The following	envi-
	     ronment variables are set:	INADYN_EVENT, INADYN_ERROR, INADYN_ER-
	     ROR_MESSAGE.  INADYN_EVENT	contains the event, one	of: nochg, up-
	     date, error.  The event nochg indicates that no update had	to be
	     sent, the event update indicates that an update was sent succes-
	     sully, the	event error indicates that the update was sent and an
	     error occurred.  INADYN_ERROR contains the	error code, INADYN_ER-
	     ROR_MESSAGE contains the error message for	the error code.

     -f, --config FILE
	     Use FILE for configuration. By default
	     /usr/local/etc/inadyn.conf, is used.  See inadyn.conf(5) for ex-

     -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 ad-
	     dress, 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

     -I, --ident NAME
	     Specify program identity (name) to	be used	for PID	file and sys-
	     log 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/ or /run/

     -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.

     -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

	     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 in-
	     formation 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/, de-
	     rived 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.

     -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 recom-
	     mended 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

     -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/, unless the --ident NAME option is used.

     ... one .cache file per DDNS provider


     The inadyn	home page is at	GitHub:	<>

     inadyn was	originally written by Narcis Ilisei
     <> and Steve Horbachuk.  Current patch mon-
     key is Joachim Wiberg <>	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 <>, and is currently maintained by
     Joachim Wiberg.

FreeBSD	13.0		       February	20, 2020		  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help