El comando que buscas es sudo lsof -i -n -P | grep LISTEN
.
lsof
por defecto lista todos los archivos abiertos (donde un archivo abierto puede ser "un archivo regular, un directorio, un archivo especial de bloque, un archivo especial de carácter, una referencia de texto en ejecución, una biblioteca, un flujo o un archivo de red (socket de Internet, archivo NFS o socket de dominio UNIX.)" (fuente: lsof man page).
-i
lista todos los archivos de Internet y de la red x.25.
-n
le dice que no resuelva los nombres de host sino que utilice las IPs en su lugar, la resolución de los nombres de host puede llevar mucho tiempo
-P
le dice que no convierta los números de puerto en nombres de puerto (es decir, 80 -> http).
La canalización de esta salida a grep LISTEN
muestra sólo los puertos abiertos que están escuchando conexiones entrantes, si necesita ver todas las conexiones de Internet abiertas, omita esta tubería.
La lista muestra todos los puertos de escucha, sus procesos, pids y usuarios, por lo que puedes rastrear fácilmente los programas desde allí.