Как посмотреть все занятые порты в Arch Linux

Всех приветствую на своем сайте! Думаю, многие сисадмины сталкивались с тем, что если у них на сервере установлено много сервисов, то и множество портов тоже начинают быть заняты. и чтобы не гадать, какие порты к чему принадлежат, в Arch есть возможность вывести все занятые порты удобным списком.

Команды для вывода списка занятых портов в Arch Linux

В Arch Linux есть несколько вариантов вывести списки занятых портов. Выбирайте то, что будет удобнее для вас.

Способ 1: смотрим порты через встроенный ss

ss — это встроенный в Arch инструмент, который показывает активные слушающие порты, имя процесса и сам номер порта.
Для этого введите в терминале вот эту команду, а затем подтвердите пароль от вашей системы:

sudo ss -tulnp | awk 'NR>1 {print $5, $7}' | column -t

Скриншотом выше вы увидите вывод данной команды.

Если вам нужно посмотреть список попроще, вроде Порт:Имя, для этого можно использовать вот эту команду:

sudo ss -tulnp | awk 'NR>1 {split($5,a,":"); split($7,b,"\""); print a[length(a)] "\t" (b[2] ? b[2] : $7)}' | sort -n -u | column -t -s $'\t'

Важно: Команда sudo нужна обязательно, так как в противном случае утилита не сможет показать системные процессы или процессы других пользователей, если таковые имеются в системе и выведет вместо них пустоту.

Как видите, теперь список портов и процессов показаны более компактно.

Способ 2: Смотрим порты через lsof

При желании можно поставить специальную утилиту lsof, которая выведет удобную таблицу без лишего хлама.
Для установки утилиты используйте команду:

sudo pacman -S lsof

После установки введите:

sudo lsof -i -P -n | grep LISTEN | awk '{print $1, $9}' | column -t

После этого список будет выведен таким образом.

Лайфхак: как сделать короткую команду для вывода портов

Чтобы не вводить каждый раз длинную команду с awk и всем остальным, мы настроим короткую команду всего из одного слова.

Для этого мы добавим новую функцию в конфигурационный файл вашей оболочки (`~/.zshrc` или `~/.bashrc`).

Почему именно функция, а не команда alias? Из-за обилия кавычек в команде терминал у меня выдавал ошибки, выводя «quotes>». Поэтому сделаем надежный вариант, который точно выйдет без возможных ошибок.
В зависимости от вашей оболочки, введите одну из этих команд ниже. Чтобы узнать какая оболочка конкретно у вас, введите echo ~/.${SHELL##*/}rc и команда выведет название вашей оболочки.

Если у вас Zsh:

nano ~/.zshrc

Если у вас Bash:

nano ~/.bashrc

Затем в конец открывшегося файла добавьте следующий блок:

ports() {
sudo ss -tulnp | awk 'NR>1 {split($5,a,":"); split($7,b,"\""); print a[length(a)] "\t" (b[2] ? b[2] : $7)}' | sort -n -u | column -t -s $'\t'
}

Теперь сохраните файл и выйдите из редактора, используя по очереди комбинации клавиш Ctrl+O, Enter, Ctrl+X.

Теперь перезагрузите сеесию вашего терминала с помощью команды source ~/.zshrc или source ~/.bashrc

После этого вам в терминал будет достаточно ввести ports, и команда мгновенно выведет список портов.

Надеюсь, данная статься была полезна! Спасибо за внимание и хорошего дня!

Больше статей про Arch Linux:

Установка VistaThemePlasma на Arch Linux с KDE Plasma

Archinstall: устанавливаем Arch Linux без опыта

И многое другое — здесь

Ответить

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

Mascot