Linux

netstat 持續刷新(觀察改變輸出)

  • August 10, 2021

我正在使用這個簡單的命令來監視我的 Debian 伺服器上的連接(以處理最近的一些 DoS 攻擊):

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

我如何連續執行它?所以它會每分鐘刷新一次(當然也可以是任何給定的時間)。我試過手錶:

watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n"

但是它將輸出從帶有連接數的漂亮列表更改為如下所示:

1 tcp        0  10015 [LOCAL IP]
...
1 Proto Recv-Q Send-Q Local Address           Foreign Address         State
1 Active Internet connections (w/o servers)

所以沒有顯示外部IP。有什麼我錯過的嗎?

這是原始輸出的樣子:

 2 [IP ADDRESS]
 4 [IP ADDRESS]
 4 [IP ADDRESS]
 4 [IP ADDRESS]
 7 [IP ADDRESS]
16 [IP ADDRESS]
71 [IP ADDRESS]

當我說[LOCAL IP]我的意思是我的機器的IP。

當我用它執行它時,-c它會凍結。

netstat -c

如果我沒有誤解您的問題,可能會對您有所幫助。-c 代表–連續。

編輯:你去:

watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

我在 $ 之前添加了一個 \。

搜尋 macos 的命令到此結束。對於那些想要查看程序實時連接的 mac 使用者:

nettop -p 60683

您還可以限制介面類型,如 wifi 或有線…

nettop -t wifi -n -p 60683

引用自:https://serverfault.com/questions/398234