计算机网络学习笔记(5)——netstat命令

netstat命令介绍

在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCPUDPICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。使用时如果不带参数,netstat显示活动的 TCP 连接。

netstat常用参数选项
netstat [-AaLnSW] [-f protocol_family | -p protocol] [-M core] [-N system]

显示每个网络协议,特定protocol_family或单个协议的活动套接字(协议控制块)列表。如果还存在-A,则显示与套接字关联的协议控制块(PCB)的地址;用于调试。如果还存在-a,则显示所有套接字的状态;否则,请显示所有套接字的状态。通常不会显示服务器进程使用的套接字。如果还存在-L,请显示各种侦听队列的大小。第一个计数显示不可接受的连接数,第二个计数显示不可接受的不完整连接数,第三个计数是排队连接的最大数量。如果还存在-S,则将网络地址显示为数字(与-n相同),但象征性地显示端口。

netstat -i | -I interface [-abdhntW] [-f address_family] [-M core] [-N system]

显示已自动配置的所有网络接口或单个接口的状态(未显示静态配置到系统中但在启动时未定位的接口)。接口名称后的星号(’*’)表示该接口处于’down’状态。如果还存在-a,则将为每个以太网接口和每个IP接口地址显示当前正在使用的多播地址。组播地址在与其关联的接口地址之后的单独行中显示。如果还存在-b,则显示输入和输出的字节数。如果还存在-d,则显示丢弃的数据包的数量。如果还存在-h,则以人类可读的形式打印所有计数器。如果还存在-t,则显示看门狗计时器的内容。如果还存在-W,则使用更大的字段大小打印接口名称。

netstat -w wait [-I interface] [-d] [-M core] [-N system]

以等待秒为间隔,在所有已配置的网络接口或单个接口上显示有关数据包流量的信息。如果还存在-d,则显示丢弃的数据包的数量。

netstat -s [-s] [-z] [-f protocol_family | -p protocol] [-M core] [-N system]

显示每个网络协议,特定protocol_family或单个协议的系统范围统计信息。如果重复-s,则抑制值为零的计数器。如果还存在-z,请在显示统计计数器后将其重置。

netstat -m [-M core] [-N system]

显示由内存管理例程(mbuf(9))记录的统计信息。网络管理内存缓冲区的专用池。

netstat -B [-I interface]

显示有关bpf(4)对等点的统计信息。这包括bpf设备已匹配,丢弃和接收了多少个数据包之类的信息,以及有关当前缓冲区大小和设备状态的信息。

netstat -r [-AanW] [-f address_family] [-M core] [-N system]

显示所有路由表的内容,或显示特定address_family的路由表的内容。如果还存在-A,则显示内部Patricia树结构的内容;用于调试。如果还存在-a,则显示协议克隆的路由(由RTF_PRCLONING父路由生成的路由);通常这些路线没有显示。当还存在-W时,显示每个路由的路径MTU,并使用更大的字段大小打印接口名称

netstat -rs [-s] [-M core] [-N system]

显示路由统计信息。如果重复-s,则抑制值为零的计数器。

netstat -g [-W] [-f address_family] [-M core] [-N system]

显示与多播(组地址)路由相关的信息。默认情况下,显示IP组播虚拟接口和路由表以及组播组成员身份。

netstat -gs [-s] [-f address_family] [-M core] [-N system]

显示多播路由统计信息。如果重复-s,则抑制值为零的计数器。

实用命令实例
列出所有端口 (包括监听和未监听的)

列出所有端口 netstat -a

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  localhost.55375        localhost.55376        ESTABLISHED
tcp4       0      0  localhost.55376        localhost.55375        ESTABLISHED
tcp4       0      0  10.161.238.37.55153    120.232.175.168.18910  ESTABLISHED
tcp4       0      0  localhost.pvuniwien    localhost.55152        ESTABLISHED
tcp4       0      0  localhost.55152        localhost.pvuniwien    ESTABLISHED
tcp4       0      0  10.161.238.37.55066    110.43.89.33.https     ESTABLISHED

列出所有 tcp 端口 netstat -at

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  localhost.55468        localhost.55469        ESTABLISHED
tcp4       0      0  localhost.55469        localhost.55468        ESTABLISHED
tcp4       0      0  10.161.238.37.55383    120.232.175.168.18910  ESTABLISHED
tcp4       0      0  localhost.pvuniwien    localhost.55382        ESTABLISHED
tcp4       0      0  localhost.55382        localhost.pvuniwien    ESTABLISHED
tcp4       0      0  10.161.238.37.55066    110.43.89.33.https     ESTABLISHED
^C

列出所有 udp 端口 netstat -au

─xjh@xjh.local ~  
╰─➤  netstat -au                                                                       130 ↵
Active LOCAL (UNIX) domain sockets
Address          Type   Recv-Q Send-Q            Inode             Conn             Refs          Nextref Addr
 d9ba1fded7e1b85 stream      0      0                0  d9ba1fded7e3de5                0                0 /var/run/mDNSResponder
 d9ba1fded7e3de5 stream      0      0                0  d9ba1fded7e1b85                0                0
 d9ba1fded7e2035 stream      0      0                0  d9ba1fded7e2a5d                0                0 /var/run/mDNSResponder
.......
列出所有处于监听状态的 Sockets

只显示监听端口 netstat -l

╭─xjh@xjh.local ~  
╰─➤  netstat -l 
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  localhost.56906        localhost.56907        ESTABLISHED
tcp4       0      0  localhost.56907        localhost.56906        ESTABLISHED
^C

只列出所有监听 tcp 端口 netstat -lt

╭─xjh@xjh.local ~  
╰─➤  netstat -lu                                                                                                              130 ↵
Active LOCAL (UNIX) domain sockets
Address          Type   Recv-Q Send-Q            Inode             Conn             Refs          Nextref Addr
 d9ba1fded7e3de5 stream      0      0                0  d9ba1fded7e1b85                0                0 /var/run/mDNSResponder
 d9ba1fded7e1b85 stream      0      0                0  d9ba1fded7e3de5                0                0
 d9ba1fded7e2035 stream      0      0                0  d9ba1fded7e2a5d                0                0 /var/run/mDNSResponder

只列出所有监听 UNIX 端口 netstat -lx

╭─xjh@xjh.local ~  
╰─➤  netstat -lx
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  localhost.57474        localhost.57475        ESTABLISHED
tcp4       0      0  localhost.57475        localhost.57474        ESTABLISHED
tcp4       0      0  10.161.238.37.57433    ecs-121-36-106-5.https ESTABLISHED
tcp4       0      0  10.161.238.37.57432    ecs-121-36-106-5.https ESTABLISHE
显示每个协议的统计信息

显示所有端口的统计信息 netstat -s

tcp:
	0 packet sent
		0 data packet (0 byte)
		0 data packet (0 byte) retransmitted
		0 resend initiated by MTU discovery
		0 ack-only packet (0 delayed)
		0 URG only packet
		0 window probe packet
		0 window update packet
		0 control packet
		0 data packet sent after flow control
		0 challenge ACK sent due to unexpected SYN
		0 challenge ACK sent due to unexpected RST
		0 checksummed in software
			0 segment (0 byte) over IPv4
			0 segment (0 byte) over IPv6
在 netstat 输出中不显示主机,端口和用户名 (host, port or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

netstat -an

📬 秘籍

打开的计算机端口,就是向 Internet 打开的一个通道。通过 netstat 命令,我们可以了解当前计算机哪些端口是打开的,从而找出一些恶意后台程序,分析其所作所为,并且可以进一步将相关端口关闭,降低安全风险。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值