Показать все открытые порты (netstat)

Вспоминая проблему с  jboss 7 «Caused by: java.net.BindException: Address already in use: bind» заметка будет вполне не лишней.

содержание

netstat

Команда netstat умеет показывать сетевые соединения (входящие/исходящие), таблицу маршрутизации, статистику по сетевым интерфейсам и т.д.

Список всех открытых портов (TCP)
netstat -at

Список всех открытых портов (UDP)
netstat -au

Список только прослушиваемых портов (TCP)
netstat -lt

Статистика по всем открытым портам
netstat -s

Подробное отображение списка с открытыми портами — добавлен PID и имя процессов
netstat -p

Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)
netstat -ltupn

Список подключенных хостов
netstat -lantp | grep ESTABLISHED |awk '{print $5}' | awk -F: '{print $1}' | sort -u

ss

Утилита ss позволяет просматривать информацию об используемых сокетах в системе. Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.

Список процессов, использующие соединения в данный момент
ss -p

Список сокетов в режиме прослушивания
ss -l

Пример фильтра — список всех соединений к порту 80
ss -o state established '( dport = :www or sport = :www )'

lsof

Утилита lsof умеет отображать процессы, которые работают с определенным файлом или сокетом.

Список всех сетевых соединений
lsof -i

Список процессов, работающих с портом 80
lsof -i :80

netcat

Утилита netcat позволяет передавать/принимать данные через TCP/UDP соединения.

Шаблон вызова утилиты
nc host port

Откроем прием (ключ -l) данных на порте 1234 с подробным выводом информации (ключ -v) и продолжением работы после разрыва соединения (ключ -k), по-умолчанию nc разрывает соединение после первого дисконекта.
nc -lvk 1234

Подключаемся к открытому порту и отправим import antigravity 😉
nc 127.0.0.1 1234
import antigravity

Пример более полезного использования nc — передача файла. На принимающей стороне
nc -l 1234 > file

На отправляющей стороне
nc localhost 1234 < file

Или можно отдавать файл любому подключившемуся. На передающей стороне
nc -l 1234 < file

На принимающей стороне
nc localhost 1234 > file

Пример открытия shell’а на определенном порте (источник). На стороне, где нужно открыть шел
mkfifo /tmp/pipe;
sh /tmp/pipe | nc -l 1234 > /tmp/pipe

Еще один полезный пример с netcat — запуск процесса, с возможностью отслеживания его работы через сеть
watch w | nc localhost 1234

Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x