有了ss工具就可以丢掉netstat了
ss是Socket Statistics的缩写,负责统计主机上网络连接信息,在ss之前使用最多的是netstat。从本质上来说ss在性能上可以完爆netstat,之所以快,主要原因是因为:netstat是直接cat /proc/net/tcp,然后对网络连接信息进行统计,ss使用TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以直接获得Linux 内核信息,从而保证了ss的高性能
1、ss使用格式
ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
在linux中也可以通过man ss的形式查看具体的参数,如下图所示:
2、ss常用命令
2.1 查看已创建连接
ss | head -n 5
执行结果如下:
[root@localhost ~]# ss | head -n 5
Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
u_str ESTAB 0 0 * 19098 * 18222
u_str ESTAB 0 0 * 19441 * 19440
u_str ESTAB 0 0 * 19440 * 19441
u_str ESTAB 0 0 * 19396 * 19397
2.2 查看已监听套接字
ss -lt
执行结果如下:
[root@localhost ~]# ss -lt
State Recv-Q Send-Q Local Address:Port
LISTEN 0 128 *:http *:*
LISTEN 0 100 127.0.0.1:smtp *:*
LISTEN 0 128 *:entexthigh *:*
2.3 查看拥有套接字的进程
使用-p选项打印出拥有套接字的进程或PID号。使用命令如下:
ss -pl
结果如下:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
nl UNCONN 0 0 rtnl:41 *
nl UNCONN 0 0 rtnl:kernel *
nl UNCONN 0 0 rtnl:-231054382 *
nl UNCONN 0 0 tcpdiag:kernel
2.4 解析数字地址/端口
ss后加上-r参数可以将ip地址和端口解析成可读字符串,命令如下:
ss -r
结果如下:
[root@localhost ~]# ss -r
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 renwolecom:mysql renwolecom:48134
2.4 查看IPV4/IPV6套接字
通过l4可以查看IPV4类型套接字,同理l6可以查看IPV6类型套接字。命令如下:
ss -l4
ss -l6
结果如下:
root@localhost ~]# ss -l6
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
[root@localhost ~]# ss -l4
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 0.0.0.0:bootpc
2.5 查看TCP/UDP/UNIX 套接字
-t参数可以只显示tcp套接字,-u可以只查看UDP套接字,-x可以查看unix套接字。使用命令如下:
ss -t
ss -u
ss -x
结果如下:
[root@localhost ~]# ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:http *:*
[root@localhost ~]# ss -u
Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:sunwebadmins *:*
[root@localhost ~]# ss -x
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTAB 0 0 /tmp/zabbix_server_preprocessing.sock 32255 * 21809
2.6 查看套接字内存使用
使用-m参数可以查看套接字内存使用情况。命令如下:
ss -ltm
结果如下:
[root@localhost ~]# ss -ltm
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:http *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)
LISTEN 0 100 127.0.0.1:smtp *:*skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0)
2.7 查看套接字统计信息
使用-s可以对套接字使用情况进行汇总。命令如下:
ss -s
结果如下:
[root@localhost ~]# ss -s
Total: 14
TCP: 0 (estab 0, closed 0, orphaned 0, timewait 0)
Transport Total IP IPv6
RAW 0 0 0
UDP 1 1 0
TCP 0 0 0
INET 1 1 0
FRAG 0 0 0
2.8 对套接字状态进行过滤
使用ss -t state * 对套接字状态进行过滤,从而只展示需要的套接字状态的套接字信息。*可以用以下状态值进行替换,如:established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, closed-wait, last-ack,使用命令如下:
ss -t state
已展示established状态为例。执行结果如下:
[root@localhost ~]# ss -t state established
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 ::ffff:172.28.204.67:http ::ffff:123.125.71.38:49237
2.9 对端口号进行过滤
使用指定的符号可以根据端口号范围对ss结果进行过滤。支持的标识符为:小于(lt),大于(gt),等于(eq),不等于(ne),小于或等于(le),或大于或等于(ge),以大于为例,命令格式为:
ss -ltn sport ne 100
结果如下:
[root@localhost ~]# ss -ltn sport ne 100
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
2.10 显示版本号
通过 -v参数可以查看版本号。命令格式如下:
ss -v
运行结果如下:
[root@localhost ~]# ss -v
ss utility, iproute2-v5.7.0-77-gb687d1067169
3、总结
本文只对常用ss命令进行了介绍。ss的详细还请自行查阅,如:man ss
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击