Pull to refresh

Comments 13

Уже пару лет пользуюсь этим инструментом. Во всех современных дистрибутивах netstat уже выпили по умолчанию.
UFO just landed and posted this here

Стоит отменить полезный флаг -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, порт вполне можно проверить.
Sign up to leave a comment.