ss命令,它是 socket statistic的縮寫,用于統(tǒng)計Linux系統(tǒng)中socket連接相關(guān)的信息,和其他的工具相比,ss命令可以顯示更多關(guān)于 TCP和狀態(tài)相關(guān)的信息
創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為陸豐企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè),陸豐網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
在Linux系統(tǒng)中,默認已經(jīng)安裝了 ss 命令,下面介紹該命令常用的一些功能
netstat 命令和 ss 命令比較類似,主要功能也是統(tǒng)計系統(tǒng)中socket相關(guān)信息,和 netstat相比,ss 命令在跟蹤TCP連接和套接字方面速度更快,功能更強大,下面是 ss 和 netstat 統(tǒng)計速度的對比
從上面例子可以看出,ss 統(tǒng)計439條socket信息花費了0.014s, netstat 統(tǒng)計366條socket信息花費了0.029s,ss 統(tǒng)計信息的速度更快,所以實際使用中一般都是用 ss 替代 netstat
列出當(dāng)前已經(jīng)連接、關(guān)閉、等待的TCP連接,當(dāng)系統(tǒng)中已經(jīng)存在大量的套接字連接的時候,通過查看套接字摘要信息可以快速了解系統(tǒng)中套接字的總體情況
當(dāng)不使用任何選項時,ss將顯示已建立連接的處于非監(jiān)聽狀態(tài)的套接字列表,由于原始結(jié)果太長,下面的例子只截取了一部分
上面例子中列說明:
socket類型,在上面的例子中,有 TCP、u_str(unix流)等套接字
套接字處于什么狀態(tài),下面是TCP套接字的所有狀態(tài)及說明, 實際上就是TCP的三次握手和四次揮手的所有狀態(tài)
在 ESTAB 狀態(tài)下,表示內(nèi)核中還有多少字節(jié)的數(shù)據(jù)沒有被上層應(yīng)用讀取,如果這里數(shù)值很大,應(yīng)用程序可能發(fā)生了阻塞
在 ESTAB 狀態(tài)下,表示內(nèi)核發(fā)送隊列中還有多少字節(jié)的數(shù)據(jù)沒有收到確認的ACK,如果這個數(shù)值很大,表明接收端的接收以及處理需要加強
本地地址和端口
遠程地址和端口
使用 -l 選項可以列出所有處于偵聽(LISTEN)狀態(tài)的套接字
使用 -a 選項可以列出所有的狀態(tài)的套接字,由于所有的套接字列表太多,下面的例子中只列出了少許的數(shù)據(jù)
可以通過 TCP、UDP、Unix、Raw、IPV4、IPV6 這些協(xié)議類型顯示套接字,下面以常用的TCP/UDP/IPV4協(xié)議舉例說明
使用 -t 選項(TCP), 讓結(jié)果只列出TCP套接字
使用 -u 選項(UCP), 讓結(jié)果只列出UCP套接字
使用 -4 選項(IPV4), 讓結(jié)果只列出IPV4的套接字
有時我們查詢到指定的套接字了,但是無法知道套接字是哪個應(yīng)用程序在使用,這時可以使用 -p 選項
上面的例子中,從 Local Address:Port 列可以知道,這個套接字時mysql在使用,如果沒有加 -p 選項的話,這里顯示的時mysql的端口號3306
有時候我們啟動應(yīng)用程序的時候,發(fā)現(xiàn)端口已經(jīng)被占用了,此時先要查找出占用目標(biāo)端口的應(yīng)用程序,然后關(guān)閉它,再啟動我們自己的應(yīng)用程序
上面的例子中,sport 表示源,對應(yīng)的 dport 表示目標(biāo),命令查找端口3306是被哪個進程使用了,最終發(fā)現(xiàn)3306是mysql在使用
通過端口篩選還支持小于、大于、小于等于、大于等于、不等于,具體的說明如下:
上面的例子中篩選出進程名為 mysql 的套接字, 執(zhí)行的命令中 -n 選項是不解析服務(wù)名字,加了此選項就顯示成端口了,不會解析成服務(wù)名稱了
下面例子是篩選出目標(biāo)IP地址為27.38.240.99的套接字,dst 是目標(biāo)地址
下面例子是篩選出源IP地址為192.168.0.99的套接字,src 是源地址
ss(Socket?Statistics的縮寫)命令可以用來獲取?socket統(tǒng)計信息,此命令輸出的結(jié)果類似于?netstat輸出的內(nèi)容。
ss -antl
-a,?--all?顯示所有套接字(sockets)
-n,?--numeric?不解析服務(wù)名稱
-t,?--tcp?僅顯示?TCP套接字(sockets)
-l,?--listening?顯示監(jiān)聽狀態(tài)的套接字(sockets)
ss -antl? 即為不解析服務(wù)名稱的情況下顯示所有狀態(tài)為listening的TCP連接
Linux系統(tǒng)中,ss命令可用于查看系統(tǒng)的socket的狀態(tài)。
1、命令格式:
ss [參數(shù)]
ss [參數(shù)] [過濾]
2、命令功能:
ss(Socket Statistics的縮寫)命令可以用來獲取 socket統(tǒng)計信息,此命令輸出的結(jié)果類似于
netstat輸出的內(nèi)容,但它能顯示更多更詳細的 TCP連接狀態(tài)的信息,且比 netstat 更快速高效。它使用了 TCP協(xié)議棧中
tcp_diag(是一個用于分析統(tǒng)計的模塊),能直接從獲得第一手內(nèi)核信息,這就使得 ss命令快捷高效。在沒有
tcp_diag,ss也可以正常運行。
3、命令參數(shù):
-h, --help 幫助信息
-V, --version 程序版本信息
-n, --numeric 不解析服務(wù)名稱
-r, --resolve 解析主機名
-a, --all 顯示所有套接字(sockets)
-l, --listening 顯示監(jiān)聽狀態(tài)的套接字(sockets)
-o, --options 顯示計時器信息
-e, --extended 顯示詳細的套接字(sockets)信息
-m, --memory 顯示套接字(socket)的內(nèi)存使用情況
-p, --processes 顯示使用套接字(socket)的進程
-i, --info 顯示 TCP內(nèi)部信息
-s, --summary 顯示套接字(socket)使用概況
-4, --ipv4 僅顯示IPv4的套接字(sockets)
-6, --ipv6 僅顯示IPv6的套接字(sockets)
-0, --packet 顯示 PACKET 套接字(socket)
-t, --tcp 僅顯示 TCP套接字(sockets)
-u, --udp 僅顯示 UCP套接字(sockets)
-d, --dccp 僅顯示 DCCP套接字(sockets)
-w, --raw 僅顯示 RAW套接字(sockets)
-x, --unix 僅顯示 Unix套接字(sockets)
-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),F(xiàn)AMILY可選,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 將原始TCP套接字(sockets)信息轉(zhuǎn)儲到文件
-F, --filter=FILE 從文件中都去過濾器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
4、使用實例:
linex?你指的是Linux吧
ss是Socket Statistics的縮寫。ss命令可以用來獲取socket統(tǒng)計信息,它可以顯示和netstat類似的內(nèi)容。但ss的優(yōu)勢在于它能夠顯示更多更詳細的有關(guān)TCP和連接狀態(tài)的信息,而且比netstat更快速更高效。
ls(英文全拼:list files)命令用于顯示指定工作目錄下的內(nèi)容(列出目前工作目錄所含之文件及子目錄)。