首頁 > 網路管理 > ss

ss 命令指南:檢查套接字統計(netstat 替代品)

`ss` 命令(socket statistics)是一個強大且現代化的工具,用於在 Linux 系統中檢查與網絡套接字相關的信息。它替代了舊有的 `netstat` 命令,提供更快、更詳細和更高效的套接字信息。這是一個在監控網絡連接狀態、監聽端口、路由表等系統網絡活動以及解決問題時必不可少的工具。通過本指南,您可以了解 `ss` 命令的多種用法。

ss 概述

`ss` 命令通過內核的 `netlink` 接口直接獲取套接字信息,因此在連接數量龐大的系統上比 `netstat` 更快。此外,它還提供了 `netstat` 不提供的更多 TCP 狀態信息和詳細的套接字統計。在現代 Linux 系統中查詢網絡相關信息時,強烈建議使用 `ss`。

ss 的主要角色

`ss` 命令主要用於以下目的:

主要應用領域

  • 檢查網絡連接及監聽端口: 顯示系統中所有活躍的 TCP、UDP 和 UNIX 套接字。
  • 進程與端口映射: 檢查哪些進程正在使用特定端口。
  • 檢查路由表: 顯示定義 IP 封包傳輸路徑的路由表。
  • 網絡接口統計: 提供每個網絡接口的封包傳輸和接收統計。
  • 詳細分析套接字狀態: 深入分析 TCP 連接的詳細狀態(例如:`ESTAB`、`LISTEN`、`TIME-WAIT` 等)及其統計。

`ss` 與 `netstat`

`ss` 是 `netstat` 的現代且強大的替代品。

  • ss: 現代、快速,直接訪問內核的套接字統計,完美支持 IPv6,提供更多過濾選項。
  • netstat: 舊版工具,基於 `/proc` 文件系統,在大型連接時可能變慢,對 IPv6 支持不完整。

主要 ss 命令選項

`ss` 命令可以組合不同的選項,以詳細過濾和顯示所需的網絡信息。

1. 套接字類型及狀態過濾

2. 輸出格式及詳細信息

3. 路由和其他

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`ss` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用示例

通過多種 `ss` 命令的應用示例,有效監控和分析系統的網絡連接及套接字狀態。

檢查所有活躍的 TCP 連接及監聽端口

sudo ss -tulpn

以數字地址顯示當前系統中所有活躍的 TCP 套接字(包括監聽),並顯示相關的程序名稱和 PID。

僅檢查所有監聽(Listening)TCP 端口

sudo ss -tlpn

以數字格式顯示當前等待連接的所有 TCP 監聽端口。在確認網頁伺服器、數據庫等服務端口是否打開時非常有用。

檢查使用特定端口的進程

sudo ss -tlpn | grep :22

檢查使用端口 `22`(SSH)的所有 TCP 連接及監聽端口的詳細信息。(對於 SSH 伺服器診斷非常有用)

檢查所有狀態為 ESTABLISHED 的 TCP 連接

ss -t state established

顯示當前活躍且正在進行數據通信的所有 TCP 連接。在確認外部連接是否正常時非常有用。

檢查 TIME-WAIT 狀態的套接字數量

ss -s | grep -i time-wait

檢查 TCP 連接關閉後仍處於 `TIME-WAIT` 狀態的套接字數量。如果這個數量過多,可能會導致系統資源耗盡。

檢查所有 UDP 套接字

ss -ulpn

檢查當前系統中使用的所有 UDP 套接字連接及監聽端口。

檢查路由表

ss -r

顯示系統的 IP 路由表。與 `ip route show` 類似。


相同類別命令