When discussing lsof and open files a few weeks ago, I also mentioned that lsof -i will show you information about which IP sockets are open.

lsof is a handy way to check for security problems or keep an eye on how your machines are interacting with the wider internet.

This can be useful in checking for security problems or just to keep an eye on how much your machines are interacting with the wider internet. Here's a little sample output:

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME dhclient 2242 root 6u IPv4 6110 UDP *:bootpc cupsd 2928 root 1u IPv4 260191390 TCP localhost:ipp (LISTEN) mysqld 5763 mysql 4u IPv4 187454609 TCP thisserver.example.com:38530->thatserver.example.com:ldaps (CLOSE_WAIT) sshd 17005 root 3u IPv6 264275196 TCP thisserver.example.com:ssh->thatserver.example.com:53043 (ESTABLISHED)

ps -l 5763

mysql

/proc/5763/

You'll quite often see two reports from a single command, one for TCP and one for UDP . The PID and user is shown for each IP socket, so if you see something suspicious, you can investigate further (e.g., withto get more information on theprocess here, or by looking at).

For a real-time look at what's being opened where, try watch lsof -i (hit Ctrl-C to exit). To check out who's connecting to your web server, specify the port with lsof -i :80 : You'll get a list that shows which IP addresses or hosts are looking at your web server right now. You can also check connections to a particular host with lsof -i@hostname.example.com (or give the IP address instead).