linux: netstat 与 ss 用法详解

文章目录


netstat

描述

内核中访问网络连接状态及其相关信息的程序,它能提供 TCP 连接,TCP 和 UDP 监听,进程内存管理的相关报告

语法

bash 复制代码
netstat [选项]
usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vWnNcaeol] [<Socket> ...]
       netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

        -r, --route              display routing table
        -I, --interfaces=<Iface> display interface table for <Iface>
        -i, --interfaces         display interface table
        -g, --groups             display multicast group memberships
        -s, --statistics         display networking statistics (like SNMP)
        -M, --masquerade         display masqueraded connections

        -v, --verbose            be verbose
        -W, --wide               don't truncate IP addresses
        -n, --numeric            don't resolve names
        --numeric-hosts          don't resolve host names
        --numeric-ports          don't resolve port names
        --numeric-users          don't resolve user names
        -N, --symbolic           resolve hardware names
        -e, --extend             display other/more information
        -p, --programs           display PID/Program name for sockets
        -o, --timers             display timers
        -c, --continuous         continuous listing

        -l, --listening          display listening server sockets
        -a, --all                display all sockets (default: connected)
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB
        -Z, --context            display SELinux security context for sockets

  <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}
           {-x|--unix} --ax25 --ipx --netrom
  <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
    x25 (CCITT X.25)

参数

tex 复制代码
-t(tcp) 仅显示tcp相关选项
-u(udp) 仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名

例子

bash 复制代码
# 例如查看8000 端口的情况,使用以下命令
netstat -tunlp | grep 8000 
>> tcp 0  0.0.0.0:8000 0.0.0.0:*  LISTEN  26993/nodejs

#8000 端口对应的PID号为26993 kill -9 26993

ss

描述

ss (socket statistics) 命令用来替代 netstat 的,可以用来获取 socket 统计信息,它可以显示和 netstat 类似的内容。但ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。用法同 netstat 类似。

语法

bash 复制代码
ss [选项]
Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
   -h, --help          this message
   -V, --version       output version information
   -n, --numeric       don't resolve service names
   -r, --resolve       resolve host names
   -a, --all           display all sockets
   -l, --listening     display listening sockets
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes     show process using socket
   -T, --threads       show thread using socket
   -i, --info          show internal TCP information
       --tipcinfo      show internal tipc socket information
   -s, --summary       show socket usage summary
       --tos           show tos and priority information
       --cgroup        show cgroup information
   -b, --bpf           show bpf filter socket information
   -E, --events        continually display sockets as they are destroyed
   -Z, --context       display task SELinux security contexts
   -z, --contexts      display task and socket SELinux security contexts
   -N, --net           switch to the specified network namespace name

   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet        display PACKET sockets
   -t, --tcp           display only TCP sockets
   -M, --mptcp         display only MPTCP sockets
   -S, --sctp          display only SCTP sockets
   -u, --udp           display only UDP sockets
   -d, --dccp          display only DCCP sockets
   -w, --raw           display only RAW sockets
   -x, --unix          display only Unix domain sockets
       --tipc          display only TIPC sockets
       --vsock         display only vsock sockets
       --xdp           display only XDP sockets
   -f, --family=FAMILY display sockets of type FAMILY
       FAMILY := {inet|inet6|link|unix|netlink|vsock|tipc|xdp|help}

   -K, --kill          forcibly close sockets, display what was closed
   -H, --no-header     Suppress header line
   -O, --oneline       socket's data printed on a single line
       --inet-sockopt  show various inet socket options

   -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|mptcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|packet_raw|packet_dgram|netlink|dccp|sctp|vsock_stream|vsock_dgram|tipc|xdp}[,QUERY]

   -D, --diag=FILE     Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
       STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
         TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listening|closing}
          connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
       synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
             bucket := {syn-recv|time-wait}
                big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listening|closing}

参数

tex 复制代码
-a 显示服务器上所有的sockets连播,直接列出所有网络连接
-l 显示正在监听的网络端口
-n 显示数字IP和端口,不通过域名服务器 
-p 显示使用socket的对应的程序
-t 显示TCP sockets 
-u 显示UDP sockets
-4 -6 显示v或v6V版本的sockets
-s 查看当前服务器的网络连接统计,打印出统计信息 
-0 显示PACKET sockets
-w 显示RAW sockets
-x 显示UNIX域sockets
-r 尝试进行域名解析,地址/端口

例子

bash 复制代码
ss -tunlp | head -n4

总结

  1. netstat

    是一个传统且广泛使用的网络统计工具,它可以显示网络连接、路由表、接口统计信息等。它能够提供有关 TCP、UDP、ICMP 和其他协议的信息,并可以展示监听中的端口和活动的网络连接。然而,在较新的 Linux 内核中,由于其性能问题(尤其是在处理大量 socket 时),netstat 逐渐被替代。

  2. ss (Socket Statistics)是新一代的工具,设计用于替代 netstat。ss 的优势在于:

    1. 性能更优:ss 直接从 Linux 内核获取套接字统计数据,而非通过遍历 /proc 文件系统,因此在处理大量 socket 时速度更快。
    2. 功能更强:ss 提供了比 netstat 更为详尽和深入的 TCP、UDP 以及其他套接字层信息。
    3. 实时性更好:ss 能够提供更实时的网络连接视图。
相关推荐
秋风起,再归来~2 分钟前
【Linux庖丁解牛】—Linux基本指令(中)!
linux·指令
Eternal-Student13 分钟前
预处理、编译、汇编、链接
linux·汇编·windows
sp_wxf1 小时前
Stream流
linux·服务器·windows
LYK_HAHA1 小时前
centos常用知识和命令
linux·运维·centos
PythonFun2 小时前
自建RustDesk服务器:详细步骤与操作指南
运维·服务器
Android技术栈2 小时前
鸿蒙开发(NEXT/API 12)【管理应用与Wear Engine服务的连接状态】手机侧应用开发
服务器·harmonyos·鸿蒙·鸿蒙系统·openharmony
可涵不会debug2 小时前
【Linux】信号知识三把斧——信号的产生、保存和处理
linux·运维·信号
笑的像个child2 小时前
使用树莓派搭建音乐服务器
服务器·树莓派·navidrome
facaixxx20242 小时前
京东云主机怎么用?使用京东云服务器建网站(图文教程)
运维·服务器·京东云
jyan_敬言2 小时前
【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
linux·运维·服务器·c语言·开发语言·汇编·c++