我无法理解 Linux 的输出ss
(套接字统计信息)命令。我无法理解ss -s
例如:
[root@dls2304-1 ~]# ss -s
Total: 973 (kernel 996)
TCP: 600 (estab 280, closed 73, orphaned 0, synrecv 0, timewait 0/0), ports 333
Transport Total IP IPv6
* 996 - -
RAW 1 1 0
UDP 157 128 29
TCP 527 512 15
INET 685 641 44
FRAG 0 0 0
我的问题:
是什么Total: 973 (kernel 996)
意思? 是什么Total
和是什么kernel
? 为什么Total
看起来比小kernel
?
在这一行中TCP: 600 (estab 280, closed 73, orphaned 0, synrecv 0, timewait 0/0), ports 333
,这个词的ports
意思是什么?
和这个:
Transport Total IP IPv6
* 996 - -
星号 ( *
) 代表什么意思?
它们超出了我的理解范围。我找不到有关ss
命令输出规范的文档。你能帮我吗?
答案1
首先,我要明确说明,我这个答案真的是“即兴发挥”。作为一名系统管理员,我有网络经验,但我的网络知识不如大多数人那么深厚。所以希望我能回答正确。如果有人比我更了解,请评论甚至编辑以纠正。
当你运行ss
(套接字统计信息)命令,带有-s
显示套接字状态的标志。因此知道:
是什么
Total: 973 (kernel 996)
意思? 是什么Total
和是什么kernel
? 为什么Total
看起来比小kernel
?
据我所知,系统套接字在使用后不会立即过期。因此据我所知,它973
反映了总活动套接字数减去过期套接字数,但996
连接到内核的套接字数包括23
内核尚未清理的剩余杂散套接字。这个关于内核调优的页面提供了很好的概述内核如何处理套接字以及如何调整系统以便在内核级别更好地管理套接字的概念。
在这一行中
TCP: 600 (estab 280, closed 73, orphaned 0, synrecv 0, timewait 0/0), ports 333
,这个词的ports
意思是什么?
只是ports 333
对系统上特定时刻所有端口活动的统计。匹配和333
的总和。有关这些端口的详细信息将总结在该列表下方。但在套接字的上下文中,该行基本上表明有可用的套接字,其中,以某种方式与系统上的端口相关联。有关套接字与端口的更多详细信息,请阅读此优秀答案estab 280
closed 73
600
600
333
堆栈溢出。
星号 (
*
) 代表什么意思?
在示例上下文中,您展示:
Transport Total IP IPv6
* 996 - -
看到996
内核总计了吗Total: 973 (kernel 996)
?这*
与内核级别的套接字相关,无论其传输层如何,都只是打开/管理套接字。
但话虽如此,是的......这对于新手来说相当令人困惑。