Netstat. Ss. Hints
Показать запущенные локальные сетевые службы с портами
Netstat
netstat -luptn
Опции
-a Показывать состояние всех сокетов; обычно сокеты, используемые серверными процессами, не показываются.
-A Показывать адреса любых управляющих блоков протокола, связанных с сокетами; используется для отладки.
-b Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках [ ], сверху - компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
-i Показывать состояние автоматически сконфигурированных (auto-configured) интерфейсов. Интерфейсы, статически сконфигурированные в системе, но не найденные во время загрузки, не показываются.
-n Показывать сетевые адреса как числа. netstat обычно показывает адреса как символы. Эту опцию можно использовать с любым форматом показа.
-r Показать таблицы маршрутизации. При использовании с опцией -s показывает статистику маршрутизации.
-s Показать статистическую информацию по протоколам. При использовании с опцией -r показывает статистику маршрутизации.
-f семейство_адресов Ограничить показ статистики или адресов управляющих блоков только указанным семейством_адресов, в качестве которого можно указывать:
inet Для семейства адресов AF_INET, или unix Для семейства адресов AF_UNIX.
-I интерфейс Выделить информацию об указанном интерфейсе в отдельный столбец; по умолчанию (для третьей формы команды) используется интерфейс с наибольшим объёмом переданной информации с момента последней перезагрузки системы. В качестве интерфейса можно указывать любой из интерфейсов, перечисленных в файле конфигурации системы, например, emd1 или lo0.
-p Отобразить идентификатор/название процесса, создавшего сокет (-p, --programs display PID/Program name for sockets)
Сокеты TCP
CLOSED Закрыт. Сокет не используется.
LISTEN (LISTENING) Ожидает входящих соединений.
SYN_SENT Активно пытается установить соединение.
SYN_RECEIVED Идет начальная синхронизация соединения.
ESTABLISHED Соединение установлено.
CLOSE_WAIT Удаленная сторона отключилась; ожидание закрытия сокета.
FIN_WAIT_1 Сокет закрыт; отключение соединения.
CLOSING Сокет закрыт, затем удаленная сторона отключилась; ожидание подтверждения.
LAST_ACK Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения.
FIN_WAIT_2 Сокет закрыт; ожидание отключения удаленной стороны.
TIME_WAIT Сокет закрыт, но ожидает пакеты, ещё находящиеся в сети для обработки
WINDOWS:
netstat -aon | find /i "listening"
Ss
ss -ln
Посмотреть какой локальный процесс пытается установить соединение с сетевым хостом по определенному порту
Запускаем netstat или ss для прослушивания соединений по порту 4444
watch -n1 "netstat -anp | grep 4444 >> /tmp/log.txt"
-OR-
watch -n1 "ss -anp | grep 4444 >> /tmp/log.txt"
Запускаем curl для установки соединения с внешним хостом по порту 4444
curl http://ya.ru:4444
Смотрим логи
watch "tail /tmp/log.txt"
...
tcp SYN-SENT 0 1 192.168.17.250:56546 77.88.55.242:4444 users:(("curl",pid=21910,fd=3))
tcp SYN-SENT 0 1 192.168.17.250:56546 77.88.55.242:4444 users:(("curl",pid=21910,fd=3))
tcp SYN-SENT 0 1 192.168.17.250:56546 77.88.55.242:4444 users:(("curl",pid=21910,fd=3))
tcp SYN-SENT 0 1 192.168.17.250:56546 77.88.55.242:4444 users:(("curl",pid=21910,fd=3))
...