ss命令詳細使用講解文章

ss 命令作為 iproute2 軟件包的一部分,是Socket Statistics的縮寫,也稱為IPC(Inter-process Communication)套接字統計

ss命令用于顯示sockets(套接字)的狀態。與netstat類似,但它通常提供更詳細的統計信息和更快的性能。但ss更高效因為它直接利用了內核的TCP連接跟蹤狀態信息(通過tcp_diag)模塊,并且提供了更豐富和詳細的網絡連接狀態視圖。
ss?命令的輸出可以與?grep,?awk,?sort?等命令結合使用,進行更復雜的數據處理和過濾。

ss:基本語法

ss [選項] [過濾器]

常見命令選項?

用法:ss [OPTIONS]
ss? ? ? ? [選項]? ? ? ?[過濾器]
-h、? ?--幫助此消息
-V、? --版本輸出版本信息
-n、或? --numeric: --數字不解析服務名稱,(不進行 DNS 解析,直接顯示 IP 地址和端口號。)
-r、或? --resolve: --解析主機名。嘗試解析 IP 地址到主機名和端口號到服務名。
-a、? --所有顯示所有插座
-l、? ?--監聽顯示監聽插座
-o、?或? --options:??顯示計時器和套接字選項。
-e、 ?--extended --擴展顯示詳細的套接字信息 ,(顯示更多詳細信息,如套接字的標記、隊列長度等。)
-m、? --內存顯示套接字內存使用情況
-p、?或 ?--processes? ?--進程顯示使用套接字的進程。(顯示與套接字關聯的進程 ID 和名稱。)
-i、? ? --info顯示內部TCP信息
-s、? ?--summary顯示套接字使用情況摘要
-b、? ?--bpf顯示bpf篩選器套接字信息
-E、? --事件在套接字被破壞時不斷顯示套接字
-Z、??--上下文顯示進程SELinux安全上下文
-z、??--上下文顯示進程和套接字SELinux安全上下文
-N、 --net切換到指定的網絡命名空間名稱
-4,? --ipv4僅顯示IP版本4套接字
-6,? --ipv6僅顯示IP版本6套接字
-0, --數據包顯示packet套接字
-t、? --tcp僅顯示tcp套接字
-S、?--sctp僅顯示sctp套接字
-u、?--udp僅顯示udp套接字
-d、 --dccp僅顯示dccp套接字
-w、 --僅原始顯示raw套接字
-x、? --unix僅顯示unix域套接字
--vsock? 僅顯示vsock套接字
-f、 --family=family類型的family顯示插座
系列:={inet|inet6|link|unix|netlink|vsock|help}
-K、 --kill強制關閉套接字,顯示關閉的內容
-H、 --無標題取消標題行
?-A, --query=QUERY, --socket=QUERY
? ? ? ?QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|
-D、 --diag=FILE將有關TCP套接字的原始信息轉儲到FILE
-F、 --filter=FILE從FILE讀取篩選器信息
? ? ? ? FILTER:=[state state-FILTER][EXPRESSION]
? ? ? ? STATE-FILTER:={all|connected|synchronized|bucket|big|TCP-STATES}
? ? ? ? TCP-STATES:={已建立|已發送同步|已同步recv|fin-wait-{1,2}|時間等待|關閉|關閉等待|最后一次確認|偵聽|關閉}
? ? ? ? connected:={已建立|同步發送|同步recv | fin wait-{1,2}|時間等待|關閉等待|最后一次確認|關閉}
? ? ? ? synchronized:={已建立|syn-recv|fin-wait-{1,2}|時間等待|關閉等待|最后一次確認|關閉}
? ? ? ? bucket:={syn-recv | time wait}
??? ? ? big:={已建立|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closed}

顯示所有套接字

ss?或?ss -a:顯示所有類型的套接字,包括監聽(Listening)和非監聽狀態的。

ss -a

?僅顯示監聽套接字

ss -l:列出所有監聽狀態的套接字。

ss -l

?TCP 和 UDP 連接

ss -t:顯示所有 TCP 連接。

ss -u:顯示所有 UDP 連接。

ss -t
ss -u
結合選項?

ss -at:顯示所有 TCP 連接(包括監聽和非監聽)。

ss -au:顯示所有 UDP 連接。

ss -at
ss -au

