赞
踩
目 录
Linux下的ss命令是Socket Statistics的缩写,也被称为IPC(Inter-Process Communication)套接字统计。这是一个强大的网络管理命令,主要用于获取系统中socket的统计信息,可以帮助系统管理员诊断和排查网络问题,包括检查当前网络连接及端口状态、搜索网络问题、统计网络情况、过滤网络数据等等,从而解决网络问题,节省管理工作量,保证网络安全。
ss命令的功能和netstat类似,相对netstat,但它具有一些明显的优势:
首先,ss命令能显示更多更详细的TCP和连接状态的信息。
其次,它在处理大量socket连接时,比netstat更快更高效。这是因为ss命令利用了TCP协议栈中的tcp_diag模块,这个模块可以获得Linux内核中的第一手信息,因此其性能优于其他工具。
ss命令的使用方式也非常灵活,可以通过添加不同的参数来查看不同类型的信息。例如,使用-a参数可以列出所有连接状态;使用-t参数可以只列出TCP连接状态;使用-u参数可以只列出UDP连接状态;使用-l参数可以只列出监听状态;使用-s参数可以列出已经建立的连接状态。这些参数可以组合使用,以满足不同的查看需求。
ss [选项]
ss命令的语法相对直观且灵活,允许用户通过不同的选项来获取所需的网络套接字信息。
如下列举一些常用的选项,若需要了解更多,可以使用 ss --help 查看。
-n, --numeric:以数字格式显示地址和端口。使用此选项可以避免将地址和端口转换为主机名或服务名,从而加快查询速度。
-t, --tcp:仅显示TCP套接字信息。
-u, --udp:仅显示UDP套接字信息。
-l, --listening:仅显示处于监听状态的套接字。
-a, --all:显示所有套接字信息,包括监听和非监听状态的套接字。
-r, --resolve:尝试解析服务名为主机名。
-p, --processes:显示与每个套接字相关联的进程信息,包括进程ID和进程名称。
-e, --extended:显示详细的TCP套接字信息。
-s, --summary:显示套接字统计摘要信息。
(1). 显示所有TCP套接字信息:
ss -t -a
(2). 显示所有UDP套接字信息:
ss -u -a
(3). 显示所有监听状态的套接字及其对应的进程信息:
ss -l -p
(4). 以数字格式显示所有套接字信息及其统计摘要:
ss -n -a -s
通过组合不同的选项,你可以定制ss命令的输出以满足特定的需求。ss命令的输出结果通常包括套接字的类型(TCP或UDP)、状态(如LISTEN、ESTAB等)、本地地址和端口、远程地址和端口(如果有的话),以及与之关联的进程信息(如果使用了-p选项)。
ss命令在处理大量网络连接时表现出色,因为它直接利用内核中的信息,避免了像netstat那样通过/proc接口获取数据的开销。因此,在处理大型网络或高并发环境时,ss通常是一个更好的选择。
请注意,为了使用ss命令并查看其所有功能,你可能需要具有足够的系统权限(如root用户或sudo权限)。
ss命令在linux网络维护中的应用实例非常广泛,尤其在网络诊断和性能监控方面发挥着重要作用。以下是一些具体的应用实例:
ss命令可以用来实时查看系统的网络tcp连接状态。例如,你可以使用以下命令查看所有已建立的TCP连接:
ss -t -a
显示效果如下:
- [root@ecs-52a1 home]#
- [root@ecs-52a1 home]# ss -t -a
- State Recv-Q Send-Q Local Address:Port Peer Address:Port
- LISTEN 0 20 0.0.0.0:26091 0.0.0.0:*
- LISTEN 0 511 127.0.0.1:redis 0.0.0.0:*
- LISTEN 0 1024 192.168.0.138:7660 0.0.0.0:*
- LISTEN 0 1024 192.168.0.138:7661 0.0.0.0:*
- LISTEN 0 128 0.0.0.0:quake 0.0.0.0:*
- LISTEN 0 128 0.0.0.0:26001 0.0.0.0:*
- LISTEN 0 100 0.0.0.0:tproxy 0.0.0.0:*
- LISTEN 0 20 0.0.0.0:25298 0.0.0.0:*
- LISTEN 0 128 0.0.0.0:25554 0.0.0.0:*
- LISTEN 0 100 0.0.0.0:us-srv 0.0.0.0:*
- LISTEN 0 512 0.0.0.0:26035 0.0.0.0:*
- LISTEN 0 1024 0.0.0.0:5060 0.0.0.0:*
- LISTEN 0 100 0.0.0.0:8084 0.0.0.0:*
- LISTEN 0 100 0.0.0.0:d-s-n 0.0.0.0:*
- LISTEN 0 512 0.0.0.0:26080 0.0.0.0:*
- LISTEN 0 128 0.0.0.0:gbjd816 0.0.0.0:*
- LISTEN 0 512 0.0.0.0:26085 0.0.0.0:*
- LISTEN 0 511 0.0.0.0:36285 0.0.0.0:*
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52118
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52144
- TIME-WAIT 0 0 127.0.0.1:34804 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34790 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34820 127.0.0.1:mysql
- ESTAB 0 0 127.0.0.1:34406 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52148
- CLOSE-WAIT 1 0 127.0.0.1:34576 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:quake 127.0.0.1:49312
- ESTAB 0 0 127.0.0.1:34456 127.0.0.1:redis
- TIME-WAIT 0 0 127.0.0.1:34770 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52132
- ESTAB 0 0 127.0.0.1:redis 127.0.0.1:35096
- TIME-WAIT 0 0 127.0.0.1:34798 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34796 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52116
- TIME-WAIT 0 0 127.0.0.1:34876 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34764 127.0.0.1:mysql
- ESTAB 0 0 127.0.0.1:34454 127.0.0.1:redis
- TIME-WAIT 0 0 127.0.0.1:34808 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52140
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52154
- TIME-WAIT 0 0 127.0.0.1:34760 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34816 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34826 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34830 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34774 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34776 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34772 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52124
- TIME-WAIT 0 0 127.0.0.1:34828 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52150
- ESTAB 0 0 127.0.0.1:35948 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34768 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34818 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34802 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34880 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34878 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52122
- ESTAB 0 0 192.168.0.138:25298 58.209.200.204:63585
- TIME-WAIT 0 0 127.0.0.1:34810 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52152
- TIME-WAIT 0 0 127.0.0.1:34794 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52162
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52134
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52146
- TIME-WAIT 0 0 127.0.0.1:34800 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34824 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52136
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52130
- TIME-WAIT 0 0 127.0.0.1:34778 127.0.0.1:mysql
- ESTAB 0 0 127.0.0.1:35096 127.0.0.1:redis
- ESTAB 0 0 127.0.0.1:34814 127.0.0.1:mysql
- CLOSE-WAIT 1 0 127.0.0.1:60698 127.0.0.1:mysql
- ESTAB 0 0 127.0.0.1:42140 127.0.0.1:redis
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52068
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52126
- ESTAB 0 0 192.168.0.138:5060 58.209.200.204:6273
- ESTAB 0 48 192.168.0.138:gbjd816 180.106.101.105:51979
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52120
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52138
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52128
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52142
- TIME-WAIT 0 0 127.0.0.1:quake 127.0.0.1:49270
- TIME-WAIT 0 0 127.0.0.1:34792 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34834 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:tproxy 127.0.0.1:52046
- TIME-WAIT 0 0 127.0.0.1:34812 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34784 127.0.0.1:mysql
- ESTAB 0 0 127.0.0.1:redis 127.0.0.1:34456
- ESTAB 0 0 127.0.0.1:redis 127.0.0.1:34454
- ESTAB 0 0 127.0.0.1:redis 127.0.0.1:42140
- TIME-WAIT 0 0 127.0.0.1:34782 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34832 127.0.0.1:mysql
- ESTAB 0 0 192.168.0.138:gbjd816 180.106.101.105:51983
- TIME-WAIT 0 0 127.0.0.1:34786 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34806 127.0.0.1:mysql
- TIME-WAIT 0 0 127.0.0.1:34762 127.0.0.1:mysql
- LISTEN 0 128 *:26090 *:*
- LISTEN 0 110 *:mysql *:*
- LISTEN 0 1024 *:cadkey-tablet *:*
- LISTEN 0 128 [::]:gbjd816 [::]:*
- LISTEN 0 1 [::ffff:127.0.0.1]:mxi *:*
- LISTEN 0 100 *:36286 *:*
- ESTAB 0 0 [::ffff:127.0.0.1]:mysql [::ffff:127.0.0.1]:35948
- ESTAB 0 0 [::ffff:127.0.0.1]:mysql [::ffff:127.0.0.1]:34406
- ESTAB 0 0 [::ffff:127.0.0.1]:mysql [::ffff:127.0.0.1]:34814
- [root@ecs-52a1 home]#
这将显示所有TCP套接字的状态,包括本地地址、端口,远程地址、端口以及连接状态。这对于诊断连接问题或监控异常连接非常有用。
如果你想查找特定端口的使用情况,比如查看哪些进程正在监听某个端口,可以使用以下命令:
ss -l -p | grep :port
显示效果如下:
- [root@ecs-52a1 home]#
- [root@ecs-52a1 home]# ss -l -p | grep :5060
- udp UNCONN 0 0 0.0.0.0:5060 0.0.0.0:* users:(("spsvr.ot",pid=4070154,fd=28))
- tcp LISTEN 0 1024 0.0.0.0:5060 0.0.0.0:* users:(("spsvr.ot",pid=4070154,fd=30))
- [root@ecs-52a1 home]#
- [root@ecs-52a1 home]#
这将列出所有监听状态的套接字,并通过grep命令筛选出包含指定端口的行。你可以看到哪个进程在使用该端口,这对于排查端口冲突或配置问题非常有帮助。
监听套接字是系统等待外部连接的地方。使用ss命令可以轻松检查这些套接字:
ss -l
显示效果如下:
- [root@ecs-52a1 home]# ss -l
- Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
- nl UNCONN 0 0 rtnl:kernel *
- nl UNCONN 0 0 rtnl:NetworkManager/785 *
- nl UNCONN 0 0 rtnl:1619002082 *
- nl UNCONN 0 0 rtnl:1619002082 *
- nl UNCONN 0 0 rtnl:NetworkManager/785 *
- nl UNCONN 768 0 tcpdiag:kernel *
- nl UNCONN 4352 0 tcpdiag:ss/559906 *
- nl UNCONN 0 0 xfrm:kernel *
- nl UNCONN 0 0 selinux:kernel *
- nl UNCONN 0 0 audit:auditd/648 *
- nl UNCONN 0 0 audit:systemd/1 *
- nl UNCONN 0 0 audit:kernel *
- nl UNCONN 0 0 fiblookup:kernel *
- nl UNCONN 0 0 connector:kernel *
- nl UNCONN 0 0 nft:firewalld/3263222 *
- nl UNCONN 0 0 nft:kernel *
- nl UNCONN 0 0 nft:firewalld/1713136 *
- nl UNCONN 0 0 uevent:-1150840370 *
- nl UNCONN 0 0 uevent:livevis/743 *
- nl UNCONN 0 0 uevent:-151554764 *
- nl UNCONN 0 0 uevent:systemd/1 *
- nl UNCONN 0 0 uevent:-16572259 *
- nl UNCONN 0 0 uevent:kernel *
- nl UNCONN 0 0 uevent:systemd/7933 *
- nl UNCONN 0 0 uevent:tuned/903 *
- nl UNCONN 0 0 uevent:-1695702478 *
- nl UNCONN 0 0 uevent:systemd-logind/941 *
- nl UNCONN 0 0 uevent:NetworkManager/785 *
- nl UNCONN 0 0 uevent:-1253949290 *
- nl UNCONN 0 0 uevent:systemd/7933 *
- nl UNCONN 0 0 uevent:livevis/743 *
- nl UNCONN 0 0 uevent:tuned/903 *
- nl UNCONN 0 0 uevent:-151554764 *
- nl UNCONN 0 0 uevent:-1695702478 *
- nl UNCONN 0 0 uevent:-1150840370 *
- nl UNCONN 0 0 uevent:systemd-logind/941 *
- nl UNCONN 0 0 uevent:-1253949290 *
- nl UNCONN 0 0 uevent:NetworkManager/785 *
- nl UNCONN 0 0 uevent:-16572259 *
- nl UNCONN 0 0 uevent:systemd/1 *
- nl UNCONN 0 0 genl:NetworkManager/785 *
- nl UNCONN 0 0 scsi-trans:kernel *
- u_str LISTEN 0 110 /tmp/mysql.sock 646125406 * 0
- u_seq LISTEN 0 128 /run/udev/control 16145 * 0
- u_str LISTEN 0 1 @irqbalance773.sock 19682 * 0
- u_dgr UNCONN 0 0 /run/user/1003/systemd/notify 28707 * 0
- u_str LISTEN 0 128 /run/user/1003/systemd/private 28711 * 0
- u_str LISTEN 0 128 /run/user/1003/bus 28717 * 0
- u_str LISTEN 0 128 /var/lib/sss/pipes/private/sbus-monitor 17892 * 0
- u_str LISTEN 0 128 /var/lib/sss/pipes/private/sbus-dp_implicit_files.907 19756 * 0
- u_dgr UNCONN 0 0 /run/systemd/notify 12353 * 0
- u_dgr UNCONN 0 0 /run/systemd/cgroups-agent 12355 * 0
- u_seq LISTEN 0 128 /run/systemd/coredump 16202 * 0
- u_dgr UNCONN 0 0 /run/systemd/journal/dev-log 12371 * 0
- u_str LISTEN 0 128 /run/systemd/journal/stdout 12376 * 0
- u_dgr UNCONN 0 0 /run/systemd/journal/socket 12379 * 0
- u_str LISTEN 0 128 /run/systemd/private 13933 * 0
- u_str LISTEN 0 128 /var/run/.heim_org.h5l.kcm-socket 16763 * 0
- u_str LISTEN 0 128 /run/dbus/system_bus_socket 16766 * 0
- u_str LISTEN 0 10 /var/lib/sss/pipes/nss 19805 * 0
- u_dgr UNCONN 0 0 /var/run/chrony/chronyd.sock 19692 * 0
- u_dgr UNCONN 0 0 * 27618 * 12379
- u_dgr UNCONN 0 0 * 28710 * 28709
- u_dgr UNCONN 0 0 * 2810 * 12353
- u_dgr UNCONN 0 0 * 18259 * 12371
- u_dgr UNCONN 0 0 * 16531 * 12379
- u_dgr UNCONN 0 0 * 16550 * 16551
- u_dgr UNCONN 0 0 * 17875 * 0
- u_dgr UNCONN 0 0 * 12358 * 12357
- u_dgr UNCONN 0 0 * 17040 * 12371
- u_dgr UNCONN 0 0 * 16480 * 12371
- u_dgr UNCONN 0 0 * 16452 * 12379
- u_dgr UNCONN 0 0 * 16551 * 16550
- u_dgr UNCONN 0 0 * 28709 * 28710
- u_dgr UNCONN 0 0 * 976709589 * 12371
- u_dgr UNCONN 0 0 * 26731 * 12371
- u_dgr UNCONN 0 0 * 19745 * 0
- u_dgr UNCONN 0 0 * 19769 * 0
- u_dgr UNCONN 0 0 * 215651703 * 12371
- u_dgr UNCONN 0 0 * 976712295 * 12371
- u_dgr UNCONN 0 0 * 27764 * 12371
- u_dgr UNCONN 0 0 * 976711320 * 12371
- u_dgr UNCONN 0 0 * 8284921 * 12371
- u_dgr UNCONN 0 0 * 511331087 * 12371
- u_dgr UNCONN 0 0 * 16919 * 12371
- u_dgr UNCONN 0 0 * 12357 * 12358
- u_dgr UNCONN 0 0 * 20171 * 12379
- u_dgr UNCONN 0 0 * 17877 * 0
- udp UNCONN 0 0 0.0.0.0:5060 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:56444 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:56445 0.0.0.0:*
- udp UNCONN 0 0 192.168.0.138:7660 0.0.0.0:*
- udp UNCONN 0 0 192.168.0.138:7663 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:20186 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:20192 0.0.0.0:*
- udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:25292 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:zenginkyo-1 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:5040 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:vtsas 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:onscreen 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:5095 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:26086 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:55732 0.0.0.0:*
- udp UNCONN 0 0 0.0.0.0:55733 0.0.0.0:*
- udp UNCONN 0 0 [::1]:323 [::]:*
- tcp LISTEN 0 20 0.0.0.0:26091 0.0.0.0:*
- tcp LISTEN 0 511 127.0.0.1:redis 0.0.0.0:*
- tcp LISTEN 0 1024 192.168.0.138:7660 0.0.0.0:*
- tcp LISTEN 0 1024 192.168.0.138:7661 0.0.0.0:*
- tcp LISTEN 0 128 0.0.0.0:quake 0.0.0.0:*
- tcp LISTEN 0 128 0.0.0.0:26001 0.0.0.0:*
- tcp LISTEN 0 100 0.0.0.0:tproxy 0.0.0.0:*
- tcp LISTEN 0 20 0.0.0.0:25298 0.0.0.0:*
- tcp LISTEN 0 128 0.0.0.0:25554 0.0.0.0:*
- tcp LISTEN 0 100 0.0.0.0:us-srv 0.0.0.0:*
- tcp LISTEN 0 512 0.0.0.0:26035 0.0.0.0:*
- tcp LISTEN 0 1024 0.0.0.0:5060 0.0.0.0:*
- tcp LISTEN 0 100 0.0.0.0:8084 0.0.0.0:*
- tcp LISTEN 0 100 0.0.0.0:d-s-n 0.0.0.0:*
- tcp LISTEN 0 512 0.0.0.0:26080 0.0.0.0:*
- tcp LISTEN 0 128 0.0.0.0:gbjd816 0.0.0.0:*
- tcp LISTEN 0 512 0.0.0.0:26085 0.0.0.0:*
- tcp LISTEN 0 511 0.0.0.0:36285 0.0.0.0:*
- tcp LISTEN 0 128 *:26090 *:*
- tcp LISTEN 0 110 *:mysql *:*
- tcp LISTEN 0 1024 *:cadkey-tablet *:*
- tcp LISTEN 0 128 [::]:gbjd816 [::]:*
- tcp LISTEN 0 1 [::ffff:127.0.0.1]:mxi *:*
- tcp LISTEN 0 100 *:36286 *:*
- [root@ecs-52a1 home]#
通过查看监听这些套接字,你可以了解哪些服务正在运行并等待连接,这对于系统管理员确保所有必需的服务都在运行至关重要。
结合其他工具,ss命令可以用于监控网络流量和性能。例如,你可以通过ss命令获取套接字统计信息,然后使用awk、grep等工具进行进一步分析,以识别潜在的瓶颈或异常流量模式。
ss命令的响应速度快,使得它成为快速排除网络问题的理想工具。当遇到网络故障时,管理员可以迅速运行ss命令来检查连接状态和端口使用情况,从而快速定位问题所在。
这些只是ss命令在linux网络维护中的一些应用实例。实际上,ss命令的功能非常强大,可以根据具体需求进行定制和扩展。通过灵活运用ss命令,系统管理员可以更加高效地管理和维护Linux系统的网络部分。
若想了解更多,可以“点击” 下面的 “威迪斯特 微信名片”,就会出现我的二维码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。