Ss
iproute2 ss - 排除綁定到環回地址的套接字
我經常看一下監聽套接字
ss -nlptu
,這個列表通常包括幾個/十幾個綁定在 ipv4 或 ipv6 環回地址上的套接字。我們知道有一些有效的 ipv4 環回地址可以綁定,所以如果可以避免的話,我寧願不使用 grep 之類的東西來排除最常見的地址。有沒有辦法
ss
從其列表中排除本地/環回偵聽埠?
ss
有一個內置的過濾器語言,可惜它在手冊頁中幾乎沒有記錄。本文件的最後剩餘部分位於iproute2版本 v4.13.0 中,並在此送出中被刪除:目前版本在手冊頁上有詳細記錄。乳膠文件很舊,從未更新過。
一旦編譯/分發,該文件
ss.sgml
可能會以其他格式出現。這是一個例子:
<item>A. Address/port match, where address is checked against mask and port is either wildcard or exact. It is one of: <tscreen><verb> dst prefix:port src prefix:port src unix:STRING src link:protocol:ifindex src nl:channel:pid </verb></tscreen> Both prefix and port may be absent or replaced with <tt/*/, which means wildcard. UNIX socket use more powerful scheme matching to socket names by shell wildcards. Also, prefixes unix: and link: may be omitted, if address family is evident from context (with option <tt/-x/ or with <tt/-f unix/ or with <tt/unix/ keyword) <p>
所以如果你想排除任何環回地址,你可以這樣做:
ss -nlptu '! src 127.0.0.0/8 and ! src [::1]'
引號實際上只是因為 IPv6 地址格式而需要,但是一旦使用引號,最好引用所有內容。