Linux网络状态工具ss命令操作详解
ss命令用于顯示socket狀態. 他可以顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計. 它比其他工具展示等多tcp和state信息. 它是一個非常實用、快速、有效的跟蹤IP連接和sockets的新工具.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等.
展示他之前來做個對比,統計服務器并發連接數
netstat #?time?netstat?-ant?|?grep?EST?|?wc?-l 3100real?0m12.960s user?0m0.334s sys?0m12.561s #?time?ss?-o?state?established?|?wc?-l 3204real?0m0.030s user?0m0.005s sys?0m0.026s結果很明顯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連接
#?ss?-s Total:?3519?(kernel?3691) TCP:?26557?(estab?3163,?closed?23182,?orphaned?194,?synrecv?0,?timewait?23182/0),?ports?1452Transport?Total?IP?IPv6 *?3691?-?- RAW?2?2?0 UDP?10?7?3 TCP?3375?3368?7 INET?3387?3377?10 FRAG?0?0?0列出當前監聽端口
#?ss?-lRecv-Q?Send-Q?Local?Address:Port?Peer?Address:Port 0?10?:::5989?:::* 0?5?*:rsync?*:* 0?128?:::sunrpc?:::* 0?128?*:sunrpc?*:* 0?511?*:http?*:* 0?128?:::ssh?:::* 0?128?*:ssh?*:* 0?128?:::35766?:::* 0?128?127.0.0.1:ipp?*:* 0?128?::1:ipp?:::* 0?100?::1:smtp?:::* 0?100?127.0.0.1:smtp?*:* 0?511?*:https?*:* 0?100?:::1311?:::* 0?5?*:5666?*:* 0?128?*:3044?*:*ss列出每個進程名及其監聽的端口
#?ss?-plss列所有的tcp sockets
#?ss?-t?-ass列出所有udp sockets
#?ss?-u?-ass列出所有http連接中的連接
#?ss?-o?state?established?'(?dport?=?:http?or?sport?=?:http?)'以上包含對外提供的80,以及訪問外部的80.用以上命令完美的替代netstat獲取http并發連接數,監控中常用到
ss列出本地哪個進程連接到x server
#?ss?-x?src?/tmp/.X11-unix/*ss列出處在FIN-WAIT-1狀態的http、https連接
#?ss?-o?state?fin-wait-1?'(?sport?=?:http?or?sport?=?: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?src?120.33.31.1:http ss?src?120.33.31.1:8ss使用端口篩選
-
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 ss?dport?=?:http ss?dport?\>?:1024 ss?sport?\>?:1024 ss?sport?\<?:32000 ss?sport?eq?:22 ss?dport?!=?:22 ss?state?connected?sport?=?:http ss?\(?sport?=?:http?or?sport?=?:https?\) ss?-o?state?fin-wait-1?\(?sport?=?:http?or?sport?=?:https?\)?dst?192.168.1/24為什么ss比netstat快:
netstat是遍歷/proc下面每個PID目錄,ss直接讀/proc/net下面的統計信息。所以ss執行的時候消耗資源以及消耗的時間都比netstat少很多
ss命令幫助
#?ss?-h Usage:?ss?[?OPTIONS?]ss?[?OPTIONS?]?[?FILTER?]-h,?--help???????????this?message-V,?--version????????output?version?information-n,?--numeric????????don't?resolve?service?names-r,?--resolve???????resolve?host?names-a,?--all????????????display?all?sockets-l,?--listening??????display?listening?sockets-o,?--options???????show?timer?information-e,?--extended??????show?detailed?socket?information-m,?--memory????????show?socket?memory?usage-p,?--processes??????show?process?using?socket-i,?--info???????????show?internal?TCP?information-s,?--summary????????show?socket?usage?summary-4,?--ipv4??????????display?only?IP?version?4?sockets-6,?--ipv6??????????display?only?IP?version?6?sockets-0,?--packet?display?PACKET?sockets-t,?--tcp????????????display?only?TCP?sockets-u,?--udp????????????display?only?UDP?sockets-d,?--dccp???????????display?only?DCCP?sockets-w,?--raw????????????display?only?RAW?sockets-x,?--unix???????????display?only?Unix?domain?sockets-f,?--family=FAMILY?display?sockets?of?type?FAMILY-A,?--query=QUERY,?--socket=QUERYQUERY?:=?{all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D,?--diag=FILE??????Dump?raw?information?about?TCP?sockets?to?FILE-F,?--filter=FILE???read?filter?information?from?FILEFILTER?:=?[?state?TCP-STATE?]?[?EXPRESSION?]總結
以上是生活随笔為你收集整理的Linux网络状态工具ss命令操作详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件管理定律系列之布鲁克斯定律
- 下一篇: Linux 运维日常 40 个命令汇总