skip to primary navigationskip to content

Service detection on a Linux box with netstat

The lsof program is available for all Unix platforms and its use is described in the Unix Support web page Service detection on a Unix box. However, for a Linux box there is a different solution. The GNU netstat program has been extended so that in addition to showing network activity, it can show what program is responsible for each. This page illustrates the extnded use of the netstat program.

So, how do we determine what listeners are active on a system and what's responsible for them?

# netstat --all --programs

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 hydra.csi.cam.ac.uk:743 griffin.csi.cam.a:32771 TIME_WAIT   -                   
tcp        1      0 hydra.csi.cam.ac.u:2578 wwwcache.cam.a:webcache CLOSE_WAIT  12843/netscape-comm 
tcp        1      0 hydra.csi.cam.ac.u:2575 wwwcache.cam.a:webcache CLOSE_WAIT  12843/netscape-comm 
tcp        1      0 hydra.csi.cam.ac.u:2574 wwwcache.cam.a:webcache CLOSE_WAIT  12843/netscape-comm 
tcp        1      0 hydra.csi.cam.ac.u:2571 wwwcache.cam.a:webcache CLOSE_WAIT  12843/netscape-comm 
tcp        0      0 hydra.csi.cam.ac.u:1021 nymph.csi.cam.ac.uk:ssh ESTABLISHED 14431/slogin        
tcp        0      0 hydra.csi.cam.ac.u:1022 libra.cus.cam.ac.uk:ssh ESTABLISHED 1174/slogin         
tcp        0      0 hydra.csi.cam.ac.u:1023 libra.cus.cam.ac.uk:ssh ESTABLISHED 1056/slogin         
tcp        0      0 *:X                     *:*                     LISTEN      880/X               
tcp        0      0 *:www                   *:*                     LISTEN      793/httpd           
tcp        0      0 *:printer               *:*                     LISTEN      620/lpd Waiting     
tcp        0      0 *:ssh                   *:*                     LISTEN      599/sshd            
tcp        0      0 *:login                 *:*                     LISTEN      590/xinetd          
tcp        0      0 *:auth                  *:*                     LISTEN      540/identd          
tcp        0      0 *:606                   *:*                     LISTEN      425/ypbind          
tcp        0      0 *:1024                  *:*                     LISTEN      394/rpc.statd       
tcp        0      0 *:sunrpc                *:*                     LISTEN      367/portmap         
udp        0      0 *:693                   *:*                                 425/ypbind          
udp        0      0 *:799                   *:*                                 -                   
udp        0      0 *:800                   *:*                                 -                   
udp        0      0 *:603                   *:*                                 425/ypbind          
udp        0      0 *:1025                  *:*                                 394/rpc.statd       
udp        0      0 *:994                   *:*                                 394/rpc.statd       
udp        0      0 *:1024                  *:*                                 -                   
udp        0      0 *:sunrpc                *:*                                 367/portmap         
raw        0      0 *:icmp                  *:*                     7           -                   
raw        0      0 *:tcp                   *:*                     7           -                   
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  1      [ ]         STREAM     CONNECTED     1561   1056/slogin         @0000006a
unix  1      [ ]         STREAM     CONNECTED     935    881/gdm             @00000037
unix  1      [ ]         STREAM     CONNECTED     1563   931/gnome-smproxy   @0000006b
unix  0      [ ACC ]     STREAM     LISTENING     1473   1018/gmc            /tmp/orbit-rjd4/orb-16644743141280678577
unix  1      [ ]         STREAM     CONNECTED     938    880/X               @00000038
unix  0      [ ACC ]     STREAM     LISTENING     933    880/X               /tmp/.X11-unix/X0
unix  9      [ ]         DGRAM                    418    342/syslogd         /dev/log
unix  1      [ ]         STREAM     CONNECTED     1476   1018/gmc            @0000005b
unix  0      [ ACC ]     STREAM     LISTENING     1405   1016/panel          /tmp/orbit-rjd4/orb-18466757051582699047
unix  0      [ ACC ]     STREAM     LISTENING     745    657/gpm             /dev/gpmctl
unix  1      [ N ]       STREAM     CONNECTED     23527  12843/netscape-comm @000002ed
unix  1      [ ]         STREAM     CONNECTED     1470   1018/gmc            @0000005a
unix  1      [ ]         STREAM     CONNECTED     962    881/gdm             @0000003c
unix  1      [ ]         STREAM     CONNECTED     1522   931/gnome-smproxy   @00000068
unix  1      [ ]         STREAM     CONNECTED     1468   1018/gmc            @00000059
unix  0      [ ACC ]     STREAM     LISTENING     1361   1012/gnome-name-ser /tmp/orbit-rjd4/orb-12329789821369630643
unix  0      [ ACC ]     STREAM     LISTENING     1053   935/sawfish         /tmp/.sawmill-rjd4/hydra.csi.cam.ac.uk:0.0
unix  0      [ ACC ]     STREAM     LISTENING     899    841/xfs             /tmp/.font-unix/fs7100
unix  1      [ ]         STREAM     CONNECTED     1518   1033/xterm          @00000067
unix  1      [ ]         STREAM     CONNECTED     1483   1026/deskguide_appl @0000005c
unix  0      [ ACC ]     STREAM     LISTENING     1020   895/gnome-session   /tmp/.ICE-unix/895
unix  0      [ ACC ]     STREAM     LISTENING     1488   1026/deskguide_appl /tmp/orbit-rjd4/orb-2127459101746060649
unix  1      [ ]         STREAM     CONNECTED     1400   1016/panel          @00000057
unix  1      [ ]         STREAM     CONNECTED     28820  14408/xterm         @00000386
unix  1      [ ]         STREAM     CONNECTED     1559   1056/slogin         @00000069
unix  0      [ ACC ]     STREAM     LISTENING     1504   1028/tasklist_apple /tmp/orbit-rjd4/orb-269828951439015599
unix  1      [ ]         STREAM     CONNECTED     1491   1026/deskguide_appl @0000005e
unix  1      [ ]         STREAM     CONNECTED     1408   1016/panel          @00000058
unix  1      [ ]         STREAM     CONNECTED     1293   935/sawfish         @00000047
unix  1      [ ]         STREAM     CONNECTED     29151  931/gnome-smproxy   @0000038f
unix  1      [ ]         STREAM     CONNECTED     28825  931/gnome-smproxy   @00000387
unix  1      [ ]         STREAM     CONNECTED     1388   1014/xscreensaver   @00000055
unix  1      [ ]         STREAM     CONNECTED     1048   935/sawfish         @00000046
unix  1      [ ]         STREAM     CONNECTED     29146  14535/xterm         @0000038e
unix  1      [ ]         STREAM     CONNECTED     1877   1153/xterm          @00000074
unix  1      [ ]         STREAM     CONNECTED     1507   1028/tasklist_apple @00000063
unix  1      [ ]         STREAM     CONNECTED     1398   1016/panel          @00000056
unix  1      [ ]         STREAM     CONNECTED     1881   931/gnome-smproxy   @00000075
unix  1      [ ]         STREAM     CONNECTED     1513   1016/panel          @00000066
unix  1      [ ]         STREAM     CONNECTED     1511   1028/tasklist_apple @00000065
unix  1      [ ]         STREAM     CONNECTED     1029   931/gnome-smproxy   @00000043
unix  1      [ ]         STREAM     CONNECTED     1494   1026/deskguide_appl @00000060
unix  1      [ ]         STREAM     CONNECTED     1027   931/gnome-smproxy   @00000042
unix  0      [ ]         STREAM     CONNECTED     252    1/init [5]          @00000024
unix  1      [ ]         STREAM     CONNECTED     1646   1056/slogin         @00000070
unix  1      [ ]         STREAM     CONNECTED     1022   895/gnome-session   @00000041
unix  1      [ ]         STREAM     CONNECTED     25707  13666/xterm         @00000305
unix  1      [ ]         STREAM     CONNECTED     1648   931/gnome-smproxy   @00000071
unix  1      [ ]         STREAM     CONNECTED     1502   1028/tasklist_apple @00000062
unix  1      [ ]         STREAM     CONNECTED     25711  931/gnome-smproxy   @00000306
unix  1      [ ]         STREAM     CONNECTED     1497   1016/panel          @00000061
unix  1      [ ]         STREAM     CONNECTED     1355   1012/gnome-name-ser @00000050
unix  1      [ ]         STREAM     CONNECTED     29152  895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     29147  880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     28826  895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     28821  880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     25712  895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     25708  880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     23528  880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1882   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1878   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1649   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1647   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1564   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1562   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1560   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1523   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1519   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1515   1028/tasklist_apple /tmp/orbit-rjd4/orb-269828951439015599
unix  1      [ ]         STREAM     CONNECTED     1512   1016/panel          /tmp/orbit-rjd4/orb-18466757051582699047
unix  1      [ ]         STREAM     CONNECTED     1508   1012/gnome-name-ser /tmp/orbit-rjd4/orb-12329789821369630643
unix  1      [ ]         STREAM     CONNECTED     1503   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1499   1026/deskguide_appl /tmp/orbit-rjd4/orb-2127459101746060649
unix  1      [ ]         STREAM     CONNECTED     1496   1016/panel          /tmp/orbit-rjd4/orb-18466757051582699047
unix  1      [ ]         STREAM     CONNECTED     1492   1012/gnome-name-ser /tmp/orbit-rjd4/orb-12329789821369630643
unix  1      [ ]         STREAM     CONNECTED     1484   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1477   1012/gnome-name-ser /tmp/orbit-rjd4/orb-12329789821369630643
unix  1      [ ]         STREAM     CONNECTED     1471   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1469   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1409   1012/gnome-name-ser /tmp/orbit-rjd4/orb-12329789821369630643
unix  1      [ ]         STREAM     CONNECTED     1401   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1399   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1389   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1356   880/X               /tmp/.X11-unix/X0
unix  0      [ ]         DGRAM                    1354   1012/gnome-name-ser 
unix  1      [ ]         STREAM     CONNECTED     1294   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1049   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1030   895/gnome-session   /tmp/.ICE-unix/895
unix  1      [ ]         STREAM     CONNECTED     1028   880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     1023   880/X               /tmp/.X11-unix/X0
unix  0      [ ]         DGRAM                    964    881/gdm             
unix  1      [ ]         STREAM     CONNECTED     963    880/X               /tmp/.X11-unix/X0
unix  1      [ ]         STREAM     CONNECTED     939    841/xfs             /tmp/.font-unix/fs7100
unix  1      [ ]         STREAM     CONNECTED     941    880/X               /tmp/.X11-unix/X0
unix  0      [ ]         DGRAM                    879    816/crond           
unix  0      [ ]         DGRAM                    663    590/xinetd          
unix  0      [ ]         DGRAM                    618    540/identd          
unix  0      [ ]         DGRAM                    575    487/automount       
unix  0      [ ]         DGRAM                    505    409/apmd            
unix  0      [ ]         DGRAM                    474    394/rpc.statd       
unix  0      [ ]         DGRAM                    433    352/klogd           

