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/services
archivo, 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.)