Есть ли какая-либо команда командной строки или любой другой способ найти и перечислить занятые и свободные номера портов на моем компьютере с Linux?
источник
Есть ли какая-либо команда командной строки или любой другой способ найти и перечислить занятые и свободные номера портов на моем компьютере с Linux?
Команда
netstat -antu
покажет все используемые порты tcp и udp. Вывод будет выглядеть примерно так:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN
Число после двоеточия в поле Local Address указывает используемый порт. Если состояние «LISTEN», это означает, что порт используется для входящих соединений. Если IP - адрес в Local Address
поле 0.0.0.0
означает входящие соединения будут приниматься на любой IP - адрес , назначенный на интерфейс - так это средство от соединения инициирующего снаружи аппарата.
Если бы он сказал, localhost
или 127.0.0.1
он будет только принимать соединения с вашей машины.
Кроме того, если вы добавите -p
параметр и запустите его как root, он покажет процесс, который открыл порт:
$ sudo netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN 860/rpc.statd
Все, что не отображается как используемое, является бесплатным, однако пользователи (непривилегированные учетные записи) могут открывать только порты выше 1023.
-antu
можно записать как-tuna
🐟Я сам составил небольшой список .
Некоторые из моих любимых:
источник
Хороший и надежный способ проверки открытых портов - использование
ss
(замена устаревшихnetstat
), его можно использовать в сценарии, не требуя повышенных привилегий (тsudo
. Е. ).Использование: опция
-l
для прослушивания портов, опция-n
для обхода разрешения DNS и фильтра на порте источникаNN
:src :NN
(заменитеNN
на порт, который вы хотите отслеживать). Для получения дополнительной информации см.man ss
Примеры:
И в скрипте, используя grep, мы можем проверить, содержит ли вывод запрашиваемый порт. Пример с портом 80 в использовании (см. Выше):
Пример с портом 81 не используется (см. Выше)
источник
По-другому:
Если порт свободен, вы получите ошибку. Если порт используется, telnet подключится.
(находится на http://www.unix.com/unix-for-dummies-questions-and-answers/8456-how-know-whether-particular-port-number-free-not.html )
источник