龙空技术网

如何查看Linux TCP/UDP连接信息-ss命令

徐福工程师 263

前言:

当前小伙伴们对“netstat命令查看tcp连接”大约比较关心,大家都想要分析一些“netstat命令查看tcp连接”的相关资讯。那么小编同时在网络上网罗了一些对于“netstat命令查看tcp连接””的相关资讯,希望兄弟们能喜欢,看官们快快来学习一下吧!

“ss”命令和“netstat”命令是Linux系统中常用的查看网络连接信息的工具。ss是“Socket Statistics”的缩写,它用来获取socket的统计信息。相较于“netstat”命令,ss命令能够显示更多更详细的有关TCP/UDP的连接状态信息。因为ss利用到了TCP协议栈中“tcp_diag”(tcp_diag是一个用于分析统计的模块,可以获得Linux内核第一手信息),所以执行速度比“netstat”更快速。也正因为ss的显著优势,一些Linux发行版已经默认使用ss命令替换了较老的“netstat”命令。

ss可以提供的功能包括:

TCP/UDP Sockets各种上层应用的连接状态信息连接到X server的本地进程详情方便通过各种状态过滤连接,如TCP连接状态、地址或端口等

本文通过多个实例对ss命令使用,做全方位演示:

1,显示Sockets的统计信息

aneirin@host-1:~$ ss -sTotal: 1257 (kernel 0)TCP:   379 (estab 95, closed 202, orphaned 0, synrecv 0, timewait 68/0), ports 0Transport Total     IP        IPv6*	  0         -         -        RAW	  2         1         1        UDP	  34        14        20       TCP	  177       129       48       INET	  213       144       69       FRAG	  0         0         0 

2,显示本机所有打开的网络端口、协议是TCP并打印相关进程名(需要sudo权限)

aneirin@host-1:~$ sudo ss -ltpState       Recv-Q Send-Q             Local Address:Port             Peer Address:Port                LISTEN      0      1                          10.1.1.9:5902                            *:*                           users:(("qemu-system-x86",pid=5324,fd=17))LISTEN      0      128                       *:sunrpc                                  *:*                           users:(("rpcbind",pid=396,fd=8))LISTEN      0      128                       10.1.95.9:http                          *:*                         users:(("haproxy",pid=14453,fd=8))LISTEN      0      128                        *:tproxy                                  *:*                       users:(("haproxy",pid=14453,fd=10))LISTEN      0      128                        *:epmd                                   *:*                         users:(("epmd",pid=28957,fd=3))   ......

3,找出所有处于“Established”状态的HTTP连接和SMTP连接

ss -o state established '( dport = :http or sport = :http )'    ss -o state established '( dport = :smtp or sport = :smtp )'  

4,列出去往远端地址10.1.1.2的http连接

ss  -o state established  sport \< :1024

5,列出处于“FIN-WAIT-1”状态的TCP连接(故障排查时会用到)

如在一台Web服务器上,要找到去往网络“10.1.1.0/24”且连接状态为“FIN-WAIT-1”的连接

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

6,显示源端口号小于1024且连接状态为“Established”的所有TCP连接

ss  -o state established  sport \< :1024

总结

ss命令是网络诊断的利器,掌握它在排查网络异常的时候可以起到事半功倍的效果,如果有别的需求,本文没有涉及到,可以“man ss”查看官方文档。

希望这篇文档可以帮到正在努力的你,欢迎点赞评论!

标签: #netstat命令查看tcp连接 #如何查看tcp连接