打印网络链接、路由表、接口统计、伪装连接、组播成员信息
命令语法格式
netstat [address_family_options] [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–l2cap|-2] [–rfcomm|-f] [–listening|-l] [–all] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–symbolic|-N] [–extend] [–timers|-o] [–program] [–verbose] [–continuous] [–wide|-W]
netstat {–route} [address_family_options] [–extend] [–verbose] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–interfaces} [–all] [–extend] [–verbose] [–program] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–groups|-g} [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–masquerade} [–extend|-e] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–statistics} [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w]
地址族参数
参数address_family_options取值如下:
[-4|–inet] [-6|–inet6] [–protocol={inet,inet6,unix,ipx,ax25,netrom,ddp,bluetooth,…}] [–unix|-x] [–inet|–ip|–tcpip]
[–ax25] [–x25] [–rose] [–ash] [–bluetooth] [–ipx] [–netrom] [–ddp|–appletalk] [–econet|–ec]
命令描述
命令netstat打印有关Linux网络子系统的信息。
这个程序已经过时了。现在已经使用ss(8)命令代替netstat命令,该命令位于iproute2软件包中。替换netstat -r的是ip route命令;替换netstat -i的是ip -s link命令;替换netstat -g的是ip maddr命令。
命令行选项
控制输出内容的选项
命令打印的信息类型由第一个参数控制,如下所示:
(none)
默认情况下,命令netstat显示当前打开的套接字列表。如果未指定任何地址族,则将打印所有的已配置地址族的活动套接字。
–route, -r
显示内核路由表。有关详细信息,请参阅route(8)中的说明。命令netstat -r和route -e产生的输出是相同的。
–groups, -g
显示IPv4和IPv6的组播组成员信息。
–interfaces, -i
显示所有网络接口的表。
–masquerade, -M
显示伪装连接列表。
–statistics, -s
显示每个协议的摘要统计信息。
其他选项
–verbose, -v
使用详细的输出告诉用户发生了什么。对于未配置的地址族,该命令会特别地打印一些有用的信息。
–wide, -W
根据需要使输出尽可能的宽泛而不截断IP地址。现在该选项是可选的,来不破坏现有脚本。
–protocol=family, -A
显示地址族为family的连接(可能更好说法为低级协议)。参数family是逗号(’,’)分隔的地址族关键字列表,如inet、inet6、unix、ipx、ax25、netrom、econet、ddp、bluetooth,这与使用–inet|-4, –inet6|-6, –unix|-x, –ipx, –ax25, –netrom, –ddp, and –bluetooth选项具有相同的效果。
地址族“inet”(Iv4)包括raw、udp、udplite、tcp协议套接字。地址族”bluetooth”(Iv4)包括l2cap、rfcomm协议套接字。
-c, –continuous
使netstat每秒打印一次信息。
-o, –timers
包括与网络计时器相关的信息。
-l, –listening
仅显示监听的套接字。该选项不是默认的,未指定该选项时,不显示监听的套接字。
-a, –all
显示所有的套接字,包括监听的和未监听的。与选项–interfaces一起,可以显示未激活接口的套接字。
扩展显示字段
-e, –extend
显示其他信息。使用此选项两次将显示最多的细节信息。
-p, –program
显示每个套接字所属程序的PID和程序名称。
路由表选项
-F
从FIB中打印路由信息。
-C
从路由缓存中打印路由信息。
输出的符号解析
–numeric,-n
显示数字类型的地址、端口、用户名,而不解析为符号;
–numeric-hosts
仅仅显示数字类型的地址,但不影响端口、用户名的解析;
–numeric-ports
仅仅显示数字类型的端口,但不影响IP地址、用户名的解析;
–numeric-users
仅仅显示数字类型的用户ID,但不影响IP地址、端口的解析;
输出说明
Active Internet connections (TCP, UDP, UDPLite, raw)
Proto
套接字使用的协议(tcp,udp,udpl,raw)。
Recv-Q
Established:连接到此套接字的用户程序未复制的字节数。Listening:从内核2.6.18开始,此列包含当前的syn积压。
Send-Q
Established:远程主机未确认的字节数。Listening:从内核2.6.18开始,此列包含syn积压的最大大小。
Local Address
套接字本地端的地址和端口号。除非指定了–numeric(-n)选项,否则套接字地址将被解析为其规范主机名(FQDN),并且端口号将转换为相应的服务名称。
Foreign Address
套接字远程端的地址和端口号。 类似于“Local Address”。
State
套接字的状态。由于在原始模式下是没有状态的,并且在UDP和UDPLite中通常没有使用状态,因此该列可以留空。通常,可以是以下几个值中的一个:
User
PID/Program name
Timer
手册中暂无说明。
Active UNIX domain Sockets
Proto
套接字使用的协议(tcp,udp,udpl,raw)。
RefCnt
引用计数(即通过此套接字附加的进程)。
Flags
显示的标志是SO_ACCEPTON(ACC),SO_WAITDATA(W),SO_NOSPACE(N)。标志SO_ACCECPTON用于未连接的套接字,如果它们的相应进程正在等待连接请求。其他标志不属于正常的兴趣。
Type
有以下几种类型的套接字访问:
State
PID/Program name
斜杠(/)分隔的进程ID(PID)和拥有套接字的进程的进程名称。选项–program被使用时才会包含此列。您还需要超级用户权限才能在不属于你的套接字上查看此信息。此标识信息尚不可用于IPX套接字。
Path
这是相应进程附加的套接字的路径名。
Active IPX sockets
手册中并没有太多的说明。
Active NET/ROM sockets
手册中并没有太多的说明。
Active AX.25 sockets
手册中并没有太多的说明。
注意事项
如果套接字在查看时发生了更改,则偶尔会出现奇怪的信息。这不太可能发生。
相关文件
/etc/services
服务翻译文件。包含了端口、协议和服务之间的对应关系。
/proc
文件系统proc的挂载点,通过下面的文件访问内核状态信息。
/proc/net/dev
设备信息。
/proc/net/raw
原始套接字信息。
/proc/net/tcp
TCP套接字信息。
/proc/net/udp
UDP套接字信息。
/proc/net/udplite
UDPLite套接字信息。
/proc/net/igmp
IGMP多播信息。
/proc/net/unix
Unix域套接字信息。
/proc/net/ipx
IPX套接字信息。
/proc/net/ax25
AX25套接字信息。
/proc/net/appletalk
DDP (appletalk)套接字信息。
/proc/net/nr
NET/ROM套接字信息。
/proc/net/route
IP路由信息。
/proc/net/ax25_route
AX25路由信息。
/proc/net/ipx_route
IPX路由信息。
/proc/net/nr_nodes
NET/ROM节点列表。
/proc/net/nr_neigh
NET/ROM邻居。
/proc/net/ip_masquerade
伪装连接。
/sys/kernel/debug/bluetooth/l2cap
蓝牙L2CAP信息。
/sys/kernel/debug/bluetooth/rfcomm
蓝牙串行连接
/proc/net/snmp
统计
使用示例
使用一条命令,显示系统已启动服务正在监听的端口号:
选项-n表示不反向解写IP地址、端口;选项-l表示显示将听的服务;选项-p打印程序;
相关手册
route(8), ifconfig(8), iptables(8), proc(5) ss(8) ip(8)
参考文献
- man 8 netstat, Version net-tools 2.10-alpha
更新日志
- 08/02/2018 创建文章