如何檢查Linux伺服器對網際網路開放的連線數?

如何檢查Linux伺服器對網際網路開放的連線數?

我們遇到的問題是,端點的回應時間對於一台伺服器特別有更多的回應時間,但在其他伺服器上卻沒有。此外,我們發現此問題發生在網路上的所有端點,例如「curl 'ww.google.com'」。更多的分析讓我們知道這種情況只發生在特定的時間。因此,我想知道如何列出主機與網際網路建立的 HTTP 連線。請幫我解決這個問題。

答案1

如果您想列出從本機 Linux 電腦到遠端電腦連接埠 80 上的活動連接數,您可以使用 netstat 列出活動連接,並從外部位址列中取得特定連接埠:

netstat -tnap | awk '{print$5}' | grep :80 | wc -l

netstat -tnap 將為您提供所有活動連接,然後您可以使用awk 僅列出在外部位址上的連接埠80 上建立的連接,方法是僅列出第五列,並且grep 在外部位址上的連接埠80 上的連接將為您提供所有遠端位址,然後您可以獲得與 wc -l 管道的連接數。

您還可以使用 MadHatter 建議的 ss - 套接字統計信息,因為 netstat 已被棄用並被 ss 取代

ss -tan | awk '{print$5}' | grep :80 | wc -l

答案2

除了 netstat 或 ss 之外,正如其他人所建議的,我發現lsof(列出開啟的檔案)很有用-i。使用-i4,您可以將範圍縮小到 IPv4,後面跟著:80或分別:443指定 或 的連接埠http號碼https。檢查 ls 的手冊頁以獲取更多詳細資訊。

 
[root@考艾島 tmp]# lsof -i4:80 -n
指令 PID 使用者 FD 類型 設備大小/關閉 節點名稱
firefox 4128 Daniel 76u IPv4 111733311 0t0 TCP 192.168.10.103:50500->198.252.206.149:http(已建立)
firefox 4128 Daniel 96u IPv4 112109229 0t0 TCP 192.168.10.103:51201->198.252.206.149:http(已建立)
firefox 4128 Daniel 108u IPv4 111452598 0t0 TCP 192.168.10.103:50410->198.252.206.149:http(已建立)
時鐘應用程式 31704 丹尼爾 21u IPv4 126088871 0t0 TCP 192.168.10.103:55146->23.67.61.171:http(已建立)

[root@考艾島 tmp]# lsof -i4:443 -n
指令 PID 使用者 FD 類型 設備大小/關閉 節點名稱
firefox 4128 Daniel 52u IPv4 125964214 0t0 TCP 192.168.10.103:45435->23.67.118.140:https(已建立)

相關內容