?過濾與排序

  • 可以通過?-f?或?--filter?加上表達式來過濾輸出,比如?state established?只顯示已建立的連接。
  • 使用?-o?后可以加上列名對輸出進行排序,例如,-o state?按照狀態排序。

要查看所有正在監聽的 TCP 連接

ss -lt

要查看所有 TCP 連接,并解析主機名和端口號

ss -ane

要查看所有連接,并顯示進程信息

ss -ap

輸出排序與限制

  • 排序:使用?-o?或?--sort?選項可以對輸出進行排序,例如按接收或發送的數據量排序。
  • 限制輸出數量:使用?-n?(與?-t,?-u,?-x?等結合) 限制輸出的條目數,如?ss -nt 10?只顯示前10個TCP連接。

目標篩選

  • 指定目標IP或端口:通過?dst?或?sportdport?參數篩選特定目標或端口的連接,例如?ss dst 192.168.1.1?或?ss sport = :80

統計與分析

  • 統計信息-s?或?--summary?提供了關于各種協議(TCP, UDP, RAW, UNIX等)的統計信息,包括連接數、接收/發送字節數等。
  • 計時器信息:使用?-o?選項可以顯示每個套接字的計時器信息,這有助于分析網絡延遲問題。

高級應用

  • 與其它命令結合ss?的輸出可以方便地與?grep,?awk,?sed,?sort?等命令結合使用,進行更復雜的過濾和數據分析。
  • 實時監控:配合?watch?命令,如?watch -n 1 'ss -ant',可以實時查看網絡連接的變化情況,其中?-n 1?表示每秒更新一次。

替代傳統命令

  • ss?命令因其高效性和詳細信息,常被推薦作為?netstat,?ifconfig,?route?等傳統網絡管理命令的替代品。它不僅提供更詳盡的TCP連接狀態,還支持現代協議如DCCP和SCTP。

?連接狀態篩選

狀態篩選:你可以根據連接的狀態來篩選輸出。例如,ss state ESTABLISHED?會顯示所有已建立的連接。

ss state established

常見的狀態包括:SYN-SENT,?SYN-RECV,?ESTABLISHED,?FIN-WAIT-1,?FIN-WAIT-2,?TIME-WAIT,?CLOSED,?CLOSE-WAIT,?LAST-ACK,?LISTEN,?CLOSING

  1. CLOSED:

    • 這是TCP連接的初始狀態,表示沒有連接活動。
  2. LISTEN:

    • 服務器端socket處于此狀態,表示它正在監聽來自客戶端的連接請求。
  3. SYN_SENT:

    • 客戶端發起連接請求,發送SYN報文后進入此狀態,等待服務器響應。
  4. SYN_RECEIVED:

    • 服務器接收到客戶端的SYN報文后,會以SYN+ACK響應,并進入此狀態,等待客戶端的確認。
  5. ESTABLISHED:

    • 客戶端收到服務器的SYN+ACK后,回復ACK,連接建立成功,雙方進入此狀態,開始數據傳輸。
  6. FIN_WAIT_1:

    • 連接終止的第一步,主動關閉方發送FIN報文后進入此狀態,等待對方的FIN報文或ACK。
  7. FIN_WAIT_2:

    • 主動關閉方收到對方對FIN的ACK后,進入此狀態,等待對方的FIN報文。
  8. CLOSE_WAIT:

    • 被動關閉方收到FIN后,回應ACK并進入此狀態,此時連接還未完全關閉,等待應用程序關閉連接。
  9. CLOSING:

    • 雙方幾乎同時嘗試關閉連接,即雙方都發送了FIN且至少一端收到了ACK,但還沒收到對方的FIN。
  10. LAST_ACK:

    • 被動關閉方在發送完自己的FIN后,等待最后一個ACK到來的狀態。
  11. TIME_WAIT:

    • 主動關閉方在接收到對方的FIN并發送ACK后進入此狀態,等待足夠長的時間以確保所有分組在網絡中消失,防止延遲的數據包引起混淆。
  12. CLOSED:

    • 連接徹底關閉,回到初始狀態。

這些狀態反映了TCP連接建立(三次握手)和拆除(四次揮手)的整個過程,以及連接期間可能出現的其他情況,如一方請求關閉連接而另一方繼續處理數據等。

連接狀態篩選案例

1. 查看所有已建立的連接(ESTABLISHED)

1ss state established

這個命令會顯示所有TCP連接中狀態為“ESTABLISHED”的連接,即數據傳輸正在進行中的連接。

