良许 | 网络检测神器 ss 命令,你可能根本就不会用!

news/2024/7/10 21:56:48 标签: linux, 后端, 互联网, 服务器

今天我们来介绍一下 Linux ss 命令。

ss 是 Socket Statistics 的缩写,用来统计 socket 连接的相关信息,它跟 netstat 差不多,但有着比 netstat 更强大的统计功能,能够显示更多更详细的连接信息。

刚开始接触 ss 命令可能会比较困难,我们可通过 ss -h 或者 ss -help 来详细学习 ss 的选项功能。当然,最好的办法是直接尝试一些常用的命令来学习 ss 。

下面我们来了解一下 ss 的一些实用用法。

$ ss -sTotal: 524TCP: 8 (estab 1, closed 0, orphaned 0, timewait 0)

Transport Total IP IPv6RAW 2 1 1UDP 7 5 2TCP 8 6 2INET 17 12 5FRAG 0 0 0

- **RAW** Socket 原始套接字。允许直接发送和接收 IP 数据包,无需满足特定的传输协议,用于 namp 等安全应用。
- **TCP** 传输控制协议。是我们网络连接当中的主要连接协议。
- **UDP** 用户数据报协议。类似于 TCP 但没有错误检查。 
- **INET** 包含上述项。( INET4 和 INET6 可以通过一些 ss 命令单独查看)。
- **FRAG** 可以理解为碎片的意思。

显然,上面的输出结果并没有直接显示详细的 socket 连接情况,我们可以看到最上面的 ```Total``` 行显示的 socket 总数是非常多的,不过,这种分类统计的方式在某些情况下很有用。

如果想要查看具体的 socket 活动信息,我们可以使用 ```ss -a``` 命令,但是我们要做好心理准备查看一大堆的信息,我们可以先用 ```wc -l``` 来统计一下行数试探一波:

$ ss -a | wc -l555

有木有被吓到?555 行数据!

不过不必惊慌,我们可以查看指定类别的 socket 活动。
- ```ss -ta``` 转储所有 TCP socket
- ```ss -ua``` 转储所有 UDP socket
- ```ss -wa``` 转储所有 RAW socket
- ```ss -xa``` 转储所有 UNIX socket
- ```ss -4a``` 转储所有 IPV4 socket
- ```ss -6a``` 转储所有 IPV6 socket

不带参数的 ss 命令会显示所有已经建立的 socket 连接。为了方便阅读,这里只显示一页的信息,省略其他大部分信息:

$ ss | moreNetid State Recv-Q Send-Q Local Address:Port Peer Address:Portu_str ESTAB 0 0 * 20863 * 20864u_str ESTAB 0 0 * 32232 * 33018u_str ESTAB 0 0 * 33147 * 3257544ddddyu_str ESTAB 0 0 /run/user/121/bus 32796 * 32795u_str ESTAB 0 0 /run/user/121/bus 32574 * 32573u_str ESTAB 0 0 * 32782 * 32783u_str ESTAB 0 0 /run/systemd/journal/stdout 19091 * 18113u_str ESTAB 0 0 * 769568 * 768429u_str ESTAB 0 0 * 32560 * 32561u_str ESTAB 0 0 @/tmp/dbus-8xbBdjNe 33155 * 33154u_str ESTAB 0 0 /run/systemd/journal/stdout 32783 * 32782…tcp ESTAB 0 64 192.168.0.16:ssh 192.168.0.6:25944tcp ESTAB 0 0 192.168.0.16:ssh 192.168.0.6:5385

要查看刚建立的 TCP 连接,使用 ```ss -t``` :

$ ss -tState Recv-Q Send-Q Local Address:Port Peer Address:PortESTAB 0 64 192.168.0.16:ssh 192.168.0.6:25944ESTAB 0 0 192.168.0.16:ssh 192.168.0.9:5385

要仅显示监听 socket ,尝试 ```ss -lt``` :

