如何在 ss 输出中不显示 localhost?

如何在 ss 输出中不显示 localhost?

当我打字时,ss -atur我得到了很多联系,但大多数都是注定的localhost,而我并不真正关心这些。

如何过滤输出以不显示与目的地的连接localhost

我尝试过ss -atur '(dst ne localhost)'但得到了Error: an inet prefix is expected rather than "(dst".。没有括号我得到ss: bison bellows (while parsing filter): "syntax error!" Sorry.

我能做的最好的事情就是通过管道连接到 grep,但这无法区分localhost源与目标(没有复杂的正则表达式模式)。

答案1

足够的语法是:

ss -atur '! dst localhost'

虽然我宁愿使用(注意括号和关键字之间的空格):

ss -atur '! ( dst 127.0.0.1 or dst [::1] )'

使用本地主机似乎有一个奇怪的行为:虽然它在 中按预期工作ss -atru '! dst localhost',但当不在否定中时,它似乎默认为 IPv4,除非用于ss -6显示 IPv6 或ss -46显示两者:我本来期望默认值是显示两者。

文档有点缺乏,正如中提到的这个问答。还有一些例子在 man 中,但是这个页面(可能使用旧的已删除文档)更有用:

https://www.cyberciti.biz/files/ss.html

(也可以在那里找到:http://linux-ip.net/gl/ss/ss-node5.html但上面的一页格式似乎更有用)

相关内容