2. 查看監聽狀態的套接字(LISTEN)

1ss state listening

此命令會列出所有正在監聽并等待連接請求的套接字,這對于了解哪些服務正在運行并監聽端口非常有用。

3. 查找處于SYN_SENT狀態的連接

1ss state syn-sent

此命令顯示那些已發送SYN包但尚未收到SYN+ACK確認的連接,這可能意味著連接建立過程中出現了延遲或問題。

4. 查看TIME_WAIT狀態的連接

1ss state time-wait

TIME_WAIT狀態表示連接已經關閉,但是為了確保所有數據包都被正確接收,套接字在一段時間內保持打開。過多的TIME_WAIT狀態可能表明之前有很多連接被快速打開和關閉。

5. 查找CLOSE_WAIT狀態的連接

1ss state close-wait

CLOSE_WAIT狀態意味著本地端已經接收到對方的關閉連接請求,但還沒有完成關閉操作。長時間處于此狀態可能意味著程序未正確關閉連接。

6. 顯示所有狀態的連接,包括不常見狀態

1ss state all

此命令將顯示所有狀態的網絡連接,包括但不限于上述提到的狀態,有助于全面了解系統的網絡連接狀況。

7. 結合其他條件進行篩選

例如,查找特定IP的ESTABLISHED連接:

1ss state established dst 10.0.0.1

這會顯示所有與IP地址10.0.0.1之間已建立的TCP連接。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37552.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37552.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37552.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WebKit 簡介及工作流程探秘

在探索現代互聯網世界的奧秘時,瀏覽器引擎是不可或缺的一環,而 WebKit 正是其中的佼佼者。WebKit,這個開源的瀏覽器渲染引擎,以其卓越的性能和廣泛的支持度,成為了 Safari、早期的 Chrome 以及其他眾多瀏覽器的核心。本…

【筆試記錄】華為 | 20230823 | cpp

