跳过导航链接 | |
退出打印视图 | |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 显示网络状态
netstat [-anvR] [-f address_family] [-P protocol]
netstat -g [-nv] [-f address_family]
netstat -p [-n] [-f address_family]
netstat -s [-f address_family] [-P protocol] [-T u | d ] [interval [count]]
netstat -m [-T u | d ] [-v] [interval [count]]
netstat -i [-I interface] [-an] [-f address_family] [-T u | d ] [interval [count]]
netstat -r [-anvR] [-f address_family | filter]
netstat -M [-ns] [-f address_family]
netstat -D [-I interface] [-f address_family]
netstat -d [-f address_family]
netstat 命令可通过各种格式显示与网络有关的特定数据结构的内容(具体格式取决于选定的选项)。
netstat 命令具有以上“用法概要”部分中显示的多种形式,如下所列:
此命令的第一种形式(不带必需参数)显示每项协议的活动套接字列表。
第二、第三和第四种形式(-g、-p 和 -s 选项)显示来自各种网络数据结构的信息。
第五种形式(-m 选项)显示 STREAMS 内存统计信息。
第六种形式(-i 选项)显示接口的状态。
第七种形式(-r 选项)显示路由表。
第八种形式(-M 选项)显示多播路由表。
第九种形式(-D 选项)显示一个接口或所有接口的 DHCP 状态。
第十种形式(-d 选项)显示目标高速缓存项的表。
下面将更详细地介绍这些形式。
如果不带任何参数(第一种形式),则 netstat 会显示 PF_INET、PF_INET6 和 PF_UNIX 的连接套接字,除非 -f 选项另外修改。
显示所有套接字、所有路由表项或所有接口(物理接口和逻辑接口)的状态。通常不会显示服务器进程使用的侦听器套接字。在大多数情况下,只会显示接口、主机、网络和缺省路由,并且只显示物理接口的状态。
显示目标高速缓存项表。请参见下文的“显示”部分。
限制对指定的 address_family 的所有显示。address_family 的值可以为下列值之一:
适用于显示 IPv4 信息的 AF_INET 地址族。
适用于显示 IPv6 信息的 AF_INET6 地址族。
适用于 AF_UNIX 地址族。
适用于套接字描述协议 (Socket Description Protocol, SDP) 协议和地址族。下面列出了针对 SDP 套接字显示的地址状态。netstat 显示的标志后跟其含义。
|
对于 SDP 协议和地址族,netstat 显示以下列标题:
本地 IP 地址
远程 IP 地址
套接字的当前状态
未读字节
排队等待 Tx 的字节(包括 TxBPosted)
发送给 HW 进行传输的字节
本地通告的缓冲区大小
远程通告的缓冲区大小
本地通告的 Rx 缓冲区的数量
远程通告的 Rx 缓冲区的数量
当前发布的 Rx 缓冲区的数量
如果只带有 -r 选项,显示的路由将限于匹配指定过滤器的路由。过滤器规则由 keyword:value 对组成。已知关键字和值的语法如下:
选择地址族。这与 -f address_family 相同,两种语法均受支持。
选择输出接口。可以按名称(如 hme0)或按 ifIndex 编号(如 2)指定接口。如果使用 any,过滤器会匹配具有指定接口(除 null 接口以外的任何接口)的所有路由。如果使用 none,过滤器会匹配具有 null 接口的所有路由。请注意,可以使用 ifconfig(1M) 的 -a 选项查看接口的索引号 (ifIndex)。
选择目标 IP 地址。如果指定有掩码长度,则会选择具有匹配掩码或更长(更多特定)掩码的任何路由。如果使用 any,则会选择除 0 以外的所有地址。如果使用 none,则会选择地址 0。
选择标有指定标志的路由。缺省情况下,必须设置指定的标志才能进行匹配。如果带有前导 +,则必须设置指定的标志,而忽略其他标志。如果带有前导 -,则不得设置指定的标志,而允许设置其他标志。
您可以指定多个 -f 实例来指定多个过滤器。例如:
% netstat -nr -f outif:hme0 -f outif:hme1 -f dst:10.0.0.0/8
上述显示 10.0.0.0/8 网络中掩码长度为 8 或更长、输出接口为 hme0 或 hme1 的路由,并排除所有其他路由。
显示所有接口的多播组成员。如果包含 -v 选项,则还会显示特定于源的成员信息。请参见下文的“显示”部分。
显示用于 IP 通信的接口的状态。通常,此选项会显示物理接口的统计信息。与 -a 选项结合使用时,此选项还会报告逻辑接口的信息。请参见 ifconfig(1M)。
显示 STREAMS 内存统计信息。
以数字形式显示网络地址。netstat 通常以符号形式显示地址。此选项可与任何显示格式配合使用。
显示网络-介质表。请参见下文的“显示”部分。
显示路由表。通常,只会显示接口、主机、网络和缺省路由;但是,当此选项与 -a 选项结合使用时,将显示所有路由,包括高速缓存。如果尚未设置多播路由,则 -ra 可能不会显示任何多播路由项,但内核将根据需要派生此类项。
显示每个协议的统计信息。与 -M 选项配合使用时,改为显示多播路由统计信息。与 -a 选项配合使用时,将会显示每个接口的统计信息,以及显示系统的全局统计信息(如果可用)。请参见下文的“显示”部分。
显示时间戳。
指定 u 表示时间的内部表示形式的印刷表示形式。请参见 time(2)。指定 d 表示标准日期格式。请参见date(1)。
详细模式。显示套接字的其他信息、STREAMS 内存统计信息、路由表和多播组成员。
显示特定接口的状态。interface 可以是任何有效的接口,例如 hme0 或 eri0。通常,会显示物理接口的状态和统计信息。当此选项与 -a 选项结合使用时,还会报告逻辑接口的信息。
显示多播路由表。与 -s 选项配合使用时,改为显示多播路由统计信息。
将统计信息的显示或所有套接字的状态限制为适用于 protocol 的项目。protocol 可以是 ip、ipv6、icmp、icmpv6、icmp、icmpv6、igmp、udp、tcp 和 rawip 之一。rawip 也可指定为 raw。此命令只接受全小写形式的协议选项。
显示 DHCP 配置的接口的状态。
此修饰符显示套接字和路由表项的扩展安全属性。-R 修饰符仅在系统配置有 Solaris Trusted Extensions 功能时可用。
如果只带有 -r 选项,此选项将显示路由项的网关安全属性。有关安全属性的更多信息,请参见 route(1M)。
当使用此命令的第一种形式显示套接字信息时,此选项会显示多级别端口 (Multi-Level Port, MLP) 套接字的其他信息。其中包括:
对等方的标签(如果已连接套接字)。
以下标志可附加到套接字的“状态”输出:
套接字是区域专用 IP 地址上的 MLP。
套接字是区域之间共享的 IP 地址上的 MLP。
每 interval 秒显示一次自上次显示以来累积的统计信息,并不断重复直到指定了 count。用 interval 进行调用时,第一行 netstat 输出显示自上次重新引导以来累积的统计信息。
以下选项支持 interval:-i、-m、-s 和 -Ms。有些值是配置参数,仅在每次间隔时重新显示。
按 count 指定的次数以及 interval 指定的间隔显示接口统计信息。
每个活动套接字的显示内容均显示本地地址和远程地址、发送队列和接收队列的大小(字节)、发送窗口和接收窗口(字节)以及协议的内部状态。
通常用于显示套接字地址的符号格式为:
hostname.port
前提是指定了主机的名称,或
network.port
前提是套接字地址指定网络,而不指定特定主机。
与套接字关联的数字主机地址或网络号用于在 hosts 或 networks 数据库中查找对应的符号主机名或网络名称。
如果地址的网络或主机名未知,或者指定了 -n 选项,则会显示数字网络地址。未指定的地址和端口或“通配符”地址和端口以星号 (*) 显示。有关 Internet 命名约定的更多信息,请参见 inet(7P) 和 inet6(7P)。
对于 SCTP 套接字,由于端点可由多个地址表示,因此详细选项 (-v) 会列显所有本地地址和远程地址。
TCP 套接字的可能状态值如下:
已绑定,准备连接或侦听。
已关闭。套接字没有被使用。
已关闭,然后远程关机;正在等待确认。
远程关机;正在等待套接字关闭。
已建立连接。
套接字已关闭;正在关闭连接。
套接字已关闭;正在等待远程关机。
空闲,已打开但是未绑定。
远程关机,然后关闭;正在等待确认。
正在侦听传入连接。
正在对连接进行初始同步。
正在积极尝试建立连接。
关闭后等待远程关机重新传输。
SCTP 套接字的可能状态值如下:
已关闭。套接字没有被使用。
正在侦听传入关联。
已建立关联。
INIT 已被发送到对等方,正在等待确认。
INIT-ACK 的状态 cookie 已被发送到对等方,正在等待确认。
已接收到来自上一层的 SHUTDOWN,正在等待确认对等方的所有未处理 DATA。
所有未处理数据已在 SHUTDOWN_SENT 状态中确认。SHUTDOWN 已被发送到对等方,正在等待确认。
已接收到来自对等方的 SHUTDOWN,正在等待确认所有未处理 DATA。
所有未处理数据已在 SHUTDOWN_RECEIVED 状态中确认。SHUTDOWN_ACK 已被发送到对等方。
显示形式取决于选定的 -g、-m、-p 或 -s 选项。
显示多播组成员的列表。
显示内存使用率,例如 STREAMS mblk。
显示网络-介质映射表。对于 IPv4,显示地址解析表。请参见 arp(1M)。对于 Pv6,显示邻居高速缓存。
显示各种协议层的统计信息。
统计信息使用 MIB 指定的变量。为 ipForwarding 定义的值是:
充当网关。
不充当网关。
IPv6 和 ICMPv6 协议层保留每个接口的统计信息。如果指定 -a 选项并附带 -s 选项,则会显示每个接口的统计信息及其总和。否则,只会显示统计信息的总和。
对于此命令的第二、第三和第四种形式,必须至少指定 -g、-p 或 -s。您可以指定这些选项的任意组合。此外,也可以指定 -m(第五种形式)以及 -g、-p 和 -s 选项的任意组合形式。如果指定这些选项中的多个选项,则 netstat 会显示每个选项的信息。
接口状态显示列出所有当前接口的信息,每行一个接口。如果使用 -I 选项指定接口,则只会显示指定接口的信息。
列表包含接口名称、mtu(最大传输单元,或最大包大小)(请参见 ifconfig(1M))、接口连接到的网络、每个接口的地址以及与接口关联的计数器。计数器分别显示输入包、输入错误、输出包、输出错误和冲突的数量。对于点对点接口,"Net/Dest"(网络/目标)字段为链路另一侧的名称或地址。
如果指定 -a 选项并附带 -i 选项或 -I 选项,则输出包括物理接口的名称、每个逻辑接口的输入包和输出包的数量以及其他信息。
如果指定了 -n 选项,则列表会显示 IP 地址而不是接口名称。
如果指定了可选的 interval,则会在 interval 秒内连续显示输出,直到用户中断或达到 count。请参见“操作数”部分。
使用 -I 选项可指定物理接口。与 interval 操作数配合使用时,-I 选项的输出具有以下格式:
input eri0 output input (Total) output packets errs packets errs colls packets errs packets errs colls 227681 0 659471 1 502 261331 0 99597 1 502 10 0 0 0 0 10 0 0 0 0 8 0 0 0 0 8 0 0 0 0 10 0 2 0 0 10 0 2 0 0
如果不指定输入接口,则会显示地址族 inet 或 inet6 的第一个接口。
路由表显示列出可用的路由以及每个路由的状态。每个路由都由目标主机或网络以及用于转发包的网关组成。flags 列显示路由的状态。这些标志如下:
指示路由正在运行。
路由指向网关。
路由指向主机而不是网络。
用 -multirt 选项建立的冗余路由。
路由是使用 -setsrc 选项建立的。
已通过重定向动态创建路由。
包将被无提示放弃(设置了 RTF_BLACKHOLE)。
包将被放弃,并发送 ICMP 错误(设置了 RTF_REJECT)。
用 -indirect 选项建立的间接路由(非直接可达的网关)。
(仅限于非全局独占 IP 区域)路由是根据在全局区域中使用 zonecfg(1M) 配置的路由信息在引导时静态添加的。
如果指定了 -a 选项,则会产生带有以下标志的路由项:
多播地址。
克隆链路目标上的接口主机路由项。
主机的本地地址。
接口路由是为连接到本地主机的每个接口创建的;此类路由项的网关字段会显示传出接口的地址。
use 列显示使用相关路由发送或转发的包数量。
interface 项指示路由所使用的网络接口。
多播路由表由虚拟接口表和实际路由表组成。
DHCP 接口信息包含接口名称、接口当前状态、租用信息、包数量和标志列表。
这些状态与 RFC 2131 中设定的规范相关。
租用信息包括:
开始租用的时间;
开始续租的时间;以及
租用到期的时间。
当前定义的标志包括:
接口含有通过 BOOTP(仅限于 IPv4)获得的租用。
接口正忙于 DHCP 事务。
接口为主接口。请参见 dhcpinfo(1) 和 ifconfig(1M)。
接口处于故障状态,并且必须手动重新启动。
系统会为已发送包的数量、已接收包的数量以及 DHCP 客户端拒绝提供的租用数量保留数据包计数。所有三个计数器均初始化为零,然后在获得租用后递增。在开始接口的续租期限时,这些计数器将被重置。因此,这些计数器表示获得当前租用时已发送、已接收和拒绝的数据包数量,或表示尝试获得未来租用时已发送、已接收和拒绝的数据包数量。
目标高速缓存项显示列出记录的路径 MTU、该项的存在时间(秒)和标志。P 标志指示已记录路径 MTU。S 标志指示路径 MTU 小于 IP 将允许的最小值。U 标志指示在目标高速缓存项中缓存了一些传输度量(往返时间等)。
DEFAULT_IP 设置
有关下列属性的说明,请参见 attributes(5):
|
arp(1M)、dhcpinfo(1)、dhcpagent(1M)、ifconfig(1M)、iostat(1M)、kstat(1M)、mibiisa(1M)、savecore(1M)、vmstat(1M)、zonecfg(1M)、hosts(4)、inet_type(4)、networks(4)、protocols(4)、services(4)、attributes(5)、dhcp(5)、kstat(7D)、inet(7P)、inet6(7P)
由 Droms, R. 编著的《Dynamic Host Configuration Protocol》,RFC 2131,Network Working Group 出版,1997 年 3 月。
由 Droms, R. 编著的《Dynamic Host Configuration Protocol for IPv6 (DHCPv6)》,RFC 3315。Cisco Systems 出版。2003 年 7 月。
显示接口信息时,netstat 接受 /etc/default/inet_type 中的 DEFAULT_IP 设置。如果将其设置为 IP_VERSION4,则 netstat 将省略与 IPv6 接口、统计信息、连接、路由等有关的信息。
但是,可以在命令行上覆盖 /etc/default/inet_type 中的 DEFAULT_IP。例如,如果已使用命令行并通过 inet6 地址族或 IPv6 协议之一以显式方式请求 IPv6 信息,则会覆盖 DEFAULT_IP 设置。
如果需要检查内核崩溃之后的网络状态信息,请对 savecore(1M) 输出使用 mdb(1) 实用程序。
netstat 实用程序通过打开 /dev/tcp 并发出查询来获取系统中的 TCP 统计信息。因此,netstat 在报告连接状态时可能会显示处于 IDLE 状态的额外未用连接。
以前版本的 netstat 采用未记录的方法报告使用 kstat(7D) 工具发布的内核统计信息。此功能已被删除。改为使用 kstat(1M)。
netstat 将其输出限制为与 netstat 运行区域相关的信息。(这对共享 IP 区域和独占 IP 区域均适用。)