root@nanana:~# nc -zv localhost 5432
Connection to localhost 5432 port [tcp/postgresql] succeeded!
Wie findet NC heraus, dass Postgres auf dem Port lauscht? Nur anhand allgemeiner Portnummern und durch Annahmen?
Antwort1
Die Ausgabe basiert nur auf der Portnummer.
nc erhält diese Informationen normalerweise aus der /etc/services
Datei, die (je nach Betriebssystem) entweder den gesamten Inhalt von IANADienstnamen und PortnummernRegistrierung oder eine kleine Auswahl gängiger Ports aus der ARPANET-Ära oder eine Mischung aus beidem.
(Je nach Betriebssystem wird diese Datei normalerweise nicht direkt gelesen, sondern über getservent() und die „nsswitch“-Infrastruktur von libc, die zusätzliche Quellen für Dienstnamen bereitstellen kann – z. B. NIS/LDAP/Hesiod.)