Everyone knows probably the `netstat’ command already, so I will only give my favourite options with it (`sudo’ is optional here, but if you want to see the process attached to the socket, you will want to use it):
- List all (TCP) listening sockets:
$ sudo netstat -tlpen
- List all TCP listening sockets and all UDP sockets:
$ sudo netstat -tulpen
- List all sockets (TCP, UDP, Unix, etc.):
$ sudo netstat -apen
Now, you may not know it, but `netstat’ is deprecated. It is still installed on most Linux distribution that I know of, but you should move to its replacement command `ss’. The good thing is that all of the above options are still working with this command for the same results, the output is however differently formatted, hence script using the output of netstat command might get broken.
$ sudo ss -tlpen $ sudo ss -tulpen $ sudo ss -apen
Finally because everything (or almost) is a file on Unix/Linux, you can use the `lsof’ command – which provides listing of open files – to query the list of open sockets. It is yet another method, but I like it because the output is more condensed and contains usually what I want. Thanks to Michael Crosby (@crosbymichael) for sharing his knowledge.
So the first command is listing all IPv4 TCP and UDP sockets:
$ sudo lsof -Pnl +M -i4
The next one does the same thing for IPv6 TCP and UDP sockets:
$ sudo lsof -Pnl +M -i6
The combined output of the previous commands is equivalent to the output of `sudo ss -atupen’.