netstat -atn | perl -ane 'if ( $F[3] =~ /(\d+)$/ ) { $x{$1}=1 } END{ print( (grep {!$x{$_}} 32768..61000)[0] . "\n" )}'
Эта команда использует комбинацию команд netstat и perl для поиска неиспользуемых непривилегированных TCP-портов.
Команда netstat -atn выводит список активных TCP-соединений и портов.
Затем вывод команды передается в команду perl, которая анализирует каждую строку вывода. Если в 3-ем столбце строки найден числовой порт, то он добавляется в хэш-таблицу с ключом равным порту.
По окончании анализа, команда выводит первый неиспользуемый порт в диапазоне от 32768 до 61000.
Альтернативным способом можно воспользоваться командой ss -tunlp для вывода списка TCP-портов и используемых процессов. Затем можно анализировать вывод и искать неиспользуемые порты.
