文章目录
‘netstat’ 是一个用于查看网络相关信息的命令行工具。
‘netstat’指令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
这个工具通常都会预装在Ubuntu操作系统中。
- 显示所有网络连接
netstat -a
该输出显示了当前活动的Internet连接,包括处于监听状态和已建立的连接。
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 pcq-mirror-02v:53416 151.101.128.223:https ESTABLISHED
tcp 25 0 pcq-mirror-02v:44984 151.101.64.223:https CLOSE_WAIT
每一行代表一个连接,包含以下信息:
Proto:协议类型,这里为tcp。
Recv-Q和Send-Q:接收队列和发送队列中的字节数。
Local Address:本地地址和端口。
Foreign Address:远程地址和端口。
State:连接状态。
这会显示所有当前活动的网络连接,包括监听和已建立的连接。
- 只显示监听的网络连接
netstat -l
netstat -l 命令用于显示所有处于监听状态的 TCP 和 UDP 端口。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:sunrpc [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
udp 0 0 localhost:domain 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp6 0 0 [::]:sunrpc [::]:*
raw6 0 0 [::]:ipv6-icmp [::]:* 7
raw6 0 0 [::]:ipv6-icmp [::]:* 7
监听状态的端口是指已经准备好接受连接的端口。这些端口通常是在服务器上使用的,用于等待客户端的连接请求。使用 -l 选项,netstat 命令将只显示处于监听状态的端口,而不显示已建立的连接。
输出将包括本地地址、外部地址和端口号,以及连接的状态。
- 只显示TCP连接
netstat -t 命令用于显示所有活动的 TCP 连接。
netstat -t
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的协议,它提供了一种可靠的数据传输服务。使用 -t 选项,netstat 命令将只显示当前处于活动状态的 TCP 连接。
输出将包括本地地址、远程地址和端口号,以及连接的状态。
这会显示所有TCP连接的详细信息。
- 只显示UDP连接
netstat -u
netstat -u 命令用于显示所有UDP(User Datagram Protocol)连接和相关的网络统计信息。UDP是一种无连接的传输协议,通常用于快速传输数据,但不提供可靠性或流控制。
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
这个输出显示了四个UDP连接的信息,包括本地地址、本地端口、远程地址、远程端口以及连接状态。通常情况下,UDP连接的状态较简单,可能是"ESTABLISHED"(已建立)或其他一些特定状态。
- 显示PID(进程ID)和程序名称
netstat -tuln -p
运行这个命令将列出所有正在监听的TCP和UDP连接,并显示与每个连接关联的进程名称和PID。
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN -
tcp6 0 0 :::111 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
udp 0 0 127.0.0.53:53 0.0.0.0:* -
udp 0 0 0.0.0.0:111 0.0.0.0:* -
udp6 0 0 :::111 :::* -
这个命令对于排查网络连接问题、识别哪些进程在使用网络以及监视网络活动非常有用。
- 显示数字格式的IP地址和端口号
运行 netstat -n 将列出当前系统上的网络连接信息,包括本地地址、本地端口、远程地址、远程端口等,但不会显示主机名或服务名。
netstat -n
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.2:54234 203.0.113.10:80 ESTABLISHED
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*
以上输出可以看到网络连接的协议(例如TCP、UDP、TCP6),本地地址和端口,远程地址和端口,以及连接状态,但没有进行主机名或服务名的解析。
使用 netstat -n 可以加快查看网络连接的速度,并在需要时更容易分析和理解连接的情况。
- 显示详细的网络统计信息:
netstat -s
输出显示各种网络统计信息,包括接收和发送的数据包数量、错误等。
这些统计数据提供了有关网络协议的使用情况的信息,包括收到的数据包数量、发送的数据包数量、错误、连接状态等。
- 显示路由表
netstat -r
运行 netstat -r 命令将列出系统的路由表,包括目标网络地址、网关、接口、标志等信息。
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
- 仅显示IPv4或IPv6连接
netstat -4 # 仅显示IPv4连接
netstat -6 # 仅显示IPv6连接
执行该命令:netstat -4后,将输出与 IPv4 网络连接相关的信息。输出通常包括本地地址和端口、远程地址和端口、协议类型、状态等。
如果执行netstat -6,则输出与IPv6网络连接相关的信息。
- 显示多重广播功能群组组员名单
netstat -g
执行该命令后,将输出与系统的组网统计信息相关的输出。这些信息包括组播统计、接口统计和 IP 统计等。
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 all-systems.mcast.net
ens160 1 all-systems.mcast.net
ens192 1 all-systems.mcast.net
lo 1 ip6-allnodes
lo 1 ff01::1
ens160 1 ff02::1:ffbe:94d8
ens160 2 ip6-allnodes
ens160 1 ff01::1
ens192 1 ff02::1:ffbe:1ea3
ens192 2 ip6-allnodes
ens192 1 ff01::1
- netstat在线帮助
netstat --help
netstat --help在有的版本里面,用man ss 取代。
- netstat的替代工具‘ss’
ss 命令是 netstat 命令的替代工具,用于查看套接字(socket)统计信息。与 netstat 不同,ss 更快速、更有效,并且支持更多的选项。
在Ubuntu系统中执行‘man ss’
man ss