中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ss命令怎么在linux中使用

發布時間:2021-03-15 17:00:53 來源:億速云 閱讀:174 作者:Leah 欄目:服務器

這期內容當中小編將會給大家帶來有關 ss命令怎么在linux中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

ss 是 Socket Statistics 的縮寫。ss 命令可以用來獲取 socket 統計信息,它顯示的內容和 netstat 類似。但 ss 的優勢在于它能夠顯示更多更詳細的有關 TCP 和連接狀態的信息,而且比 netstat 更快。當服務器的 socket 連接數量變得非常大時,無論是使用 netstat 命令還是直接 cat /proc/net/tcp,執行速度都會很慢。ss 命令利用到了 TCP 協議棧中 tcp_diag。tcp_diag 是一個用于分析統計的模塊,可以獲得 Linux 內核中第一手的信息,因此 ss 命令的性能會好很多。

常用選項

-h, --help 幫助
-V, --version 顯示版本號
-t, --tcp 顯示 TCP 協議的 sockets
-u, --udp 顯示 UDP 協議的 sockets
-x, --unix 顯示 unix domain sockets,與 -f 選項相同
-n, --numeric 不解析服務的名稱,如 "22" 端口不會顯示成 "ssh"
-l, --listening 只顯示處于監聽狀態的端口
-p, --processes 顯示監聽端口的進程(Ubuntu 上需要 sudo)
-a, --all 對 TCP 協議來說,既包含監聽的端口,也包含建立的連接
-r, --resolve 把 IP 解釋為域名,把端口號解釋為協議名稱

常見用例

如果不添加選項 ss 命令默認輸出所有建立的連接(不包含監聽的端口),包括 tcp, udp, and unix socket 三種類型的連接:

ss命令怎么在linux中使用

查看主機監聽的端口

$ ss -tnl

ss命令怎么在linux中使用

通過 -r 選項解析 IP 和端口號

$ ss -tlr

ss命令怎么在linux中使用

使用 -p 選項查看監聽端口的程序名稱

$ sudo ss -tlp

ss命令怎么在linux中使用

最后一列就是運行的程序名稱。還可以通過 grep 繼續過濾:

$ sudo ss -tlp | grep ssh

ss命令怎么在linux中使用

查看建立的 TCP 連接

-a --all 對 TCP 協議來說,既包含監聽的端口,也包含建立的連接

$ ss -tna

ss命令怎么在linux中使用

顯示更多的信息

-o, --options 顯示時間信息
-m, --memory 顯示 socket 使用的內存
-i, --info 顯示更多 TCP 內部的信息

ss命令怎么在linux中使用

顯示概要信息

$ ss -s

ss命令怎么在linux中使用

dst/src dport/sport 語法

可以通過 dst/src/dport/sprot 語法來過濾連接的來源和目標,來源端口和目標端口。

匹配遠程地址和端口號

$ ss dst 192.168.1.5
$ ss dst 192.168.119.113:http
$ ss dst 192.168.119.113:443

匹配本地地址和端口號

$ ss src 192.168.119.103
$ ss src 192.168.119.103:http
$ ss src 192.168.119.103:80

將本地或者遠程端口和一個數比較

可以使用下面的語法做端口號的過濾:

$ ss dport OP PORT
$ ss sport OP PORT

OP 可以代表以下任意一個:

<=le小于或等于某個端口號
>=ge大于或等于某個端口號
==eq等于某個端口號
!=ne不等于某個端口號
>gt大于某個端口號
<lt小于某個端口號

下面是一個簡單的 demo(注意,需要對尖括號使用轉義符):

$ ss -tunl sport lt 50
$ ss -tunl sport \< 50

ss命令怎么在linux中使用

通過 TCP 的狀態進行過濾

ss 命令還可以通過 TCP 連接的狀態進程過濾,支持的 TCP 協議中的狀態有:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listening
closing

除了上面的 TCP 狀態,還可以使用下面這些狀態:

all列出所有的 TCP 狀態。
connected列出除了 listening 和 closing 之外的所有 TCP 狀態。
synchronized列出除了 syn-sent 之外的所有 TCP 狀態。
bucket列出 maintained 的狀態,如:time-wait 和 syn-recv。
big列出和 bucket 相反的狀態。

使用 ipv4 時的過濾語法如下:

$ ss -4 state filter

使用 ipv6 時的過濾語法如下:

$ ss -6 state filter

下面是一個簡單的例子:

$ ss -4 state listening

ss命令怎么在linux中使用

同時過濾 TCP 的狀態和端口號

(注意下面命令中的轉義符和空格,都是必須的。如果不用轉義符,可以使用單引號)

下面的命令顯示所有狀態為 established 的 ssh 連接:

$ ss -4n state listening

下面的兩種寫法是等價的,要有使用 \ 轉義小括號,要么使用單引號括起來:

$ ss -4n state listening \( dport = :ssh \)
$ ss -4n state listening '( dport = :ssh )'

ss命令怎么在linux中使用

只是最后的結果稍微讓人有些意外,不僅顯示了監聽的端口,也顯示了通過 22 端口建立的連接。

下面我們顯示所有狀態為 Established 的 HTTP 連接:

$ ss -4n state listening \( dport = :ssh \)
$ ss -4n state listening '( dport = :ssh )'

ss命令怎么在linux中使用

下面的命令列出所有連接到 22 端口的連接和對 22 端口的監聽:

$ ss state all dport = :22

ss命令怎么在linux中使用

下面是一個來自 ss man page 的例子,它列舉出處于 FIN-WAIT-1狀態的源端口為 80 或者 443,目標網絡為 193.233.7/24 所有 TCP 套接字:

$ ss state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

上述就是小編為大家分享的 ss命令怎么在linux中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥宁县| 射阳县| 多伦县| 勃利县| 乌兰察布市| 驻马店市| 克拉玛依市| 井冈山市| 仁寿县| 大丰市| 临洮县| 云林县| 丽江市| 长春市| 广宁县| 阜城县| 武胜县| 宁夏| 中江县| 清苑县| 伊宁市| 关岭| 福清市| 永德县| 崇州市| 加查县| 青龙| 金塔县| 祁连县| 苏尼特右旗| 民县| 湛江市| 汉源县| 奉节县| 揭阳市| 察隅县| 高安市| 准格尔旗| 洛扎县| 安徽省| 安溪县|