MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > linux / 正文

如何在Linux中显示网络连接、路由表等信息?Netstat了解一下!

2024-11-26 15:21 huorong linux 4 ℃ 0 评论

Netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令行工具。它在 Linux 和其他类 Unix 系统中都有提供,可以帮助我们分析和诊断网络问题。本文将介绍 Netstat 命令的基本用法和常见选项。

Netstat 命令的语法

Netstat 命令的基本语法如下:

netstat [选项] [地址族]

其中,选项可以用来指定显示的信息类型和格式,地址族可以用来过滤显示的协议类型,如 inet(IPv4)、inet6(IPv6)、unix(Unix 域套接字)等。如果不指定地址族,则默认显示所有协议类型的信息。

Netstat 命令的常见选项

Netstat 命令有很多选项,可以根据不同的需求进行组合使用。下面列举一些常见的选项及其含义:

  • -a:显示所有套接字(socket),包括监听(listening)和非监听(non-listening)的。
  • -l:只显示监听状态的套接字。
  • -n:以数字形式显示地址和端口,不进行域名或服务名的解析。
  • -p:显示每个套接字对应的进程标识符(PID)和程序名。
  • -t:只显示 TCP 协议的套接字。
  • -u:只显示 UDP 协议的套接字。
  • -r:显示路由表(routing table)。
  • -i:显示网络接口(network interface)的统计信息。
  • -s:显示网络协议的统计信息。

Netstat 命令的示例

下面给出一些使用 Netstat 命令的示例,以便更好地理解其用法。

显示所有 TCP 连接

netstat -at

这个命令会显示所有 TCP 协议的套接字,包括本地地址(Local Address)、远程地址(Foreign Address)和连接状态(State)。例如:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.100:ssh       192.168.1.101:49210     ESTABLISHED
tcp        0      0 192.168.1.100:49212     172.217.160.78:https    ESTABLISHED

其中,LISTEN 表示监听状态,ESTABLISHED 表示已建立连接,其他可能的状态还有 SYN_SENT、SYN_RECV、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSE、CLOSE_WAIT、LAST_ACK、CLOSING 等。

显示所有 UDP 连接

netstat -au

这个命令会显示所有 UDP 协议的套接字,包括本地地址和远程地址。例如:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 192.168.1.100:ntp       0.0.0.0.0:*
udp 0 0 192.168.1.100:mdns 0.0.0.0:*

其中,bootpc 表示 DHCP 客户端端口,domain 表示 DNS 服务端口,ntp 表示网络时间协议(Network Time Protocol)端口,mdns 表示多播 DNS(Multicast DNS)端口。

显示所有监听套接字

netstat -l

这个命令会显示所有监听状态的套接字,包括 TCP 和 UDP 协议的。例如:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 192.168.1.100:mdns      0.0.0.0:*                          

显示所有套接字及其对应的进程

netstat -p

这个命令会显示所有套接字及其对应的进程标识符(PID)和程序名,如果有权限的话。例如:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        1      1 localhost:49214         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49216         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49218         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49220         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49222         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49224         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49226         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49228         localhost:domain        CLOSE_WAIT

Tags:linux查看网络连接

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言