MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > linux / 正文

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

2024-11-26 15:21 huorong linux 4 ℃ 0 评论

“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 -s
Total: 1257 (kernel 0)
TCP:   379 (estab 95, closed 202, orphaned 0, synrecv 0, timewait 68/0), ports 0

Transport 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 -ltp
State       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”查看官方文档。

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

Tags:linux查看网络连接

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言