Linux 命令之 - ss
命令简介
ss
是一个用于显示Socket统计信息的命令,它可以查看Socket的详细信息,包括Socket类型、状态、进程等。ss
命令是较新的工具,它比老的 netstat
命令有更多的功能,输出信息也更加详细清晰。因此,在现代 Linux 系统中,ss
命令被推荐作为查看网络连接信息的首选工具。
命令格式
1 | ss [options] [filter] |
参数说明
命令实例
基础用法
1.显示所有监听状态的 Socket
1 | $ ss -l |
2.显示所有 TCP Socket 连接
1 | $ ss -t -a |
3.显示所有 UDP Socket 连接
1 | $ ss -u -a |
4.显示所有 TCP/UDP Socket 连接
1 | $ ss -tu |
5.显示所有进程使用的 Socket
1 | $ ss -p |
6.显示所有进程使用的 TCP Socket
1 | $ ss -pt |
7.显示所有进程使用的 UDP Socket
1 | $ ss -pu |
8.显示指定状态的 TCP Socket
1 | $ ss -nt state established |
9.显示指定端口的 Socket 连接
1 | $ ss -nt sport = :80 |
10.显示指定地址的 Socket 连接
1 | $ ss -nt dst 192.168.1.1 |
扩展使用方法
1.显示详细的 Socket 信息
1 | $ ss -e |
这个命令会显示更多的 Socket 信息,如 Socket 类型、状态、计时器等。
2.显示内存使用情况
1 | $ ss -m |
这个命令会显示每个 Socket 的内存使用情况。
3.显示 TCP 内部信息
1 | $ ss -ti |
这个命令会显示 TCP Socket 的内部信息,如重传队列、拥塞窗口等。
4.显示汇总统计信息
1 | $ ss -s |
这个命令会显示 Socket 的汇总统计信息,如已使用的 Socket 数量、内存使用情况等。
5.用于显示正在监听的 TCP 和 UDP Socket 连接信息,同时显示进程信息
1 | $ ss -lntp |
通过这个命令,你可以查看系统上所有正在监听的 TCP 和 UDP 端口,以及哪些进程在监听这些端口。这对于确认系统上运行的网络服务、排查网络连接问题等非常有用。
高级使用方法
1.过滤特定协议族的 Socket
1 | $ ss -f inet # 显示 IPv4 和 IPv6 Socket |
2.使用查询语句过滤 Socket
ss
命令支持使用查询语句来过滤 Socket,语法为 ss -A query
。常用的查询语句包括:
dport
/sport
: 目标/源端口号dst
/src
: 目标/源地址state
: TCP 连接状态uid
: 用户 IDinum
: inode 号kernel
: 内核 Socket
例如:
1 | $ ss -A 'dport = :80' # 显示目标端口为 80 的 Socket |
3.将输出结果保存到文件
1 | $ ss > socket.txt |
这个命令会将 ss
的输出结果保存到 socket.txt
文件中。
以上就是关于 ss
命令的详细介绍和使用示例,希望对你有所帮助。如果还有任何疑问或需要进一步的帮助,欢迎随时提出。