What are the differences between lsof and netstat on linux?

LSOF: List of Open Files. It lists all the open files belonging to all active processes.

Examples:

sudo lsof -n -i
sudo lsof -n -i4
sudo lsof -n -i :80 
  • -n inhibits the conversion of network numbers to host names for network files. Inhibiting conversion may make lsof run faster. It is also useful when host
    lookup is not working properly
  • -i selects the listing of files any of whose Internet address matches the address specified in i. If no address is specified, this option selects the listing of all Internet and x.25 (HP-UX) network files. If -i4 or -i6 is specified with no following address, only files of the indicated IP version, IPv4 or IPv6, are displayed.

NETSTAT: It is a tool to get the network statistics. By default, netstat displays a list of open sockets. If you don't specify any address families, then the active sockets of all configured address families will be printed.

Displays the kernel routing tables:

netstat -r 

Display all listening and established connection for both TCP and UDP with PID data:

netstat -plunt

Additionally, You have another command line tool to use which is SS.

SS: It is used to dump socket statistics. It allows showing information similar to netstat. It can display more TCP and state information than other tools.

-plunt gives data for the TCP and UDP connections which are established and listening with process information:

sudo ss -plunt

I faced a similar issue today. The solution was to run the lsof command with sudo privileges.

sudo lsof -i:8086 

should print the desired output.