netstat -lntu
como respondió @askmish le dará una lista de los servicios que se ejecutan en su sistema en los puertos tcp y udp donde
-l
= solo servicios que escuchan en algún puerto
-n
= muestra el número de puerto, no intentes resolver el nombre del servicio
-t
= puertos tcp
-u
= puertos udp
-p
= nombre del programa
No necesita el parámetro 'p', ya que solo está interesado en obtener qué puertos están libres y no qué programa se ejecuta en él.
Sin embargo, esto solo muestra qué puertos de su sistema están agotados. Esto no le indica el estado de su red, por ejemplo, si está detrás de NAT y desea que algunos servicios sean accesibles desde el exterior. O si el firewall está bloqueando el puerto para visitantes externos. En ese caso, nmap viene al rescate. ADVERTENCIA: Use nmap solo en redes que están bajo su control. Además, hay reglas de firewall que pueden bloquear los pings de nmap, tendrás que jugar con las opciones para obtener resultados correctos.
netstat
está en desuso en muchos sistemas yss
debe usarse en su lugar.ss
no está incluidoComo
net-tools
está en desuso , puede usar elss
comando en lugar denetstat
sinetstat
no está presente en su máquina:debería funcionar de manera similar a
De acuerdo con la ayuda incorporada:
fuente
Este comando enumerará los puertos de red abiertos y los procesos que los poseen:
netstat -lnptu
luego puede filtrar los resultados a sus especificaciones exactas.
También puede usar
nmap
para obtener resultados más granulares sobre los puertos.fuente
sudo netstat -lnptu
Todos los puertos abiertos, incluido el tráfico de respuesta:
fuente
netstat -tuwanp4 | awk '{print $4}' | grep ':' | cut -d ":" -f 2 | sort | uniq
Mi opinión sobre la pregunta original era que estaba preguntando sobre los puertos no utilizados, no sobre los puertos actualmente conectados a los servicios. Si este es el caso, no hay una forma específica de enumerarlos, aparte de enumerar los puertos utilizados y asumir que los demás no están en uso.
Un punto adicional a tener en cuenta: como usuario, no podrá abrir un puerto inferior a 1024 (necesitará permisos de root para eso).
fuente
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:
Si solo quiere IPv6:
Si quieres los dos juntos:
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:
fuente
Tratar
y mira esto.
fuente