El siguiente comando funcionará en cualquier Unix que salga en el mismo formato que Ubuntu / Debian, donde la dirección local está en la columna 4 y la salida incluye un encabezado de 2 líneas en la parte superior. Si alguno de esos números es diferente, modifique el comando awk a continuación.
Si solo quiere IPv4:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq
Si solo quiere IPv6:
netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq
Si quieres los dos juntos:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq
El comando genera una lista de números de puerto que están escuchando en todas las interfaces. Si desea enumerar todos los puertos que están escuchando en la interfaz localhost, use algo como esto:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq
netstat
está en desuso en muchos sistemas yss
debe usarse en su lugar.