ss命令用來顯示處於活動狀態的套接字資訊。ss命令可以用來獲取socket統計資訊,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關tcp和連線狀態的資訊,而且比netstat更快速更高效。
當伺服器的socket連線數量變得非常大時,無論是使用netstat命令還是直接cat /proc/net/tcp,執行速度都會很慢。可能你不會有切身的感受,但請相信我,當伺服器維持的連線達到上萬個的時候,使用netstat等於浪費 生命,而用ss才是節省時間。
所有的tcp sockets
所有的udp sockets
所有ssh/ftp/ttp/https持久連線
所有連線到xserver的本地程序
使用state(例如:connected, synchronized, syn-recv, syn-sent,time-wait)、位址、埠過濾
所有的state fin-wait-1 tcpsocket連線以及更多
很多流行的linux發行版都支援ss以及很多監控工具使用ss命令.熟悉這個工具有助於您更好的發現與解決系統效能問題.本人強烈建議使用ss命令替代netstat部分命令,例如netsat -ant/lnt等.
統計伺服器併發連線數:
[root@localhost ~]# time netstat -antlp | grep est | wc -l 1
[root@localhost ~]# time ss -o state established | wc -l
140
結果很明顯ss統計併發連線數效率完敗netstat,在ss能搞定的情況下, 你還會在選擇netstat嗎?
常用ss命令:
ss -l 顯示本地開啟的所有埠
ss -pl 顯示每個程序具體開啟的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的udp socekt
ss -o state established '( dport = :smtp or sport = :smtp )' 顯示所有已建立的smtp連線
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的http連線
ss -x src /tmp/.x11-unix/* 找出所有連線x伺服器的程序
ss -s 列出當前socket詳細資訊:
顯示sockets簡要資訊
列出當前已經連線,關閉,等待的tcp連線:
[root@localhost ~]# ss -s
total: 246 (kernel 276)
tcp: 70 (estab 1, closed 59, orphaned 0, synrecv 0, timewait 58/0), ports 0
transport total ip ipv6
ss列出每個程序名及其監聽的埠:
ss列所有的tcp sockets:
ss列出所有udp sockets:
ss列出所有http連線中的連線:
以上包含對外提供的80,以及訪問外部的80
用以上命令完美的替代netstat獲取http併發連線數,監控中常用到
ss列出本地哪個程序連線到x server:
[root@localhost ~]# ss -x src /tmp/.x11-unix/*
netid state recv-q send-q local address:port peer address:port
ss列出處在fin-wait-1狀態的http、https連線:
ss常用的state狀態:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all : all of the above states
connected : all the states except for listen and closed
synchronized : all the connected states except for syn-sent
bucket : show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
big : opposite to bucket state.
ss使用ip位址篩選:
ss src address_pattern
src:表示**
address_pattern:表示位址規則
如下:ss src 120.33.31.1 # 列出來之20.33.31.1的連線
#列出來至120.33.31.1,80埠的連線
ss使用埠篩選:
ss dport op port
op:是運算子
port:表示埠
dport:表示過濾目標埠、相反的有sport
op運算子如下:
<= or le : 小於等於 >= or ge : 大於等於
== or eq : 等於
!= or ne : 不等於埠
< or lt : 小於這個埠 > or gt : 大於埠
op例項:
ss sport = :http 也可以是 ss sport = :80
列印tcp ipv4 的sockets資訊:
[root@localhost ~]# ss -4 state established
netid recv-q send-q local address:port peer address:port
tcp 0 0 172.16.25.192:ssh 172.16.25.98:52581
檢視ss命令的幫助資訊:
文章參考:
Linux 命令 ss 檢視套接字統計資訊
ss options filter h,help 顯示幫助資訊。v,version 顯示版本資訊。n,numeric 不解析服務名稱。r,resolve 試著解析數字形式的位址和埠。a,all 顯示所有的套接字。l,listening 顯示所有監聽狀態的套接字。o,options 顯示計時器資訊。e...
Linux 命令(5) ss 命令
ss是socket statistics的縮寫。ss命令用於顯示socket狀態.他可以顯示packet sockets,tcp sockets,udp sockets,dccp sockets,raw sockets,unix domain sockets等等統計.它比其他工具展示等多tcp和st...
Linux基礎命令之SS
ss是socket statistics的縮寫。顧名思義,ss命令可以用來獲取socket統計資訊,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關tcp和連線狀態的資訊,而且比netstat更快速更高效。當伺服器的socket連線數量變得非常大時,無論是使用nets...