netstat ss lsof netcat 002

Утилиты netstat, ss, lsof и netcat относится к сетевым приложениям, они доступны по-умолчанию в официальных хранилищах пакетов большинства GNU Linux систем.

netstat ss lsof netcat 003

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

netstat ss lsof netcat 004

Список всех открытых портов (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

netstat ss lsof netcat 005

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

netstat ss lsof netcat 006

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

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

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

netstat ss lsof netcat 007

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

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


netstat ss lsof netcat 008

netstat ss lsof netcat 009

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

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

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

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

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

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

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

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

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

Запуск процесса, с возможностью отслеживания его работы через сеть:
watch w | nc localhost 1234

netstat ss lsof netcat 010