The sys admin's daily grind: socket statistics
Short Cut
Most sys admins use netstat to find out about the status of network sockets, but Charly knows a good shortcut.
A bunch of parameters control the behavior of netstat
. Administrators can also happily combine options so that some netstat
calls look like an armadillo has rolled across the keyboard. With ss
(like socket statistics), there is an even more specific tool for this purpose. It comes from the iproute2 package [1] – just like its siblings bridge
, rtacct
, rtmon
, tc
, ctstat
, lnstat
, nstat
, routef
, routel
, rtstat
, and ip
.
Because a running Linux uses several hundred or more ports, ss
comes with plenty of filters. I mostly need the -t
and -u
parameters, which restrict the results to TCP or UDP sockets. Other parameters limit the list to raw, Datagram Congestion Control Protocol (DCCP), package, and Unix domain sockets.
Caution: The tool only displays TCP sockets for existing connections by default (established
or close_wait
). If I also want to see sockets in the lists
status – as I usually do – I have to type ss -ta
. If I only want the tool to pay attention to listening TCP sockets and suppress all others, I use ss -lt
. If I add -p
here, I can also see which process opened the socket. I need to use root privileges for this; otherwise, -p
has no effect.
Numbers, Please!
A further default is that ss
translates the port numbers from the /etc/services
file into names. I can switch this off using -n
(for numeric). If I want the tool to resolve the IP addresses concerned into names, I just add an -r
. Using -4
and -6
, I can limit it to one of the two TCP/IP versions.
I find it useful to filter by source (sport
) and destination port (dport
). For example,
# ss -natp6 sport = :25 LISTEN 0 100 :::25 :::* users:(("master",27452,13))
shows whether the mail server is listening via IPv6 (yes) and which process is on port 25. Logical links are also okay:
# ss -t4 dport = :443 or dport = :80 ESTAB 0 0 10.0.0.201:53389 10.0.0.118:http
ccze
[2] sorted the coloration in Figure 1, but grc
[3] or rainbow
[4] would have managed it, too.
Charly Kühnast
Charly Kühnast manages Unix systems in the data center in the Lower Rhine region of Germany. His responsibilities include ensuring the security and availability of firewalls and the DMZ.
Buy this article as PDF
(incl. VAT)