[ntp:questions] Reference 'sntp' utility: how do you set the destination port number

stuartl at longlandclan.id.au stuartl at longlandclan.id.au
Sun Jun 30 02:09:52 UTC 2019


Hi all,

This will seem like a silly request, but how do you set the sntp client (distributed with the 'ntp' package in Debian) port number?

The reason I need this is that I need to synchronise time with clients whose only link to the outside world is a 1200-baud AX.25 packet radio network.  Running TCP/IP over this is an impossibility at present.

The devices (partly due to an oversight on my part), do not have an RTC.  When first booted, they think the time is 2016.

The boards have been manufactured, it's too late to suggest that as the solution.  (The next revision *does* have a space for an RTC.)  The devices have two serial ports, one connected to an RFID reader, the other to an AX.25 TNC.  There is no room for a GPS, and no time to order one.

Hindsight is 20/20, so I'm looking for a quick software solution.

I have therefore written a program that can bind to an arbitrary UDP port, and can relay the NTP client requests and server responses over the AX.25 network.  It is written in Python 3 and implements all of the AX.25 logic along with the data collection function it is meant to perform.

Basically, UDP datagram (containing NTP payload) goes in, APRS-formatted AX.25 "un-numbered information frame" comes out.  APRS UI frame comes in, UDP datagram gets sent back to the (S)NTP client.

I do not need, nor want, this script to run as 'root'.  So there goes binding to port 123/udp.  I am instead using 3123/udp.  I'd like 'sntp' to talk to that.

'chrony' can talk on an alternate port, but it takes many measurements to synchronise the time, which is not ideal, it often takes many minutes to synchronise.  I don't need millisecond precision, I just need stations to be within 60 seconds of each other ('ntp' can take over and fine tune it from there).  I don't care that the date suddenly jumps from 2016 to 2019 -- I care more that the device "lives in 2016" for more than a few minutes.

I really just need a one-shot tool like 'ntpdate'.  I understand that 'sntp' is that tool.  What is the command line option I use to make it talk to a NTP server that is on a different port to the standard?



More information about the questions mailing list