首页/网络/网络排障速查/netstat 与 ss 参数对照迁移

netstat 与 ss 参数对照迁移

netstat 属于老牌 net-tools,新版发行版默认不装且在文档中标注 deprecated;存量系统与老脚本仍常见,需要掌握它与 ss 的等价写法。

网络排障速查网络更新于 2026-10-13

netstat 的现状与替代

netstat 属于老牌 net-tools 套件,多个主流发行版已不再默认安装,并在文档中标记为将被淘汰;但存量系统、老脚本与部分精简镜像里仍然常见,所以需要掌握它与 ss 的等价写法。ss 直接读取内核的套接字信息,在连接数很多时明显更快,参数语义与 netstat 高度相似,迁移成本很低。

基本信息

适用平台Linux(netstat 来自 net-tools,ss 来自 iproute2)
关键差异ss 从内核直接取值,连接量大时性能优势明显
常用参数-t TCP、-u UDP、-l 监听、-n 数字、-p 显示进程、-a 全部
权限要求查看进程信息需 root 或同属主
容器环境很多基础镜像只带 iproute2,不装 net-tools

netstat 与 ss 对照

netstatss / 替代命令说明
netstat -tulnpss -tulnp监听端口与进程(最常用)
netstat -anpss -anp全部连接,含监听与已建立
netstat -sss -s 或 nstat -az协议栈统计
netstat -rnip route路由表
netstat -iip -s link接口计数
netstat -cwatch ss持续刷新观察
netstat -tan statess -tan state <状态>按状态过滤(写法不同)

典型使用场景

  • 老系统或老脚本维护:沿用 netstat 但知道对应的 ss 写法,便于升级迁移
  • 容器排障:确认镜像里到底有没有 netstat,避免现场才发现命令不存在
  • 快速确认监听端口:ss -tulnp 一步到位
  • 查看协议栈统计:ss -s 给出比 netstat -s 更紧凑的汇总
  • 按状态统计连接:ss 支持 state 过滤,比 netstat 手工筛选更准确

常用示例

常用示例
ss -tulnp | grep LISTEN                     # 现代写法:监听端口与进程
netstat -tulnp | grep LISTEN                # 老系统的等价写法
ss -tan state time-wait | wc -l             # 按状态统计(netstat 无直接等价参数)
netstat -i | head                           # 接口收发与错误计数(对应 ip -s link)
command -v netstat ss ip                    # 先确认现场有哪些工具可用
新系统上执行 netstat 提示 command not found 通常是 net-tools 未安装,不代表系统损坏;排障时应优先使用 ss,而不是急着装包。
迁移建议:把运维手册里常用的几条 netstat 检查项提前改写成 ss 等价命令,脚本与文档同步更新,避免系统升级后现场才发现命令不存在。
判断现场该用哪个工具:先执行 command -v ss netstat ip,确认哪些命令存在再选写法,比照着旧文档硬敲更省时间。

易错点

  • 在容器或精简镜像里依赖 netstat:很多基础镜像只带 iproute2,命令不存在导致排障中断
  • 把两种工具的状态写法混用:netstat 显示 TIME_WAIT 风格的大写下划线形式,ss 的 state 过滤用小写连字符
  • 用 netstat -s 的冗长输出做解析:不同版本字段差异大,脚本脆弱,建议改用 ss -s 或 nstat
  • 在现代系统上把 netstat 当作首选:连接数多时性能差距明显,且输出信息少于 ss

数据来源与参考

  • man 8 netstat(net-tools)
  • iproute2 文档:netstat 已弃用说明

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