Estoy tratando de entender qué puertos están escuchando activamente (¿en uso?) en mi máquina y no sé realmente qué estoy haciendo. Los tres comandos con los que he experimentado son nmap
, ss
(? netscan
?) y lsof
.
netscan
informa que solo 1 puerto está escuchando activamente (631):
$ sudo nmap -sT localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
631/tcp open ipp
ss
(? netscan
?) informa que 2 puertos están en uso (631 y 53):
$ sudo ss -tulwn | grep LISTEN
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
tcp LISTEN 0 5 [::1]:631 [::]:*
Finalmente, si reviso los puertos individuales con lsof -i:xx
, veo resultados para 631 y 53, pero también para los puertos 80 y 443:
$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 3481 me 74u IPv4 85172 0t0 TCP Machine:56024->lga25s63-in-f3.1e100.net:http (ESTABLISHED)
$ sudo lsof -i:443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
skypeforl 2426 me 27u IPv4 77133 0t0 TCP Machine:60396->13.83.65.43:https (ESTABLISHED)
skypeforl 2453 me 72u IPv4 56536 0t0 TCP Machine:58945->40.86.187.166:https (ESTABLISHED)
firefox 3481 me 95u IPv4 81375 0t0 TCP Machine:53788->104.16.249.249:https (ESTABLISHED)
firefox 3481 me 157u IPv4 80283 0t0 TCP Machine:49080->lga34s15-in-f5.1e100.net:https (ESTABLISHED)
chrome-gn 3799 me 74u IPv4 55080 0t0 TCP Machine:42196->server-52-85-61-100.ewr53.r.cloudfront.net:https (CLOSE_WAIT)
chrome-gn 3799 me 95u IPv4 55072 0t0 TCP Machine:43998->104.16.248.249:https (CLOSE_WAIT)
Pensé que estos tres comandos eran básicamente vistas diferentes de la misma información. ¿Por qué algunos puertos sólo son revelados por algunos de estos comandos?
Respuesta1
Comenzando con la diferencia entre ss
y nmap
. Para el puerto 53, el motivo es la diferencia entre localhost
los otros 16 millones de direcciones reservadas para la máquina local. 127.0.0.1
no es lo mismo que 127.0.0.53
. ss
informa todos los puertos para la máquina local mientras nmap
se restringe a la dirección 127.0.0.1.
En cuanto a los informes adicionales de lsof
, se busca algo muy diferente. Sus comandos ss
y nmap
buscan sockets en LISTEN
estado, es decir, esperando conexiones entrantes. Se lsof
buscan todos los enchufes, en particular las conexiones establecidas y las conexiones rotas. Estás buscando cosas dondecualquieraEl final está usando el puerto 80 ocualquieraEl final está utilizando el puerto 443.
Entonces, el remate es que estos 3 comandos muestran cosas diferentes porque su creencia de que muestran la misma información es incorrecta. Esta es una comparación de manzana, naranja y plátano. 3 comandos diferentes muestran información diferente porque muestran información diferente.