Warum meldet ntpq -pn "Verbindung abgelehnt"?

9

Ich habe kürzlich ein CentOS 6.x-System mit NTPD eingerichtet und stoße beim Ausführen auf folgenden Fehler ntpq -pn:

$ ntpq -pn
ntpq: read: Connection refused

Ich weiß, dass dies ntpdüber den ntpstatBefehl funktioniert :

$ ntpstat
synchronised to NTP server (204.11.201.12) at stratum 3
   time correct to within 71 ms
   polling server every 256 s

Warum ntpq -pnfunktioniert das nicht?

slm
quelle

Antworten:

12

Sie können dies ein wenig untersuchen, indem Sie in die Ausgabe stracewie folgt schauen :

$ strace ntpq -pn ::1|& grep -i conn
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_INET6, sin6_port=htons(123), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
recvfrom(3, 0x7fffc3365a10, 516, 0, 0, 0) = -1 ECONNREFUSED (Connection refused)
write(2, "Connection refused\n", 19Connection refused

Beachten Sie, dass für die Verbindung IPv6 verwendet wird. Grundsätzlich diese Zeile:

connect(3, {sa_family=AF_INET6, sin6_port=htons(123), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0

Lauscht NTPD auf einem IPv6-Port?

$ netstat -taupn|grep udp|grep ntp
udp        0      0 10.22.7.237:123             0.0.0.0:*                               24213/ntpd
udp        0      0 127.0.0.1:123               0.0.0.0:*                               24213/ntpd
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               24213/ntpd

Es scheint also nicht auf IPv6 zu hören, daher der Fehler. Wir können dies umgehen ntpq -pn, indem wir anweisen, stattdessen explizit eine Verbindung auf ipv4 herzustellen:

$ ntpq -pn 127.0.0.1
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+69.89.207.199   212.215.1.157    2 u  209  256  377   43.582    2.768   0.076
-72.5.72.15      10.3.255.0       3 u  217  256  377   68.627   -1.833   4.388
*204.11.201.12   66.220.9.122     2 u  244  256  377   61.928   -0.712   0.234
+108.59.2.24     130.133.1.10     2 u  178  256  377    1.824    3.256   0.111

Viel besser. Und Sie können unsere Logik straceerneut bestätigen, indem Sie :

$ strace ntpq -pn 127.0.0.1|& grep -i conn
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
connect(3, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)

Beachten Sie, dass IPv4 verwendet, sa_family=AF_INETwährend IPv6 verwendet wird, sa_family=AF_INET6wenn der ntpqClient versucht, ntpdüber UDP auf Port 123 eine Verbindung zu Ihnen herzustellen.

Wir können auch die -4und- -6Schalter verwenden, ntpq -pnum:

$ ntpq -pn -4
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+69.89.207.199   212.215.1.157    2 u  235  256  377   43.582    2.768   0.047
-72.5.72.15      10.3.255.0       3 u  248  256  377   68.627   -1.833   4.417
*204.11.201.12   66.220.9.122     2 u  265  256  377   61.802   -0.765   0.198
+108.59.2.24     130.133.1.10     2 u  212  256  377    1.824    3.256   0.097

Verweise

slm
quelle
Vielen Dank, dass ich mit Ihrem Beitrag und serverfault.com/questions/573351/… festgestellt habe, dass ntp in ipV6
Kwaadpepper
2

Ich hatte kürzlich das gleiche Problem mit CentOS7. ntpq -p würde 'read: Verbindung abgelehnt' sowie viele andere Befehle im ntp-Debug wie 'clocklist' und einige andere anzeigen. NTP-Server, die ich in ntp.conf festgelegt habe, wurden ignoriert. Hier sind einige andere bemerkenswerte Ergebnisse:

[root@server ~]# ntpstat
synchronised to NTP server (69.164.198.192) at stratum 3
   time correct to within 56 ms
   polling server every 1024 s

[root@server ~]# ntpdate
14 Oct 00:02:14 ntpdate[21443]: no servers can be used, exiting

[root@server ~]# systemctl status ntp
Unit ntp.service could not be found.

[root@server ~]# systemctl status ntpd
 ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

ntpq> version
ntpq [email protected] Thu Aug  8 11:48:03 UTC 2019 (1)

ntpq> clocklist
ntpq: read: Connection refused

ntpq> cooked
Output set to cooked

ntpq> readlist
ntpq: read: Connection refused

Wenn ich die IP des verwendeten NTP-Servers überprüfte, war es immer etwas von ARIN (?) Oder einem großen Anbieter wie Level3. Ich konnte den Server nicht auswählen, aber die verwendeten Server sahen in Ordnung aus. Aber ich würde trotzdem nicht meine eigenen Server auswählen können, egal was ich getan habe /etc/ntp.conf.

Ich begann zu vermuten, dass ich irgendwie ein schlechtes Programm hatte, und ich begann zu vermuten, dass das Epel-Repository, das ich geladen hatte, einige andere Programme von dort benötigte.

Sicher genug, ich habe Folgendes durchgeführt und das Problem behoben:

yum remove ntp
yum install ntp --disablerepo=epel

Es wurde neu installiert, ntpq -pfunktioniert jetzt und wird systemctl status ntpdwie folgt angezeigt:

[root@server ntpstats]# systemctl status ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-10-14 22:14:44 CDT; 3s ago

Schließlich werden die Server verwendet, die ich eingerichtet /etc/ntp.confhabe.

Ich weiß nicht, wie ich erfahren soll, dass ihr CentOS7-NTP irgendwie abgespritzt ist. Vielleicht wird jemand dies sehen und berichten.

Beachten Sie, dass sowohl epel als auch das CentOS-Repository dieselbe Version zeigten : ntp-4.2.6p5-29.el7.centos.x86_64.

ppr
quelle