linux下如何用ss

nux下使用ss命令查看网络连接,常用参数如-t显TCP、-u显UDP、-a全连接、-p带进程信息。

Linux系统中,ss(Socket Statistics)是一个强大的网络诊断工具,用于实时监控和分析网络连接、端口状态及协议统计信息,以下是关于如何使用ss命令的详细说明:

linux下如何用ss

基础语法与核心参数

ss的基本语法为:ss [OPTIONS] [FILTER],其中可选参数决定了输出内容的详细程度和过滤条件,以下是常用参数及其功能:

参数 功能描述
-t 仅显示TCP类型的套接字
-u 仅显示UDP类型的套接字
-l 只列出处于监听状态(LISTEN)的端口
-a 显示所有套接字(包括监听和非监听状态)
-n 以数字形式展示地址和端口号,避免解析主机名或服务名称(如直接显示80而非http)
-p 关联进程信息,需root权限才能查看进程ID(PID)和程序名称
-s 提供全局统计摘要,如各类socket的数量与状态
-o 显示TCP定时器相关信息(例如重传超时、保活机制等),适用于调试连接异常问题
-e 扩展模式,展示更详细的元数据(如用户ID、inode节点号)
-m 显示内存使用情况
-i 显示TCP内部指标,如往返时延(RTT)、拥塞控制算法等
-4/-6 分别限制为IPv4或IPv6协议

常见应用场景示例

查看所有活动连接

执行ss -a可列出系统中所有的TCP和UDP连接,输出字段包括:协议类型(Netid)、状态(State)、接收队列长度(Recv-Q)、发送队列长度(Send-Q)、本地地址:端口以及远程对端的地址:端口。

Netid  State      Recv-Q Send-Q    Local Address:Port     Peer Address:Port
tcp    ESTAB      0      0        192.168.1.100:55432    192.168.1.1:22
udp    UNCONN     0      0        :68                   :

ESTAB表示已建立的有效连接,而UDP因无连接特性通常显示为UNCONN

过滤特定类型的流量

若需专注于某一协议,可通过组合参数实现精准筛选:

linux下如何用ss

  • 查看所有TCP连接ss -t -a
  • 查看所有UDP连接ss -u -a
  • 仅显示监听中的端口ss -l(常用于快速识别服务开放的入口,如SSH、HTTP等)

关联进程定位问题

当怀疑某个端口被未知应用占用时,使用sudo ss -t -p结合权限提升,可以获取到进程名、PID及文件描述符。

tcp   ESTAB   0      0      192.168.1.100:ssh    192.168.1.1:54321    users:(( "sshd",pid=1234,fd=3))

此命令帮助管理员迅速锁定占用资源的进程,便于后续处理如终止或调整配置。

按条件精细筛选

ss支持复杂的过滤表达式,满足多样化的需求:

  • 指定目标端口ss dport=:80ss sport=:80,分别针对目的端口或源端口进行匹配。
  • 特定IP地址交互ss src 192.168.1.1 查看来自该源IP的所有连接;ss dst 192.168.1.1则反向查询指向该目标IP的链接。
  • 关注特定状态:如排查高并发下的TIME-WAIT堆积问题,可用ss -t state time-wait

高级功能拓展

  • 统计概览:运行ss -s会得到系统级别的汇总数据,涵盖TCP、UDP、RAW等各类socket的数量及其不同状态分布,有助于宏观把握网络负载状况。
  • TCP行为分析:通过ss -to观察计时器设置,比如保持活跃探针的时间间隔,这对优化长连接的稳定性至关重要。
  • 多维度排序与后处理:借助管道符将输出传递给grepawk等工具,实现自动化解析和告警触发,监测异常地理位置的登录尝试:ss -tnp | grep '192.168'

实战案例:排查Web服务器性能下降原因

假设某网站响应变慢,怀疑是由于过多并发连接导致资源耗尽,此时可以通过以下步骤诊断:

linux下如何用ss

  1. 使用ss -tunap查看当前活跃会话,特别是HTTP相关的端口(如80/443)。
  2. 如果发现大量TIME-WAIT状态的连接,可能表明客户端断开后未正确释放资源,这时可以考虑调优内核参数net.ipv4.tcp_tw_reuse以复用这些端口。
  3. 进一步用ss -s检查是否存在大量的CLOSE_WAIT状态,这通常意味着应用程序没有正确关闭socket,可能存在漏洞或死锁。

FAQs

Q1: ss命令相比传统的netstat有什么优势?
A1: ss直接从内核获取数据,执行速度比netstat快10倍以上,且支持更丰富的过滤选项和更详细的TCP状态信息展示,它在处理大量并发连接时资源占用更低,更适合现代高性能服务器环境。

Q2: 为什么执行带-p参数的命令时提示权限不足?
A2: 因为显示进程信息需要访问其他用户的空间进程详情,必须拥有root权限才能完成这一操作,解决方案是在命令前添加sudo,`sudo

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/77910.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月26日 18:16
下一篇 2025年7月26日 18:18

相关推荐

  • linux如何编辑只读文件

    Linux中编辑只读文件,可使用vi -R 文件名打开后输入:wq!强制保存,或用sudo chattr -i 文件名改属性后编辑

    2025年7月14日
    000
  • linux如何添加文件

    Linux中添加文件有多种方法,如使用touch filename创建空文件,echo “content” ˃ filename写入内容,cat ˃˃ filename追加内容,或用vim filename编辑文件

    2025年7月21日
    000
  • Linux命令卡住了怎么强制退出?

    按下Ctrl+C组合键可立即终止当前运行的前台命令,若进程进入后台,先用Ctrl+Z暂停任务,再用kill命令或killall根据进程ID强制结束,信号SIGINT和SIGKILL是常用中断机制。

    2025年5月30日
    400
  • linux如何查看串口

    Linux中,可通过ls /dev/tty查看所有串口设备,用dmesg | grep tty查看系统启动时串口信息

    2025年7月12日
    000
  • Linux外置存储怎么扩容?

    Linux可通过挂载外置存储设备扩展容量,操作步骤:1. 连接设备(如U盘/硬盘);2. 使用 fdisk -l 或 lsblk 识别设备;3. 用 fdisk/parted 分区(若需);4. 用 mkfs 格式化(如 mkfs.ext4);5. 创建挂载点 mkdir /mnt/mydrive;6. 用 mount /dev/sdX1 /mnt/mydrive 挂载,永久挂载需编辑 /etc/fstab。

    2025年6月28日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN