netstat 是Linux系统管理常用的一个命令,尤其是在进行网络相关问题排查的时候更是堪称‘瑞士***’。本人一直以来也只是对常用的几个选项如(a 、n、 p、 t、 u)等几个选项较为熟悉,但是对于netstat显示出来的连接的 状态信息,如下图

Linux netstat 命令入门知识_tables

多数还了解的不够透彻,今天有时间,特此照着man文档加深一下理解。

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

SYNOPSIS(概要)

netstat  [address_family_options(地址族选项)]  [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--sym-bolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c] [delay]

netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]]  [--verbose|-v]  [--numeric|-n]  [--numeric-hosts][--numeric-ports][--numeric-ports]  [--continu-ous|-c] [delay]

netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continu-ous|-c] [delay]

netstat {--groups|-g} [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]

netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]

netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w] [delay]

netstat {--version|-V}

netstat {--help|-h}

address_family_options:

[--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]]  [--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]

NOTE

This program is obsolete.  Replacement for netstat is ss.  Replacement for netstat -r is ip route.  Replacement for netstat -i is ip -s link.  Replacement for netstat  -g

is ip maddr.

注:这个程序已经是是老旧的/废弃的了(但是依然很常用)。新版本的系统以ss命令来替代netstat,以ip route来替代netstat -r,以ip maddr来替代netstat -g。

DESCRIPTION(摘要)

Netstat prints information about the Linux networking subsystem.  The type of information printed is controlled by the first argument, as follows:

netstat 打印Linux网络子系统的信息,输出的信息样式由第一个参数来控制,如下:

(none)

By  default,  netstat  displays  a  list  of  open sockets.  If you don’t specify any address families, then the active sockets of all configured address families will be

printed.

(无参数)默认的,netstat显示所有系统套接字的列表。如果你不指定任何的地址族,所有的被配置的地址族的活动套接字将会被显示。

--route , -r

Display the kernel routing tables.

显示内核路由表

--groups , -g

Display multicast group membership information for IPv4 and IPv6.

显示IPv4和IPv6的多播组成员信息。

--interfaces=iface , -I=iface , -i

Display a table of all network interfaces, or the specified iface.

显示所有网络接口的信息表,或者显示指定的接口

--masquerade , -M

Display a list of masqueraded connections.

显示伪装的连接

--statistics , -s

Display summary statistics for each protocol.

按照协议类型显示各协议的汇总信息

OPTIONS(选项)

--verbose , -v

Tell the user what is going on by being verbose. Especially print some useful information about unconfigured address families.

--numeric , -n      Show numerical addresses instead of trying to determine symbolic host, port or user names.

--numeric-hosts

shows numerical host addresses but does not affect the resolution of port or user names.

--numeric-ports

shows numerical port numbers but does not affect the resolution of host or user names.

--numeric-users

shows numerical user IDs but does not affect the resolution of host or port names.

--protocol=family , -A (协议族类型)

Specifies the address families (perhaps better described as low level protocols) for which connections are to be shown.  family is a comma (’,’) separated list of address

family keywords like inet, unix, ipx, ax25, netrom, and ddp.  This has the same effect as using the --inet, --unix (-x), --ipx, --ax25, --netrom, and --ddp options.

The address family inet includes raw, udp and tcp protocol sockets.

-c, --continuous

This will cause netstat to print the selected information every second continuously(连续不断的).

-e, --extend

Display additional information.  Use this option twice for maximum detail.

显示更多的信息,用-ee 显示最多的信息

-o, --timers

Include information related to networking timers.

显示和网络计时器相关的信息

-p, --program

Show the PID and name of the program to which each socket belongs.

显示连接所属的PID和程序名称

-l, --listening

Show only listening sockets.  (These are omitted by default.)

只显示监听的套接字(端口)默认是忽略这个选项的

-a, --all

Show both listening and non-listening (for TCP this means established connections) sockets.  With the --interfaces option, show interfaces that are not marked

-F

Print routing information from the FIB.  (This is the default.)

-C

Print routing information from the route cache.

-Z --context

If SELinux enabled print SELinux context.

-T --notrim

Stop trimming long addresses.

delay

Netstat will cycle printing through statistics every delay seconds

接下来是重头戏了,深入理解netstat的输出,这里才是实际能帮助我们、给我们提示的地方。