inadyn man page

inadyn-mt — a client for open DNS servers.


inadyn-mt [-h | --help] [-u | --username username] [-p | -- password password] [-a | --alias alias[, hash] [dual | coupled | ip4 | ip6 | auto] [if] [pub | policy | home | careof | crypto | nocrypto | tmp | pubtmp] [ip server[:port] <ip server url> [ip server host]] [--input_file path/name] [--ip_server_name server[:port] url] [--ip_server_host hostname] [--dyndns_server_name server[:port]] [--dyndns_server_url url] [--dyndns_system service] [--proxy_server[:port] proxy[:port]] [--update_period ms] [--update_period_sec sec] [--forced_update_period sec] [--log_file path/name] [--background] [--verbose level] [--iterations iterations] [--syslog] [--change_persona uid[:gid]]


inadyn-mt is a client for `open' name servers. That is, it allows the user's machine to have an internet recognized name by transferring some control over a name server not managed by the user. Some of the services that are offered by those open name servers are free of charge, and work even when the client machine does not have a static IP. Supports both IPv4, and IPv6 addresses.

Supported name servers are:



























http://domains.google.com (requires SSL bridge, like stunnel)






Its basic operation is to periodically check whether the actual IP of the client machine is the same one that is recorded in the name server, and update the name server records when there is a mismatch.

For IPv6 addresses, see below, alias, and ip_server_name options.

Also, network status can be checked at a user specified interval, and audible alerts issued in event of network status down.


-h, --help
Print a summary of the options to inadyn-mt 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[, hash] [ip type] [if] [addr pref] [ip server[:port] <ip server url> [ip server host]]

A host name alias, optional comma delimited hash, and optional ip version (default auto), network interface, address preference, ip server (and optional colon delimited port) and url, ip server host. This option can appear multiple times.

IP types are dual, coupled, ip4, ip6, or auto. IP type auto is the default. IP type dual (for dual ip stack), denotes the alias should be updated to both ipv6, ipv4. Coupled is like dual, but denotes DDNS server accepts dual stack updates in a single request, where the ipv4, ipv6 addresses are presented as a comma delimited list.

Network interface parameter should denote the network interface to be used as the ip server connect source address. When this parameter is opted, unless ip type is ip4, the alias will be updated to the ipv6 address obtained from this interface, along with, if indicated, the ipv4 address obtained from ip server.

The addr pref parameter denotes ipv6 privacy extentions address preference. It can be one of either pub, policy, home, careof, crypto, nocrypto, tmp, pubtmp. Logical OR not yet supported. The default is pub.

Use the ip server parameter for other than the DDNS server's ip server as per default inadyn-mt hard coded configuration settings. It can include a colon delimted port number. It must be accompanied by a url parameter. Finally, an ip server host can be designated - useful in case of ip server running on multiple server hosts, or the ip server domain name used to reach the server otherwise differs from actual ip server domain name.

Except the host (alias) parameter, all of these parameters are optional, but order matters.

--input_file file
The file name that contains inadyn-mt command options exactly as specified in the command line syntax (adds to those already present in the cmd line). The default configuration file name is '/etc/inadyn-mt.conf'. It is looked at automatically if inadyn-mt is called without any command line options. The format is as expected for a **NIX config 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.
--ip_server_name server[:port] url

The client IP is detected by calling 'url' from this 'server:port'.

Choice of ip server name parameter option can determine what type of address is updated. To update an IPv6 address, simply choose an ip server that supports IPv6, such as, ip6.me /, myip.dk /, dhis.org /, among others. And, of course, dynamic dns server should be set to one that supports IPv6.

--ip_server_host hostname
Host name used in http request to ip server if different from ip server name, as when, e.g., ip_server_name is 'localhost:port /' through an SSL bridge. Defaults to ip server name.
--dyndns_server_name server[:port]
The server that receives the update DNS requests. When no proxy is specified it is sufficient to set the dyndns_system so that the default servers will be taken. The option is useful for generic DynDNS services that support HTTP update.
--dyndns_server_url url
The update path inside the DynDNS server.
--dyndns_server_host hostname
Host name used in http update DNS request, if different from dyndns server name, as when, e.g., ip_server_name is 'localhost:port' through an SLL bridge. Defaults to dyndns server name.
--dyndns_system system

An optional DDNS service (dyndns@dyndns.org is the default). For


the acceptable services are one of dyndns@dyndns.org or dual@dyndns.org, statdns@dyndns.org or custom@dyndns.org.

There is only one acceptable service for http://freedns.afraid.org, which is default@freedns.afraid.org.

This option can be used multiple times - once for each DDNS server to update - followed by --alias, and other options corresponding to the --dyndns_system entry. Per --dyndns_system entry options are username, password, alias, ip_server_name, ip_server_host, dyndns_server_name, dyndns_server_url, dyndns_server_host, and proxy_server.

Other services are:

Requires SSL bridge, like stunnel; set --server_host_name domains.google.com
See also custom server options, --svr_rsp_success, --svr_rsp_other, --svr_ip_param, --svr_ip_in_rsp
The default service is dyndns@dyndns.org.

--proxy_server proxy[:port]
An http proxy server name and port. The default is none.
--update_period milliseconds
How often the IP is checked. This value denotes millisecond (There are 1000 milliseconds in one second). 30000..864000000. Default is about 10 min. maximum is 10 days.
--update_period_sec seconds
How often the IP is checked. Here the value denotes seconds. 30..864000. The default is about 10 min. The maximum value is 10 days.
--forced_update_period seconds
How often the IP should be updated even if it is not changed. The time should be given in seconds. 30 sec..30 days. Default, 30 days.
--forced_update_adjust control
Fine timer control. Slow, or speed timer between -4..5. Default, 0.
--log_file file
The name, including the full path, of a log file.
--cache_dir dir
Directory to which ip, and time update files are written. Defaults to /tmp on **NIX systems.
run in background. Output is sent to the UNIX syslog facilities or to a log file, if one was specified.
--verbose level
Set the debug level, which is an integer between 0 to 5.
--iterations number
Set the number of DNS updates. The default is 0, which means infinity.
Explicitly sending the output to a syslog like file, such as /var/log/messages.
--change_persona uid[:gid]
After init changes user ID and group ID to the provided ones. This allows dropping unneeded [root] privileges after startup.
--retries number
Network comm retry attempts. 0 to 100, default 0.
--retry_interval milliseconds
Network comm miliseconds retry interval, 0 to 30,000, default 1,000.
Retry ip update even after network comm retries exhausted, default on.
--retry_pending_interval seconds
Network comm seconds update retry interval, after retries exhausted. 5 to 3600, default 300.
--lang_file file
Language file path, and file name, defaults to either ../inadyn-mt/lang/en.lng, or etc/inadyn-mt/en.lng. No parameter option gives hard coded defaults.
--online_check_url srv_name[:port] url
srv_name[:port] url - URL to reach to confirm online status.
--status_interval seconds
Seconds [30..864000] interval at which to check online status, defaults to 600.
--alert_retries number
Network retries before audible network status alerts. [0..100], default 0.
--status_offline_interval seconds
Seconds [0..864000] interval at which to check online status, after offline detected, defaults to 15.
Audible network status alerts toggle (log output only), default off.
--wave_file file
Audible network status alerts wave file path, and file name. defaults to either ../inadyn-mt/extra/wav/alarm.wav, or etc/inadyn-mt/extra/wav/alarm.wav. [wave loops: 0..100; -1 for infinite] same as wave_loops below -- optional number of times per wave play call to repeat wave file play, default 0.
--wave_loops number
Same as wave_file parameter optional parameter -- 0..100; -1 for infinite number of times per wave play call to play wave file.
--wave_buff number
Wave file output buffer size control -- integer or float multiple of wave file bytes per sec. [.25..10], default .25.
--wave_gain number
Gain (amplitude adjust) at which to play audible alert (beware clipping), integer or float. [-10..10], default 10 (0db, no attenuation).
--alert_interval milliseconds
Time in miliseconds between consecutive audible network status alerts, [0..3600000], default 0.
--svr_rsp_success string
Optional for custom DDNS updates. A quoted comma delimited string, e.g., "good, nochg", representing custom DDNS server successful update return values.
--svr_rsp_other string
Optional for custom DDNS updates. A quoted comma delimited string, e.g., "dnserr,911", representing custom DDNS server non-fatal update failure return values.
--svr_ip_param param [user] [pass]
Optional for custom DDNS updates. DDNS url parameter for ip address, e.g., myip.
Optional for custom DDNS updates. Flag that custom DDNS server returns your ip address on update success. Defaults to false.
Flag that server defaults to dual list (coupled) alias ip type. Defaults to false.
Flag server auto detects ip. Defaults to false.
--svr_add_cfg file
Additional servers file. Default search for servers_additional.cfg in ./extra, /etc, /etc/inadyn-mt, /etc/inadyn-mt/extra. Contains additional preconfigured DDNS servers to be used as --dyndns_system option parameter in same fashion as servers inadyn-mt supports natively. Should appear before any dyndns_system, option in inadyn-mt.conf or command line if not using inadyn-mt.conf.
--if interface
Name of network interface to use for ip server, and DDNS server comm. Defaults to system configured default.
--addr_pref preference
ipv6 privacy extensions address preference. Valid parameters are 'pub,' 'policy,' 'home,' 'careof,' 'crypto,' 'nocrypto,' 'tmp,' 'pubtmp.' Defaults to 'pub.' See rfc5014. Combining via logical OR not presently supported.

Typical Usage


inadyn-mt -u username -p password -a my.registered.name

inadyn-mt --username test --password test --update_period 60000 --alias test.homeip.net --alias my.second.domain

inadyn-mt --background -u test -p test --update_period 60000 --alias inarcis.homeip.net --alias my.second.domain --log_file inadyn-mt.log http://freedns.afraid.org

inadyn-mt --dyndns_system default@freedns.afraid.org -a my.registrated.name,hash_from_freedns

inadyn-mt --update_period 60000 --alias test.homeip.net,hash_for_host1 -a my.second.domain,hash2 --dyndns_system default@freedns.afraid.org

The 'hash' should be extracted from the grab url batch file that can be downloaded from the site. A single hashed (base64 encoded) string is preferred upon a username and password pair, apparently to reduce the computational resources that is required on their side. Unfortunately the hash can not be computed by inadyn-mt because it requires the index to the username record in the freedns database, which is not known. The simplest solution seems to be a copy&paste action from the grab url batch file offered on their website. When the batch file looks is like

graburl http://freedns.afraid.org/dynamic/updat…=

the hash string, which is what the user should copy and paste, is the string that begins right after the '?' character and ends with the end of line. This string shell be used as the username in inadyn-mt command. When the user has several names then each name should be followed with that name hash string.


inadyn-mt prints a message when the IP is updated. When the connection goes down it could be that inadyn-mt will print some error messages. Those are harmless and should be followed by 'OK' messages after the connection is back up.


Any of the SIG_HUP, SIG_INT, SIG_QUIT will cause inadyn-mt to terminate gracefully. SIG_USR1 will cause inadyn-mt to update ip, if changed.

See Also

Other manual pages

The syntax of the optional configuration file is given by inadyn-mt.conf(5).

Internet resources








inadyn was written by Narcis Ilisei, <inarcis2002@hotpop.com>; inadyn-advanced, Steve Horbachuk; inadyn-mt unicode, other augmentations, Bryan Hoover <bhoover@wecs.com>

This manual page was written by Shaul Karl, <shaul@debian.org>, for the Debian GNU/Linux system, based on the readme.html file that is found in the source.


Linux applications September, 2009