Невеликий скрипт, який розбирає вивід netstat і кидає його на вхід fuser, виводячи досить зручний список відкритих портів та програм, які на них висять. Приклад (з під root-а доступна вся статистика, з під користувача - тільки власна):
[vlisivka@apollo src]$ ls-ports
Opened ports (tcp): 22 25 80 111 127 515 631 3128 3306 5335 5900 7830 7883 8009 8080 32768 38827
USER PID ACCESS COMMAND
5900/tcp vlisivka 4712 f.... vino-server
7830/tcp vlisivka 5105 f.... spamd
vlisivka 5107 f.... spamd
vlisivka 5108 f.... spamd
vlisivka 5109 f.... spamd
vlisivka 5110 f.... spamd
vlisivka 5111 f.... spamd
38827/tcp vlisivka 4810 f.... skype
Opened ports (udp): 111 123 631 835 3130 4920 5353 32768 32769 32770 32775 38827
USER PID ACCESS COMMAND
4920/udp vlisivka 4919 f.... evolution-excha
32770/udp vlisivka 4810 f.... skype
32775/udp vlisivka 4810 f.... skype
38827/udp vlisivka 4810 f.... skype
Код скрипта:
[vlisivka@apollo src]$ cat `which ls-ports`
#!/bin/sh
# (c) 2003-2005 Volodymyr M. Lisivka
# Small script to list all opened server ports and programs bound to them.
# Author: Volodymyr M. Lisivka <lvm@mystery.lviv.net>
# License: GPL
PROT=tcp
PORTS=`netstat -an|grep $PROT | grep LISTEN |
perl -ane '$F[3]=~/:([0-9]+)/ && print $1."\n";'|sort -nu`
echo
echo "Opened ports ($PROT):" $PORTS
/sbin/fuser -vun $PROT $PORTS | grep -v "here:"
PROT=udp
PORTS=`netstat -an|grep $PROT |
perl -ane '$F[3]=~/:([0-9]+)/ && print $1."\n";'|sort -nu`
echo
echo
echo "Opened ports ($PROT):" $PORTS
/sbin/fuser -vun $PROT $PORTS | grep -v "here:"