Come posso abilitare ntpd a servire client ntp (usando High Sierra)?

2

Ho alcuni computer Raspberry Pi su una rete privata che non hanno orologi in tempo reale e quindi non possono mantenere il tempo con precisione dopo che sono stati spenti. Poiché sono disconnessi da Internet, non possono utilizzare ntp per aggiornare i propri orologi dopo la loro sincronizzazione.

Tuttavia, posso collegare il mio mac alla rete privata e chiedere ai computer di raspberry pi di ottenere l'ora corrente dal mac.

Quando provo a farlo, non funziona.

Il servizio launchd ntpd è disabilitato su High Sierra. Quando provo ad avviarlo, succede questo.

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist 
Password:
/System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist: Service is disabled

Ho provato ad abilitare in questo modo, senza alcun risultato

$ sudo launchctl enable system/org.ntp.ntpd-legacy
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist
Password:
/System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist: Service is disabled

quindi devo avviarlo manualmente in questo modo:

sudo /usr/sbin/ntpd

Quando provo sul pi per vedere se la sincronizzazione di ntp sta funzionando, ottengo questo:

pi@jessie:~ $ timedatectl status
      Local time: Mon 2018-05-07 14:53:03 GMT+7
  Universal time: Mon 2018-05-07 21:53:03 UTC
        RTC time: n/a
       Time zone: Etc/GMT+7 (GMT+7, -0700)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Si noti che NTP synchronized è impostato su "no".

Quando provo a vedere se le ore sono sincronizzate, questo è il risultato:

$ date; SSHPASS='pass' sshpass -e ssh pi@pi1 date
Mon May  7 14:52:23 PDT 2018
Mon May  7 14:52:00 GMT+7 2018

I tempi non sono sincronizzati. Sono incerto su come eseguire il debug. Non è chiaro dove sono memorizzati i log ntpd.

In definitiva, voglio solo essere in grado di avviare ntpd e farlo rispondere alle richieste di tempo.

    
posta Alex Ryan 08.05.2018 - 00:28
fonte

1 risposta

4

Devi configurare ntp.conf e ntp-restrict.conf per eseguire un server orario locale:

  1. Elimina ntpd
  2. Aggiungi

    server 127.0.0.1 prefer
    fudge 127.0.0.1
    

    alla fine di /etc/ntp.conf.

  3. Aggiungi

    restrict <network_address> mask <net_mask> nomodify notrap
    

    dopo il blocco di restrizione localhost in /etc/ntp-restrict.conf. Sostituisci <network_address> con il tuo indirizzo di rete locale (ad esempio 192.168.2.0) e <net_mask> con la tua maschera (ad esempio 255.255.255.0)

  4. Ricarica org.ntp.ntpd-legacy (non ho avuto problemi a caricare il demone di sistema - SIP disabilitato però):

    sudo launchctl unload -w /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist
    
  5. Controlla localmente il tuo server orario:

    ntpdate -vdq 127.0.0.1
    

    Di solito il server non è adatto al primo tentativo perché lo strato è troppo alto (cioè 16 = non sincronizzato )! Aspetta un po 'di tempo e riprova. Qui ci sono voluti circa 10 minuti per portare lo strato a 2 da 16.

  6. Collega il tuo Mac alla rete privata e prova a sincronizzare i tuoi client Raspberry Pi.
risposta data 08.05.2018 - 03:28
fonte

Leggi altre domande sui tag