Как получить список открытых прослушивающих портов и их владельцев в командной строке

alias oports="echo 'User: Command: Port:'; echo '----------------------------' ; lsof -i 4 -P -n | grep -i 'listen' | awk '{print \$3, \$1, \$9}' | sed 's/ [a-z0-9\.\*]*:/ /' | sort -k 3 -n |xargs printf '%-10s %-10s %-10s\n' | uniq"


Команда «alias oports» создает псевдоним «oports» для последующего использования.

Пояснение по команде и ее действиям:
1. «echo ‘user: command: port:'» выводит заголовок с названиями столбцов: «user», «command» и «port».
2. «echo ‘—————————-‘» выводит разделительную строку для улучшения читабельности.
3. «lsof -i 4 -p -n» команда lsof позволяет просмотреть открытые файлы и сокеты процессов. Опция «-i» указывает фильтр на интернет-сокеты, «4» ограничивает список только IPv4-протоколом, «-p» показывает только сокеты/порты, принадлежащие указанным процессам (в данном случае, текущему процессу), а «-n» отключает разрешение имен хостов и портов.
4. «grep -i ‘listen'» фильтрует только те строки, которые содержат слово «listen» (то есть прослушивающие порты).
5. «awk ‘{print \$3, \$1, \$9}'» извлекает и выводит только третье (порт), первое (владелец) и девятое (сокет/файл) поле каждой строки.
6. «sed ‘s/ [a-z0-9\.\*]*:/ /'» удаляет из вывода информацию о хосте и заменяет ее пробелом после порта.
7. «sort -k 3 -n» сортирует вывод по третьему столбцу (порту) в числовом порядке.
8. «xargs printf ‘%-10s %-10s %-10s\n'» форматирует вывод в табличном виде с помощью заданного шаблона.
9. «uniq» удаляет повторяющиеся строки в выводе.

Эта команда полезна, когда необходимо получить список открытых прослушивающих портов и их владельцев. Альтернативным способом может быть использование команды «netstat -tunlp», которая также выводит список открытых портов и информацию о владельцах.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *