Следующая команда будет работать на любом Unix, который выводит в том же формате, что и Ubuntu / Debian - где локальный адрес находится в колонке 4, а вывод включает 2 заголовка строки сверху. Если любой из этих номеров отличается, подкорректируйте команду awk ниже.
Если вы хотите только IPv4:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq
Если вы хотите только IPv6:
netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq
Если вы хотите и то, и другое вместе:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq
Команда выводит список номеров переноса, которые прослушиваются на всех интерфейсах. Если вы хотите перечислить все порты, которые прослушивают на локальном хост-интерфейсе, то используйте что-то вроде этого:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq