Linux netstat 命令详解

Linux netstat 命令详解

netstat 是 Linux 中用于显示网络连接、路由表、接口状态等信息的命令。虽然它在现代系统中逐渐被 ss 和 ip 命令取代,但在很多环境中仍然有用。

以下是 netstat 命令的详细讲解,包括常见选项和输出解释。

一、基本语法

netstat [选项]

二、常用选项详解

选项

含义

-a

显示所有连接和监听端口(包括 TCP 和 UDP)

-t

显示 TCP 连接

-u

显示 UDP 连接

-l

仅显示监听中的套接字(Listen)

-n

以数字形式显示地址和端口(不解析为主机名和服务名)

-p

显示哪个进程在使用该端口(需要 root 权限)

-r

显示路由表(类似 route -n)

-i

显示网络接口状态(类似 ifconfig)

-s

显示每个协议的统计信息

-c

每隔一段时间持续输出(与 watch 类似)

三、常见用法示例

1. 显示所有连接(包括监听)

netstat -a

2. 显示当前所有 TCP 连接

netstat -at

3. 显示所有监听的 UDP 端口

netstat -lu

4. 显示端口号和 IP 而不是主机名(加速输出)

netstat -tun

5. 查看使用端口的程序(需 root)

sudo netstat -tulpn

6. 查看路由表

netstat -rn

7. 查看网络接口统计信息

netstat -i

8. 实时查看连接状态(每秒刷新)

watch netstat -tulpn

四、输出字段解释(以 netstat -tulpn 为例)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd

udp 0 0 0.0.0.0:68 0.0.0.0:* 567/dhclient

字段说明:

Proto:协议(tcp / udp)

Recv-Q:接收队列中的数据量

Send-Q:发送队列中的数据量

Local Address:本地 IP 和端口

Foreign Address:远程 IP 和端口(* 表示尚未建立连接)

State:连接状态(TCP 有,UDP 没有),如:

LISTEN: 等待连接

ESTABLISHED: 已建立连接

TIME_WAIT: 等待足够时间以确保远程 TCP 接收最后的 ACK

PID/Program name:使用该端口的进程 ID 和程序名

五、替代工具推荐

ss:比 netstat 更快、功能更强(建议使用)

ss -tuln

ss -p

ip:用于替代 netstat -r 和 ifconfig

ip route

ip addr

相关推荐

365平台提现审核未通过 第一家世界杯中国赞助商7年亏近135亿,赞助世界杯真的物有所值 ?

第一家世界杯中国赞助商7年亏近135亿,赞助世界杯真的物有所值 ?

📅 10-19 👁️ 9497
office365人工客服电话 创造与魔法手游辣椒多久成熟一次

创造与魔法手游辣椒多久成熟一次

📅 08-22 👁️ 5292
365平台提现审核未通过 地铁跑酷 Wiki

地铁跑酷 Wiki

📅 07-19 👁️ 1171