$ ss -ltState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 10 127.0.0.1:submission 0.0.0.0:*LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:*LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*LISTEN 0 5 127.0.0.1:ipp 0.0.0.0:*LISTEN 0 10 127.0.0.1:smtp 0.0.0.0:*LISTEN 0 128 [::]:ssh [::]:*LISTEN 0 5 [::1]:ipp [::]:*

若你想要显示端口号而不是服务名,则 ```ss -ltn``` :

$ ss -ltnState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 10 127.0.0.1:587 0.0.0.0:*LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*LISTEN 0 128 0.0.0.0:22 0.0.0.0:*LISTEN 0 5 127.0.0.1:631 0.0.0.0:*LISTEN 0 10 127.0.0.1:25 0.0.0.0:*LISTEN 0 128 [::]:22 [::]:*LISTEN 0 5 [::1]:631 [::]:*

这里就先介绍这么多,其他的详细内容请参考帮助手册( ```ss -h```)。

另外,这里提供一些小技巧,你可以将那些最有用的选项转换为别名,能让你更容易使用。例如:

$ alias listen="ss -lt"$ alias socksum="ss -s"`

-----------------

我是良许,世界500强外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注我的公众号「良许Linux」,回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。

img


http://www.niftyadmin.cn/n/1259845.html

相关文章

LINUX--创建新用户为新用户设置权限

文章目录【一张图总结】【详细说明】1、登录root2、新建用户并创建家目录3、更改为bash命令4、设置密码5、设置sudo权限【关于本文Linux命令的说明】1、useradd -d /home/xpt -m xpt2、usermod -s /bin/bash xpt3、sudo passwd xpt4、sudo chmod uw /etc/sudoers5、sudo vi /et…

UVA10617

1 /* 2 题意:对一个字符串进行删除操作,有多少种方式使剩下的串是回文。 3 也可理解为这个串有多少回文子串。 4 定义 dp[i][j]为 i-j有多少个回文子串。 5 当str[i]str[j],6 dp[i][j]dp[i1][j-1]1, 因为如果把i1至j-1都删掉,剩下的两个还是个…

Python入门基础-二、更高效的编写Python代码的工具#pycharm专业版edu邮箱认证用or社区版(Free!免费的)

(课程相关的所有资料代码,已上传至CSDN,请自行下载 https://download.csdn.net/download/qq_34243930/10764180 ) pycharm下载地址 专业版edu邮箱认证用 为学生和教职员工免费提供个人许可证 点击认证 填写一下个人信息&#x…

推荐一个免费的截图+贴图(自动检测界面元素区域,可标注,取色器,支持多屏,支持高分屏,历史记录回放等等)

Snipaste下载 链接1 链接2 Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下 F1 来开始截图,再按 F3,截图就在桌面置顶显示了。就这么简单!【快捷键也可以自定…

C#对象初始或器-Chapter3 P38

protected string GetMessage(){//如何构造和初始化泛型集合库中的一个数组和两个类。Product myProduct new Product{ProductID100,Name"Kayak",Description "A boat for one person",Price275M,Category"Watersports"};return String.Format(…

用Github Pages+Hexo搭建博客之#如果换了电脑、重装系统了怎么办?

【置顶】【专栏】用Github PagesHexo搭建博客 文章目录【置顶】【专栏】[用Github PagesHexo搭建博客](https://blog.csdn.net/qq_34243930/category_9662425.html)1.安装Nodejs、Git2.源文件拷贝3.在Github官网添加新电脑产生的密钥4.下载Github客户端3.搭建 hexo4.部署发布文…

通过jquery获取select标签的文本值和value值

1.HTML代码 <body><div class"container" style"margin-top:10px;"><div class"row" style"margin-bottom:20px;"><select id"selectlabel"><option value"11">---选择One---</…

用Github Pages+Hexo搭建博客之(二)如何更换博客主题,以NexT主题为例

【置顶】【专栏】用Github PagesHexo搭建博客 先总结一下本篇&#xff1a; 例如&#xff1a;切换成NexT主题&#xff0c;下载主题并在hexo根文件加下&#xff0c; 并修改‘_config.yml’文件 theme: next//配置之后&#xff0c;执行以下命令清除一下缓存 hexo clean //部署 h…