root@nanana:~# nc -zv localhost 5432
Connection to localhost 5432 port [tcp/postgresql] succeeded!
Как nc узнает, что postgres прослушивает порт? Просто по общим номерам портов и предположению?
решение1
Вывод основан только на номере порта.
nc обычно получает эту информацию из /etc/services
файла, который (в зависимости от операционной системы) может содержать либо полное содержимое IANAНазвания служб и номера портовреестр, или небольшой набор распространенных портов эпохи ARPANET, или сочетание того и другого.
(В зависимости от ОС этот файл обычно не считывается напрямую, а через getservent() и инфраструктуру libc «nsswitch», которая может предоставлять дополнительные источники для имен служб, например, NIS/LDAP/Hesiod.)