文章目录
- netstat
- 描述
- 语法
- 参数
- 例子
- ss
- 描述
- 语法
- 参数
- 例子
- 总结
netstat
描述
内核中访问网络连接状态及其相关信息的程序,它能提供 TCP 连接,TCP 和 UDP 监听,进程内存管理的相关报告
语法
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: inetList 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)
参数
-t(tcp) 仅显示tcp相关选项
-u(udp) 仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名
例子
# 例如查看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 类似。
语法
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 FAMILYFAMILY := {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=QUERYQUERY := {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 FILEFILTER := [ 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}
参数
-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 尝试进行域名解析,地址/端口
例子
ss -tunlp | head -n4
总结
-
netstat
是一个传统且广泛使用的网络统计工具,它可以显示网络连接、路由表、接口统计信息等。它能够提供有关 TCP、UDP、ICMP 和其他协议的信息,并可以展示监听中的端口和活动的网络连接。然而,在较新的 Linux 内核中,由于其性能问题(尤其是在处理大量 socket 时),netstat 逐渐被替代。 -
ss (Socket Statistics)是新一代的工具,设计用于替代 netstat。ss 的优势在于:
- 性能更优:ss 直接从 Linux 内核获取套接字统计数据,而非通过遍历 /proc 文件系统,因此在处理大量 socket 时速度更快。
- 功能更强:ss 提供了比 netstat 更为详尽和深入的 TCP、UDP 以及其他套接字层信息。
- 实时性更好:ss 能够提供更实时的网络连接视图。