Как стать автором
Обновить

Комментарии 13

Уже пару лет пользуюсь этим инструментом. Во всех современных дистрибутивах netstat уже выпили по умолчанию.
НЛО прилетело и опубликовало эту надпись здесь

Стоит отменить полезный флаг -p, который позволит узнать какому-же все-таки процессу принадлежит соединение.
Итого обычно нужны ss -tp и ss -tl

Он ублюдский. Вывод ss с этим флагом даже не имеет заголовка. Пишет кучу ненужного текста, типа users((«vsftpd»,pid=2306,fd=3)) ЗАЧЕМ?? netstat -tnlp против ss даст заголовок PID/Program name и напишет 2306/vsftpd Нормально, лаконично, нет ненужных символов. ss вместо 0.0.0.0 выводит *. Из-за этого мы имеем на экране не ровную таблицу со всей необходимой информацией, а широкую простыню которую можно читать только через less. При этом информации в ss -tnlp и netstat -tnlp будет одинаково, только вывод ss нечитаемый от слова совсем. Нафига козе боян?
Может не по глазам, но никак не могу понять как с помощью ss посмотреть кто занял определенный порт и какие порты слушает определенный процесс?
netstat -nlpt|grep 443
netstat -nlpt|grep apache2
Благодарю! То что нужно!

Узнать, кто занял порт, можно одной из следующих команд:


ss -p state listening '( sport = :443 )'
ss -tlp '( sport = :443 )'
ss -p state listening '( sport = :http or sport = :https )'

Процесс:


ss -4tlp | grep nginx

Можно ещё добавить:


ss -tlp '( sport = :443 )' | tr -d '\t'

если на дисплее не помещается :-)

Ну в принципе сойдет. Но в выводе либо порт, либо процесс. netstat более нагляден, что ли.
В отличие от команды netstat, ss не выводит сведения о PID и имени команды, ответственной за конкретное соединение.

Дык netstat тоже по умолчанию не выводит этой инфы. Обеим коммандам надо ключ -p передавать для этого. Отличие лишь в формате.

Уже маны начали как статьи оформлять
Читал, думал, «а дай ка напишу», а оказывается многие и не знали. Ну чтож, спасибо за статью.
ЗЫ: Как сказал Merifri, порт вполне можно проверить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий