-- TOC --
ss命令是一个比netstat命令新,同样是用来查看系统socket信息的命令。
$ ss -ta
-t
,tcp
-a
,all,包括了LISTEN,TIME-WAIT,不用此参数,仅显示ESTAB连接
-u
,udp
-w
,raw socket
-0
,package socket
$ sudo ss -t4nlp
-4
,IPv4
-n
,不要做DNS查询,直接显示ip地址和port number
-l
,listen
-p
,process,此时带上sudo
,进程信息才能完整显示。
ss命令和netstat的区别
$ netstat -tnl4
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:54321 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:18962 0.0.0.0:* LISTEN
$ ss -tnl4
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:*
LISTEN 0 128 127.0.0.1:54321 0.0.0.0:*
LISTEN 0 128 0.0.0.0:18962 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
netstat命令显示出来的LISTEN状态的socket的Send-Q
全是0,而ss命令显示出来的数字看起来还不错。(难道要开始怀疑netstat命令的可靠性?!)
对于LISTEN状态的socket
listen接口调用时,如果不写参数,默认的backlog是128。也可以用ss命令来发现这个默认值。默认的somaxconn为4096,如果传入的backlog值超过了somaxconn,没有任何错误提示,直接使用somaxconn。
本文链接:https://cs.pynote.net/net/tcp/202205173/
-- EOF --
-- MORE --