¿Cómo identifica nc los nombres de los servicios?

¿Cómo identifica nc los nombres de los servicios?
root@nanana:~# nc -zv localhost 5432
Connection to localhost 5432 port [tcp/postgresql] succeeded!

¿Cómo descubre nc que postgres está escuchando en el puerto? ¿Solo por números de puerto comunes y por suposición?

Respuesta1

La salida se basa únicamente en el número de puerto.

nc generalmente obtiene esta información del /etc/servicesarchivo, que (según el sistema operativo) puede contener el contenido completo de IANANombres de servicios y números de puertoregistro, o una pequeña selección de puertos comunes de la era ARPANET, o una combinación de ambos.

(Dependiendo del sistema operativo, este archivo generalmente no se lee directamente sino a través de getservent() y la infraestructura "nsswitch" de libc, que puede proporcionar fuentes adicionales para nombres de servicios, por ejemplo, NIS/LDAP/Hesiod.)

información relacionada