快速定位机器上占用网络带宽最多的进程
nethogs
该工具可以快速定位到机器上占用带宽最多的进程或者连接。
安装方法
sudo yum install nethogs
快捷指令
nethogs ${interface}
nethogs bond0
效果如下
iftop
该工具可以快速定位占用带宽最多的连接
安装方法
sudo yum install iftop
快捷指令
iftop -i ${interface}
sudo iftop -i bond0
接着,依次按下n(将主机名显示为ip) N(将服务名显示为port号) p(显示端口) 三个键,
ss
利用该工具快速查询linux服务器上套接字状态,可以替代netstat的功能,而且性能更好。
快捷命令
sudo ss -tlp |column
基本格式
ssh 选项 [过滤条件]
选项
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options 显示计时器信息
-e, --extended 显示详细的套接字(sockets)信息
-m, --memory 显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4 仅显示IPv4的套接字(sockets)
-6, --ipv6 仅显示IPv6的套接字(sockets)
-0, --packet 显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件
-F, --filter=FILE 从文件中都去过滤器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
过滤条件
ss的过滤器分为两种:
state
状态:established,syn-sent,syn-recv,fin-wait-1,fin-wait-2,time-wait,closed,close-wait,last-ack,listen,closing
除了这13种状态之外,还有几个聚类的状态:
all – for all the states
bucket – 显示状态为maintained as minisockets,如:time-wait和syn-recv
big – 和bucket相反
connected – 除了listen and closed的所有状态
synchronized – 所有已连接的状态除了syn-sent
addr+port
地址和端口可以使用表达式,类似于tcpdump中的用法,关键字有:
dst ADDRESS_PATTERN – matches remote address and port
src ADDRESS_PATTERN – matches local address and port
dport RELOP PORT – compares remote port to a number
sport RELOP PORT – compares local port to a number
autobound – checks that socket is bound to an ephemeral port