Now that was every single network connection on the system. We are only interested in the listeners. These show up as *: followed by the port number or service name if known. If we look for those lines containing *: we can restrict output to just the listeners.

# netstat --all --programs | grep '*:'
tcp        0      0 *:X                     *:*                     LISTEN      880/X               
tcp        0      0 *:www                   *:*                     LISTEN      793/httpd           
tcp        0      0 *:printer               *:*                     LISTEN      620/lpd Waiting     
tcp        0      0 *:ssh                   *:*                     LISTEN      599/sshd            
tcp        0      0 *:login                 *:*                     LISTEN      590/xinetd          
tcp        0      0 *:auth                  *:*                     LISTEN      540/identd          
tcp        0      0 *:606                   *:*                     LISTEN      425/ypbind          
tcp        0      0 *:1024                  *:*                     LISTEN      394/rpc.statd       
tcp        0      0 *:sunrpc                *:*                     LISTEN      367/portmap         
udp        0      0 *:693                   *:*                                 425/ypbind          
udp        0      0 *:799                   *:*                                 -                   
udp        0      0 *:800                   *:*                                 -                   
udp        0      0 *:603                   *:*                                 425/ypbind          
udp        0      0 *:1025                  *:*                                 394/rpc.statd       
udp        0      0 *:994                   *:*                                 394/rpc.statd       
udp        0      0 *:1024                  *:*                                 -                   
udp        0      0 *:sunrpc                *:*                                 367/portmap         
raw        0      0 *:icmp                  *:*                     7           -                   
raw        0      0 *:tcp                   *:*                     7           -                   

netstat identifies the program and the process id in the final column. The other columns are not relevant to this discussion. Note that all the services that are started up by inetd are identified as such.