做什么

显示网络连接 / 路由表 / 接口统计——老牌网络工具,被 ss 取代。但老服务器很多还在用

sudo apt install net-tools         # 多数 Ubuntu 现在不默认装

经典姿势

sudo netstat -tlnp                 # ★ 最常用:TCP 监听 + 进程
sudo netstat -tnp                  # 已建立 TCP 连接
sudo netstat -ulnp                 # UDP 监听
sudo netstat -anp                  # 所有连接
sudo netstat -r                    # 路由表(等同 ip route)
sudo netstat -i                    # 接口统计
sudo netstat -s                    # 协议级统计

参数

参数 含义
-t TCP
-u UDP
-l 监听
-n 不解析端口 / IP
-p 显示进程(要 root)
-a 所有
-r 路由表
-i 接口统计
-s 协议统计
-c 持续刷新

netstat → ss 翻译表

netstat ss
netstat -tlnp ss -tlnp
netstat -tnp ss -tnp
netstat -ulnp ss -ulnp
netstat -anp ss -tunap
netstat -r ip route
netstat -i ip -s link

为什么还学

  • 老服务器(CentOS 6/7 / Ubuntu 14.04 等)默认装 netstat 不装 ss
  • 老脚本 / 老文档大量用 netstat
  • 个别 BSD / macOS 没有 ss

速度对比

time netstat -anp > /dev/null      # 大连接量服务器可能 5+ 秒
time ss -anp > /dev/null           # 通常 < 0.5 秒

新系统直接用 ss

  • 现代 Ubuntu 默认不装 netstat——apt install net-tools
  • netstat 解析 /proc/net/* 全部内容——大连接量时慢
  • 路由相关功能用 ip route 替代更好