August 22
Linux, какой процесс открыл порт
Вставляем содержимое в файл proc.sh:
#!/bin/bash
# Получаем список слушающих портов (TCP и UDP) из netstat
ports=$(netstat -tul | grep -E 'tcp|udp' | awk '{print $4}' | awk -F: '{print $NF}' | sort -u)
# Проверяем, что порты найдены
if [ -z "$ports" ]; then
echo "Не найдено слушающих портов."
exit 1
fi
# Проходим по каждому порту
for port in $ports; do
echo "Порт: $port"
# Проверяем TCP
tcp_pids=$(sudo fuser $port/tcp 2>/dev/null)
if [ ! -z "$tcp_pids" ]; then
echo " TCP:"
for pid in $tcp_pids; do
process_name=$(ps -p $pid -o comm= 2>/dev/null)
if [ ! -z "$process_name" ]; then
echo " PID: $pid, Процесс: $process_name"
else
echo " PID: $pid, Процесс не найден"
fi
done
fi
# Проверяем UDP
udp_pids=$(sudo fuser $port/udp 2>/dev/null)
if [ ! -z "$udp_pids" ]; then
echo " UDP:"
for pid in $udp_pids; do
process_name=$(ps -p $pid -o comm= 2>/dev/null)
if [ ! -z "$process_name" ]; then
echo " PID: $pid, Процесс: $process_name"
else
echo " PID: $pid, Процесс не найден"
fi
done
fi
done