What is a ToD server, "Time of Day" (Not NTP)

Solution 1:

If you're using Debian, xinetd comes with a ToD daemon. If you change the "disable = yes" like in /etc/xinetd.d/time to "disable = no" and then restart xinetd, you should be able to telnet to the server on port 37 and check that you get something returned. You can use something like:

nc $IP 37 | hexdump

and you'll see that the hex value increases every second.

Solution 2:

A "Time of Day" server is a pretty vague term - I'm not clear if that is referring to an an actual service named "ToD", or is just poor documentation. The Time protocol (RFC 868) is so old that very few things use it, except for a small number of embedded firmwares (such as OpenWRT), devices and appliances with little memory. NTP requires more memory than the Time protocol.

Nearly all modern appliances can use the Network Time Protocol (NTP) which has replaced the older Time protocol, which is better and probably more secure than the ancient time protocol. So spend some time now to see if your device uses NTP support.

Believe it or not, the Wikipedia article for xinetd contains a single configuration example, and it's for an RFC 868 time server.

See http://en.wikipedia.org/wiki/Xinetd#Configuration

An example configuration file for the RFC 868 time server:

# default: off
# description: An RFC 868 time server. This protocol provides a
# site-independent, machine readable date and time. The Time service sends back
# to the originating source the time in seconds since midnight on January first
# 1900.
# This is the tcp version.
service time
{
        disable         = yes
        type            = INTERNAL
        id              = time-stream
        socket_type     = stream
        protocol        = tcp
        user            = root
        wait            = no
}

# This is the udp version.
service time
{
        disable         = yes
        type            = INTERNAL
        id              = time-dgram
        socket_type     = dgram
        protocol        = udp
        user            = root
        wait            = yes
}