Technology and General Blog

The potential to view and fully grasp network socket connections as they happen in your Linux program can be useful when troubleshooting and having your technique standing.

This tutorial will get you on an in-depth glance at the ss command-line utility that allows us to see network connections and other in-depth data. Applying what you are going to discover from this tutorial, you should really understand and use the ss utility for maximum facts and efficiency.

Let us get started off.

What is ss?

In a nutshell, ss is a command-line utility that will allow consumers to dump network socket data. It is equivalent to the well known netstat device, but it offers extra options and facts than netstat.

Ss lets you to view thorough information and facts on how your equipment communicates with other assets these kinds of as networks, products and services, and community connections.

Employing ss facts, you can clearly recognize what is taking place, when, and how. It can be very useful in the course of the troubleshooting course of action.

Primary Command Usage

Applying the ss command is as straightforward as typing two letters into a terminal and pressing enter. Though it supports a lot of arguments, calling the ss command with no solutions shows data about all connections, irrespective of their point out.

When utilized with no alternatives, the ss command dumps a whole lot of facts you can reference later. To help you save the output to a file, you can use the output redirection operator as revealed in the command:

Note: It is superior to note that working the ss command with and without sudo privileges could give unique outputs—meaning the ss command lists info primarily based on the person context.

Fundamental ss Command Options

As outlined, the ss command supports numerous possibilities that make it possible for you to handle the output and the details shown. You can view the fundamental alternatives employing the command:

Quite a few simple solutions supported by the ss command incorporate:

  1. -V or –version: Permits you to watch the put in model of the ss utility.
  2. -H or –no-header: This flag suppresses the header line. The default header line of the ss command contains the following values: Netid, Condition, Recv-Q, Send out-Q, Nearby Handle:Port, and Peer Tackle:Port. Suppressing the header is practical when you need to have to procedure the ss output applying other resources.
  3. -t or –tcp: Tells ss command to only show the TCP connections.
  4. -a or –all: Shows each listening and non-listening connections.
  5. -e or –extended: Shows supplemental details about a network socket.
  6. -u or –udp: Tells ss command to demonstrate only the UDP connections.
  7. -s or –summary: Displays a summary of the link studies.
  8. -l or –listening: Exhibits listening sockets that are not involved by default.
  9. -p or –process: Displays procedure using a socket.
  10. -4 or –ipv4: Tells ss command to show only IPv4 connections.
  11. -6 or –ipv6: Reveals IPv6 connections only.
  12. -m or –memory: Shows socket memory use.

Though the above are some of the essential arguments you will use when doing the job with ss, it also supports numerous extra choices. Refer to the manual for a lot more info.

Exhibit Listening and Non-Listening Ports

To show info about both equally listening and non-listening ports, you can use the -a flag as revealed in the command under:

You can pipe the output from ss instructions for more distinct information using tools these as grep.

For instance:

Display TCP Connections

Applying the -t flag with the ss command, you can filter to exhibit only TCP connections as revealed in the command below:

To get additional data, you can specify to exhibit listening TCP connections utilizing the -l and -t flag as proven in the command underneath:

Present UDP Connections

To screen all UDP connections, use the -l flag as shown in the command below:

Comprehending the Header Line

As you can see from many outputs furnished in the commands above, ss demonstrates a whole lot of data. It includes the header structure unless explicitly specified utilizing the -H flag, which eliminates the header line.

Comprehension the header line can be handy to exhibit what info is in a unique part. It consists of the next rows:

State, Recv-Q, Send out-Q, Regional Tackle:Port, Peer Deal with:Port

  1. Condition: The Condition row of the header indicates the state of the link, these as Listen, Recognized, Closed, TIME-Wait, etc. This header row is helpful in TCP connections as UDP does not retain track of the state of the packets, earning it a stateless protocol.
  2. Recv-Q: This demonstrates the total quantity of bytes not copied by the program related to the particular socket.
  3. Mail-Q: The depend of bytes that is not ACK by the distant host.
  4. Nearby Deal with:Port: This displays the neighborhood socket and the port range sure to the relationship
  5. Peer Address:Port: Remote socket and port quantity bound for the connection.

Demonstrate Processes

To get the procedure making use of the specific socket, you can use the -p flag as demonstrated in the command underneath:

As shown in the output earlier mentioned, you can see the TCP connections of the approach utilizing the socket, such as its PID.

Filtering by Link (TCP) Point out

As you know, TCP supports many states that we will not go over in this tutorial. On the other hand, you can filter the ss output to get only the connections with the supported TCP states.

sudo ss -t state listening

You will notice the output in the impression shown earlier mentioned does not consist of the state in the header for the reason that we filtered the output employing the specified point out. As a result, only the listening connections are exhibited.


In this tutorial, we reviewed how to use and realize the ss command utility. It is a strong resource when you require to look beyond the listing processes. To recognize how it will work, you can find out more from the official guide.

Contemplate the following resource:

Leave a Reply

Your email address will not be published. Required fields are marked *