Wie kann ich überprüfen, welche Portnummern von der Shell abgehört werden, wenn eine Mongo-Instanz ausgeführt wird? Ich dachte, das db.serverStatus()
würde es tun, aber ich sehe es nicht. ich sehe es
"connections" : {
"current" : 3,
"available" : 816
Welches ist nah ... aber nein. Vorschläge? Ich habe die Dokumente gelesen und kann anscheinend keinen Befehl finden, der dies tut.
Antworten:
Über die System-Shell können Sie verwenden
lsof
(siehe Dericks Antwort unten) odernetstat -an
anzeigen, was ein Prozess tatsächlich tut. Angenommen, Sie haben nur Zugriff auf diemongo
Shell (was Ihr Fragentitel impliziert), können Sie denserverCmdLineOpts()
Befehl ausführen . Diese Ausgabe gibt Ihnen alle Argumente, die über die Befehlszeile (argv) und die aus der Konfigurationsdatei (analysiert) übergeben wurden, und Sie können daraus schließen, dass die Portsmongod
basierend auf diesen Informationen abhören. Hier ist ein Beispiel:Wenn Sie bestimmte
mongod
Portoptionen wie die oben genannten nicht übergeben haben, werden standardmäßig 27017 und 28017 ( http-Konsole ) abgehört . Hinweis: Es gibt einige andere Argumente, die Ports ändern können, ohne explizit zu sein. Siehe hier:https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole
quelle
{ "argv" : [ "mongod" ], "parsed" : { }, "ok" : 1 }
Das sagt mir nicht viel. Ich denke, es sagt mir, dass ich am Standardport bin.Sie können dies über die Betriebssystem-Shell tun, indem Sie Folgendes ausführen:
quelle
Versuche dies:
Es werden sowohl die IP-Adresse als auch die Portnummer angezeigt.
quelle
lsof
:> mongod 14942 dmitrii 5u IPv4 0xc36ad5231f84011d 0t0 TCP *: 27017 (LISTEN) Und vomwhatsmyurl
Befehl: {"you": "127.0.0.1:50294", "ok": 1 } Und sie stimmen nicht überein.MongoDB überwacht standardmäßig nur einen Port (27017). Wenn die
--rest
Schnittstelle aktiv ist, ist Port 28017 (27017 + 1000) auch offen und verarbeitet Webanfragen nach Details.MongoDB unterstützt einen
getParameter
Befehl, der jedoch nur funktioniert, wenn Sie bereits mit der Datenbank verbunden sind (zu diesem Zeitpunkt kennen Sie den Port bereits).quelle
Versuchen Sie den folgenden Befehl, dieser funktioniert für mich:
quelle