獲取連通的相鄰節點列表 題目描述 在網元內,存在了 N 個轉發節點,每個轉發節點有自己唯一的標識 TB 且每個節點有 M 個端口,節點間通過端口進行報文通訊。出于業務隔離的需求,服務器內的端口被劃分為多個通訊平面(用 VLAN 隔離&…

取消lfs, 使用原始文件上傳的辦法

查詢當前倉庫使用lfs的文件,然后刪除 git lfs ls-files 刪除lfs文件后,提交commit git add . git commit -m"remove lfs file" 查詢本地lfs配置 git config --local --list 重置本地lfs配置 git config --unset filter.lfs.smudgegit co…

從0到1搭建微服務框架

目錄 1.技術棧: 2.模塊介紹: 3.關鍵代碼講解 3.1基礎公共模塊(common)依賴: 3.3授權模塊(auth)依賴: 3.4授權模塊核心配置類(AuthrizatonConfig): 3.4 SecurityConfig.java 3.5 bootstrap的核心配置文件(其他服務配置類似這個): 3.6n…

防爆巡檢終端在石化工廠安全保障中的應用

防爆巡檢終端在石化工廠安全保障中的應用是廣泛而關鍵的,其設計旨在確保在易燃易爆環境中進行安全、有效的巡檢工作。以下是防爆巡檢終端在石化工廠安全保障中的詳細應用描述: 1. 環境監測與預警 防爆巡檢終端配備了各種傳感器,能夠實時監測…

網銀U盾多又亂?后悔沒早點用USB Server遠程連接管理!

一、引言 網銀服務已成為企業日常運營中不可或缺的一部分。但隨著企業規模的擴大和業務的增多,網銀U盾的數量也隨之激增,又多又亂,只能頻繁插拔、分散管理,不僅效率低下,而且存在嚴重的安全隱患。 事實上&#xff0…

ADS131A04硬件設計與軟件調試

一、IC基本信息 ADS131A0x 雙通道或四通道 24 位 128kSPS 同步采樣 Δ-Σ ADC ?雙通道或四通道同步采樣差分輸入 ? 數據速率:高達 128kSPS ? 高性能: – 單通道精度:在 10,000:1 動態范圍內優于 0.1% – 有效分辨率:20.6位…

SpringCloud-服務網關-Gateway

1.服務網關在微服務中的應用 (1)對外提供服務的難題分析: 微服務架構下的應用系統體系很龐大,光是需要獨立部署的基礎組件就有注冊中心、配置中心和服務總線、Turbine異常聚合和監控大盤、調用鏈追蹤器和鏈路聚合,還有Kaka和MQ之類的中間件&…

海思NNIE部署yolov5-shufflenet

1.簡要說明 由于NNIE上transpose支持的順序是固定的,shufflenet那種x=torch.transpose(x,1,2).contiguous() 的操作一般是不支持的。需要進行調整。 2.使用工程以及修改 使用的是開源工程:GitHub - Lufei-github/shufflev2-yolov5: shufflev2-yolov5:lighter, faster and ea…

c++應用網絡編程之一基本介紹

一、網絡編程介紹 c編程的應用場景在前面分析過,一個重要的方向就是網絡編程。一般來說,開發者說的服務端編程在c方向上簡單的可以認為是網絡編程。首先需要說明的,本系列不對網絡編程的相關基礎知識展開詳細的說明,因為這種知識…

瑪格家居從深交所轉板北交所:營收凈利潤連年下滑,銷售費用大增

《港灣商業觀察》施子夫 近日,瑪格家居股份有限公司(以下簡稱,瑪格家居)發布公告,重慶證監局已經受理其北交所上市的備案申請,輔導機構為國泰君安證券。 公開信息顯示,2022年1月,瑪…

【轉】Android靜態集成X5內核

項目中的老機器使用webview 無法加載vue3打包的網頁,只能用獨立的webview內核,采用靜態加載x5內核的方式, 以下內容轉自簡書作者漆先生的博客,僅用作備份記錄 之前在項目中在線集成的X5內核,但是效果不好,只…

基于STM32的智能電池管理系統

目錄 引言環境準備智能電池管理系統基礎代碼實現:實現智能電池管理系統 4.1 數據采集模塊4.2 數據處理與分析4.3 控制系統實現4.4 用戶界面與數據可視化應用場景:電池管理與優化問題解決方案與優化收尾與總結 1. 引言 智能電池管理系統(Ba…

【昇思25天學習打卡營打卡指南-第十三天】ShuffleNet圖像分類

ShuffleNet圖像分類 ShuffleNet網絡介紹 ShuffleNetV1是曠視科技提出的一種計算高效的CNN模型,和MobileNet, SqueezeNet等一樣主要應用在移動端,所以模型的設計目標就是利用有限的計算資源來達到最好的模型精度。ShuffleNetV1的設計核心是引入了兩種操…

GPT-5 一年半后發布,打開人工智能新世紀

關于GPT-5一年半后發布的消息,這一預測主要基于OpenAI首席技術官Mira Murati的采訪和聲明。然而,需要明確的是,這個時間點(即2025年底或2026年初)已經與早期傳聞有所不同,顯示了OpenAI對產品質量的重視&…

react18.x+播放文本內容

需要調接口將文字傳遞給后端將文字轉換成音頻文件,然后播放,同時每次播放不同文本時,當前播放的文本需要暫停,切換到播放新點擊的文本 可以設置緩存播放過的音頻,也可以不設置緩存: 設置緩存的代碼如下&am…

驍龍相機拍照流程分析

和你一起終身學習,這里是程序員Android 經典好文推薦,通過閱讀本文,您將收獲以下知識點: 1.deliverInputEvent 拍照點擊事件處理 2.submitRequestList Camera 提交拍照請求 3.createCaptureRequest 拍照請求幀數 驍龍相機通過binder 數據傳輸…

idea 內存參數修改不生效問題解決 VM參數設置不生效解決

很多人配置idea 內存參數,怎么配置都不生效,主要原因是配置文件用的不是你修改的那個。 系統環境變量中的這個才是你真正要修改的配置文件。 找到并修改后保存,重啟idea就可生效

C++ | Leetcode C++題解之第208題實現Trie(前綴樹)

題目&#xff1a; 題解&#xff1a; class Trie { private:vector<Trie*> children;bool isEnd;Trie* searchPrefix(string prefix) {Trie* node this;for (char ch : prefix) {ch - a;if (node->children[ch] nullptr) {return nullptr;}node node->children[…

人工與智能系統之間的交互方式

人工與智能系統之間的交互方式 #mermaid-svg-xSsFZWak2bsyV0un {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xSsFZWak2bsyV0un .error-icon{fill:#552222;}#mermaid-svg-xSsFZWak2bsyV0un .error-text{fill:#5522…