netstat 是一个 Linux 系统管理工具,用于打印出网络系统中的各种网络相关信息,包括网络连接,路由表,网络接口信息,多播成员等。下面是 netstat 命令的使用详解:
常用选项
-a:列出所有的网络连接,包括监听状态的连接。
-n:直接使用 IP 地址,而不进行反向域名解析。
-t:列出 TCP 协议的连接。
-u:列出 UDP 协议的连接。
-l:列出正在监听状态的连接。
-p:显示进程 ID 和进程名称。
-r:显示系统路由表信息。
-c:连续输出信息,每隔一秒钟显示一次。
常用用法
显示所有的网络连接和端口号:netstat -a
显示所有 TCP 连接:netstat -at
显示所有 UDP 连接:netstat -au
显示所有监听状态的连接:netstat -l
显示所有已建立的连接:netstat -an | grep ESTABLISHED
显示系统路由表信息:netstat -r
显示所有监听状态的连接和进程 ID 和进程名称:netstat -ap | grep LISTEN
示例
显示所有 TCP 连接:
$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 0 localhost:6942 *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:mysql *:* LISTEN
tcp 0 0 localhost:6942 localhost:35820 ESTABLISHED
tcp 0 0 localhost:35820 localhost:6942 ESTABLISHED
显示所有监听状态的连接和进程 ID 和进程名称:
$ netstat -ap | grep LISTEN
tcp 0 0 *:ssh *:* LISTEN 948/sshd
tcp 0 0 localhost:mysql *:* LISTEN 1014/mysqld
显示系统路由表信息:
$ netstat -r
Kernel IP routing table
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
注意:使用 netstat 命令需要管理员权限。