目录

Netstat Migrate to Ss Nstat

目录

文章简介:netstat -s 已经废弃,一些机器已经不内置,但 ssnstat 是内置的。本文通过代码描述他俩之间迁移的方法。

netstat -s 读取 /proc/net/netstat,所有参数会由这个 table 对应起来,进而展示 右侧人可读信息。代码见 这里

说结论吧:

例如:

1
2
netstat -s | grep -i 'invalid SYN cookies received'
    87441 invalid SYN cookies received

这里 搜索 invalid SYN cookies received 可以看到如下内容:

1
{"SyncookiesFailed", N_("%llu invalid SYN cookies received"), opt_number},

可以看到 SyncookiesFailed,则对应的更现代的 nstat 对应起来就是:

1
2
nstat -s -za | grep SyncookiesFailed
TcpExtSyncookiesFailed          87441              0.0

结果 87441 可以对应上。

详细 table 见: https://github.com/ecki/net-tools/blob/master/statistics.c#L223

nstat -s -za

nstat -s -za 会直接根据 /proc/net/netstat 中的上下级关系直接拼接 比如:

1
2
3
4
5
6
7
8
9
cat /proc/net/netstat
TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed
TcpExt: 0 0 6248048

netstat -s | grep -i 'SYN cookies received'
    6248058 invalid SYN cookies received

nstat -s -za | grep SyncookiesFailed
TcpExtSyncookiesFailed          6248058            0.0

其中 TcpExtSyncookiesFailed 部分恰好为 TcpExt+SyncookiesFailed

另外 /proc/net/netstat 对应的问题再这里 对应的内核代码在这里

ref