Understanding the ss Command in Linux: A Modern Tool for Network Analysis

Having the right tools is very important for managing and fixing networks on Linux systems. The ss (socket statistics) command is one of the most powerful and useful tools for looking into sockets, connections, and network statistics. In this post, we’ll talk about what the “ss” command is, what it does, and how to use it in real life.

What is the ss Command?

The ss command is a tool that dumps socket statistics and shows information that is similar to what you would get with the older netstat tool. But “ss” is faster, gives more information, and is now the best way to look at network sockets on modern Linux distributions.

Why Choose ss Over netstat?

While netstat has been a staple for network diagnostics, it is now deprecated in many distributions in favor of ss. Here’s why:

  • Speed: ss leverages /proc files directly, making it significantly faster.
  • Detail: It provides more detailed information about sockets.
  • Active Development: ss is actively maintained, ensuring compatibility with the latest Linux kernels and features.

Basic Syntax

The basic syntax for the ss command is:


ss [options]

You can combine options to tailor the output to your needs.

Common Use Cases and Examples

1. Display All Connections

To display all current TCP, UDP, and Unix socket connections:


ss -a

2. Show Listening Sockets

To list all listening sockets (commonly used by servers):


ss -l

3. Filter by Protocol

To view only TCP connections:


ss -t

For UDP connections:


ss -u

4. Show Process Information

To display the processes using each socket:


ss -p

5. Display Listening TCP Ports with Process Info


ss -ltp

6. Find Connections on a Specific Port

For example, to see connections on port 80:


ss -t state listening '( sport = :80 )'

7. Show All IPv4 and IPv6 Connections


ss -4   # IPv4 only
ss -6   # IPv6 only

Key Options and Flags

  • a: Show all sockets (listening and non-listening)
  • l: Display only listening sockets
  • t: Show TCP sockets
  • u: Show UDP sockets
  • p: Show process using socket
  • n: Don’t resolve service names

Conclusion

The “ss” command is an important tool for anyone who works with Linux systems or networks. It is the modern standard for investigating and fixing socket problems because it is fast, flexible, and has a lot of features. If you learn how to use “ss,” you can quickly see what’s going on with your system’s network and fix connection problems quickly. The ss command should be in your Linux toolkit if you want to debug a service, keep an eye on active connections, or make sure security.

Further Reading:

Asif Khan

Asif Khan

DevOps, Linux, and Cloud engineer with 10+ years building infrastructure that stays up, and automation so I do not have to fix it at 2am. My focus is automation, security, and systems built to survive failure, using Infrastructure as Code, CI/CD, containers, monitoring, and cloud platforms instead of manual fixes. This blog is where I write down what worked, and just as often what didn't the first time around. Real tutorials you can run yourself, troubleshooting notes pulled from actual outages, and the kind of detail you only get once you've hit the problem firsthand. If you're trying to get Linux, DevOps, and cloud infrastructure to behave, that's what you'll find here: reproducible solutions you can understand, test, and apply in your own environment.