Linux netstat命令

Netstat 简介

Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。

如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。

以上功能使 netstat 成为网管和系统管理员的必备利器。

在这篇教程中,我会列出几个例子,教大家如何使用 netstat 去查找网络连接信息和系统开启的端口号。

1. 列出所有连接

# netstat -a

2. 只列出 TCP 或 UDP 协议的连接

# netstat at 列出 TCP 协议的连接

# netstat -ut 列出UDP 协议的连接

3. 禁用反向域名解析,加快查询速度

netstat ant

默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。

4. 只列出监听中的连接

netstat tnl

任何网络服务的后台进程都会打开一个端口,用于监听接入的请求。这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来。使用 -l 选项列出正在监听的套接字。

5. 获取进程名、进程号以及用户 ID

查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。

6. 打印统计数据

# netstat s

7. 显示内核路由信息

# netstat rn

8. 打印网络接口

# netstat i

9. netstat 持续输出

# netstat ct

10. 显示多播组信息

netstat g