J'essaie d'utiliser NTP pour mettre à jour l'heure sur ma machine. Cependant, cela me donne une erreur:
host # ntpdate ntp1.example.org
10 Aug 12:38:50 ntpdate[7696]: the NTP socket is in use, exiting
Que signifie l'erreur "socket en cours d'utilisation"? Comment puis-je voir ce qui utilise cette prise?
Cela se produit sur mon système CentOS 4.x, mais je le vois également sur FreeBSD 7.x, Ubuntu 10.04 et Solaris 10.
networking
process
freebsd
open-files
Stefan Lasiewski
la source
la source
Réponses:
Tu peux faire
pour voir tous vos ports d'écoute, mais en dollars pour les beignets que ntpd exécute:
Et en ce qui concerne "Que signifie socket utilisé"? Si je peux être pardonné de lisser certaines rides (et pour l'explication très basique, les excuses de la plupart de cela sont correctives pour vous) ... TCP / IP (la langue d'Internet) spécifie que chaque ordinateur a une adresse IP, qui identifie de façon unique cet ordinateur sur Internet. De plus, chaque adresse IP peut être connectée à 65 000 ports numérotés.
Lorsque vous souhaitez vous connecter à un serveur Web, vous ouvrez le site dans votre navigateur, mais la machine en dessous vous connecte en fait au port 80 sur l'IP du serveur Web. Le démon du serveur Web (le programme qui écoute les connexions au port 80) utilise un "socket" pour maintenir ouvert ce port, le réservant pour lui-même. Un seul programme peut utiliser le même port à la fois.
Puisque vous aviez ntpd en cours d'exécution, il utilisait ce port. 'ntpdate' a tenté d'accéder à ce port, mais comme il était déjà maintenu ouvert, vous avez eu l'erreur 'socket déjà utilisé'.
Modification également prise
en compte pour UDP
la source
Isof
commande dans mon CentOS 7.Vous pouvez également utiliser netstat pour rechercher des prises ouvertes - c'est beaucoup plus propre que d'utiliser lsof comme les autres affiches l'ont suggéré. Essayez cette ligne de commande en tant que root
netstat -lp -u -t
pour afficher toutes les connexions d'écoute, y compris leurs pid et programmes associés. Le paramètre -l est ce qui spécifie les connexions d'écoute, -p spécifie que vous voulez voir le PID / nom et -t et -u indiquent à netstat que vous ne voulez que les connexions TCP et UDP (IPv4 et IPv6).
Si vous voulez voir les noms de port et d'hôte numériques (c'est-à-dire non résolus dans le cas des hôtes, et non transformés en noms de service dans le cas des ports), vous pouvez ajouter
-n
à la ligne de commande ci-dessus.EDIT: Cela fonctionne sur Linux - je ne sais pas si cela fonctionne bien sur BSD, car je n'ai pas de boîtes basées sur BSD.
la source
netstat --listen --programs --udp --tcp
| grep LISTEN
, mais cela exclut les connexions UDP. Mais sinon, je pense que les drapeaux équivalents sur FreeBSD sont:,netstat -p udp -p tcp -a
maisnetstat -a
pourraient être plus simples.Sur FreeBSD, vous pouvez également utiliser sockstat au cas où lsof ne fonctionnerait pas pour vous (par exemple sur des systèmes virtualisés qui n'ont pas / dev / mem pour une raison quelconque). Pour obtenir une liste de tous les programmes avec des sockets IPv4 d'écoute:
la source
En tant que root, procédez comme suit:
Cela vous montrera tous les processus qui écoutent sur les sockets IPv4. Vous voudrez peut-être ajouter
-b
pour éviterlsof
de faire certaines choses qui pourraient le bloquer. Si vous faites cela, vous voudrez probablement aussi redirigerstderr
vers/dev/null
.la source
sudo lsof |grep UDP
pour voir les paquets UDP.Vous pouvez utiliser
lsof
pour trouver quelle application utilise ce socket.la source
Jouant avec ce trois-en-un sur OS X 10.9.5:
sudo lsof | grep \ IPv | sort ; clear ; sudo lsof -U ; clear ; sudo netstat -a
la source
Avec FreeBSD, utilisez le
-u
commutateur pourntpdate
utiliser un port non privilégié à la place.Comme:
ntpdate -v -b -u 0.freebsd.pool.ntp.org
Utilisez
man ntpdate
pour voir ce qui se passe-v
et ce que vous-b
faites.la source
-u
option, puisqu'il vient de ntp.org, j'imagine que la plupart des systèmes l'ont.