This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Linux - Сетевые решения

Не работает? Начинай читать инструкцию.

Как проверить открытые порты и сетевые соединения в Linux

Определить открыты порты, сетевые соединения, можно несколькими способами с помощью netstat, nmap, lsof, ss, netcat. Давайте рассмотрим примеры.

Предлагаю ознакомиться с предложениями моих партнёров

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

Покажет список всех открытых портов (TCP)

netstat -at

Покажет список всех открытых портов (UDP)

netstat -au

Покажет список только прослушиваемых портов (TCP)

netstat -lt

Покажет статистику по всем открытым портам

netstat -s

Чтобы проверить порт 834

netstat -anp | grep 834

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

netstat -p

Просмотр открытых TCP/UDP портов и имя процесса

netstat -ltupn

Покажет список подключенных хостов

netstat -lantp | grep ESTABLISHED |awk '{print $5}' | awk -F: '{print $1}' | sort -u

nmap - сканер портов

Определит, какие порты ждут TCP-соединений из сети

nmap -sT -O localhost

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

Посмотреть список всех сетевых соединений

lsof -i

Посмотреть список процессов, работающих с портом 80

lsof -i :80

Чтобы проверить порт 834, может связать открытые порты со службами

lsof -i | grep 834

ss - умеет просматривать информацию об используемых сокетах в системе.

Команда ss и netstat схожи по  функционалу. Но ss умеет фильтровать вывод по установленным соединениям с определенным портом.

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

ss -p

Посмотреть список сокетов в режиме прослушивания

ss -l

Привожу пример фильтра - список всех соединений к порту 80

ss -o state established '( dport = :www or sport = :www )'

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

Вот шаблон вызова утилиты

nc host port

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

nc -lvk 2000

Подключаемся к открытому порту и отправим import wizards

nc 127.0.0.1 2000
import wizards

Пример интересного использования nc - это передача файла.

На принимающей стороне

nc -l 2000 > file

На отправляющей стороне

nc localhost 2000 < file

Так же можно отдавать файл любому подключившемуся.

На передающей стороне

nc -l 2000 < file

На принимающей стороне

nc localhost 2000 > file

Вот пример открытия shell'а на определенном порте. На стороне, где нужно открыть шел

mkfifo /tmp/pipe;
sh /tmp/pipe | nc -l 2000 > /tmp/pipe

Еще один интересный пример с netcat - запуск процесса, с возможностью отслеживания его работы через сеть

watch w | nc localhost 2000

Предлагаю ознакомиться с предложениями моих партнёров