O comando a seguir funcionará em qualquer Unix que saia no mesmo formato que Ubuntu / Debian - onde o endereço local está na coluna 4 e a saída inclui um cabeçalho de 2 linhas na parte superior. Se um desses números for diferente, ajuste o comando awk abaixo.
Se você deseja apenas IPv4:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq
Se você deseja apenas IPv6:
netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq
Se você quer os dois juntos:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq
O comando gera uma lista de números de porta que estão escutando em todas as interfaces. Se você deseja listar todas as portas que estão escutando na interface localhost, use algo como isto:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq
netstat
está obsoleto em muitos sistemas ess
deve ser usado.