Ich versuche, mithilfe von NTP die Uhrzeit auf meinem Computer zu aktualisieren. Es gibt mir jedoch einen Fehler:
host # ntpdate ntp1.example.org
10 Aug 12:38:50 ntpdate[7696]: the NTP socket is in use, exiting
Was bedeutet der Fehler "Socket wird verwendet"? Wie kann ich sehen, was diese Steckdose verwendet?
Dies passiert auf meinem CentOS 4.x-System, aber ich sehe es auch auf FreeBSD 7.x, Ubuntu 10.04 und Solaris 10.
networking
process
freebsd
open-files
Stefan Lasiewski
quelle
quelle
Antworten:
Du kannst tun
Um alle Listening-Ports zu sehen, aber Dollars zu Donuts, die NTPD ausführt:
Und was bedeutet "Was ist die verwendete Steckdose?" Wenn ich für die Glättung einiger Falten vergeben werden kann (und für die grundlegende Erklärung, Entschuldigungen für die meisten davon sind für Sie heilsam) ... TCP / IP (die Sprache des Internets) gibt an, dass jeder Computer eine IP-Adresse hat, die diesen Computer im Internet eindeutig identifiziert. Zusätzlich gibt es 65.000 nummerierte Ports an jeder IP-Adresse, an die eine Verbindung hergestellt werden kann.
Wenn Sie eine Verbindung zu einem Webserver herstellen möchten, öffnen Sie die Site in Ihrem Browser, aber der Computer darunter verbindet Sie tatsächlich mit Port 80 der IP des Webservers. Der Daemon des Webservers (das Programm, das auf Verbindungen zu Port 80 wartet) verwendet einen "Socket", um diesen Port offen zu halten und für sich zu reservieren. Es kann immer nur ein Programm denselben Port verwenden.
Da ntpd ausgeführt wurde, wurde dieser Port verwendet. 'ntpdate' hat versucht, auf diesen Port zuzugreifen, aber da er bereits geöffnet war, wurde der Fehler 'Socket bereits in Verwendung' angezeigt.
Bearbeiten
Geändert, um auch UDP zu berücksichtigen
quelle
Isof
Befehl in meinem CentOS 7.Sie können netstat auch verwenden, um nach offenen Sockets zu suchen - es ist viel sauberer als die Verwendung von lsof, wie in den anderen Postern vorgeschlagen. Versuchen Sie diese Befehlszeile als root
netstat -lp -u -t
um alle Abhörverbindungen einschließlich der zugehörigen Pids und Programme anzuzeigen. Der Parameter -l gibt an, dass Verbindungen überwacht werden sollen, -p gibt an, dass die PID / der Name angezeigt werden sollen, und -t und -u geben an, dass nur TCP- und UDP-Verbindungen (IPv4 und IPv6) gewünscht werden.
Wenn Sie numerische Port- und Hostnamen sehen möchten (dh bei Hosts nicht aufgelöst und bei Ports nicht in Servicenamen umgewandelt), können Sie diese
-n
in die obige Befehlszeile einfügen.EDIT: Das funktioniert unter Linux - ich weiß nicht, wie gut es unter BSD funktioniert, da ich keine BSD-basierten Boxen habe.
quelle
netstat --listen --programs --udp --tcp
| grep LISTEN
, aber das schließt die UDP-Verbindungen aus. Aber ansonsten denke ich, dass die entsprechenden Flags unter FreeBSD: sindnetstat -p udp -p tcp -a
, abernetstat -a
einfacher sein könnten.Unter FreeBSD können Sie auch sockstat verwenden, falls lsof für Sie nicht funktioniert (z. B. auf virtualisierten Systemen, die aus irgendeinem Grund nicht über / dev / mem verfügen). So rufen Sie eine Liste aller Programme mit empfangsbereiten IPv4-Sockets ab:
quelle
Tun Sie als root Folgendes:
Dies zeigt Ihnen alle Prozesse, die IPv4-Sockets überwachen. Möglicherweise möchten Sie hinzufügen
-b
, um zu verhindernlsof
, dass bestimmte Aktionen blockiert werden. Wenn Sie das tun, werden Sie wahrscheinlich auch umleiten möchtenstderr
zu/dev/null
.quelle
sudo lsof |grep UDP
, um UDP-Pakete zu sehen.Mit können Sie
lsof
herausfinden, welche Anwendung diesen Socket verwendet.quelle
Spielen Sie mit diesem 3-in-1-System unter OS X 10.9.5:
sudo lsof | grep \ IPv | sort ; clear ; sudo lsof -U ; clear ; sudo netstat -a
quelle
Verwenden Sie bei FreeBSD den
-u
Switch, sodassntpdate
stattdessen ein nichtprivilegierter Port verwendet wird.Mögen:
ntpdate -v -b -u 0.freebsd.pool.ntp.org
Verwenden Sie, um
man ntpdate
zu sehen, was-v
und-b
tut.quelle
-u
Option, da es von ntp.org stammt. Ich stelle mir vor, die meisten Systeme haben es.