5.4 netstat

Windows 和 Linux 操作系统均提供了 netstat 命令,我们经常使用这个命令查看网络连接状态。这里以 Linux 系统为例,netstat 命令常见选项如下所示:

-a (all)显示所有选项,netstat 默认不显示 LISTEN 相关。
-t (tcp)仅显示 tcp 相关选项
-u (udp)仅显示 udp 相关选项
-n 不显示别名,能显示数字的全部转化成数字
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计 (重要)
-c 每隔一个固定时间,执行该 netstat 命令。
1
2
3
4
5
6
7
8
9
10

我们来详细介绍一下 -n 选项,默认情况下,对于一些有别名的 ip 地址和端口号 netstat 会以其别名来显示,例如 127.0.0.1 会显示成 localhost80 端口会显示成 http。如下所示:

[root@iZ238vnojlyZ ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:svn             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ddi-tcp-1       0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:italk           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:dnp             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:32000         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:commtact-http   0.0.0.0:*               LISTEN     
tcp        0    404 iZ238vnojlyZ:ssh        101.224.250.233:57844   ESTABLISHED
tcp        0      0 iZ238vnojlyZ:59520      100.100.45.131:http     ESTABLISHED
tcp        0      0 localhost:32000         localhost:31000         ESTABLISHED
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:ftp                [::]:*                  LISTEN     
tcp6       0      0 localhost:31000         localhost:32000         ESTABLISHED
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

我们加上 -n 选项看一下效果:

[root@iZ238vnojlyZ ~]# netstat -atn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:12345           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:20000           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:20002           0.0.0.0:*               LISTEN     
tcp        0    404 120.55.94.78:22         101.224.250.233:57844   ESTABLISHED
tcp        0      0 10.117.203.175:59520    100.100.45.131:80       ESTABLISHED
tcp       15      0 127.0.0.1:32000         127.0.0.1:31000         ESTABLISHED
tcp6       0      0 :::3306                 :::*                    LISTEN     
tcp6       0      0 :::21                   :::*                    LISTEN     
tcp6       0      0 127.0.0.1:31000         127.0.0.1:32000         ESTABLISHED
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

如上所示,所有的 ip 地址和端口号就不再以别名形式显示了。

在 Windows 系统上,除了可以使用 netstat 查看网络状态信息以外,还可以通过任务管理器打开资源监视器来查看当前系统各种网络连接状态(以下是 Win10 的截图):

5.4 netstat(配图)

上次更新: 2026/07/14, 19:37:40

社区交流

讨论与留言

前往 GitHub Issues →

本留言区仅对应当前文章,欢迎补充观点、提出问题或帮助修正文中疏漏。 留言由 GitHub/Gitalk 提供,需要使用 GitHub 登录。

最近更新
第 1 课:专栏导论与安全边界
07-01
第 3 课:安装编译与调试环境
07-01
第 4 课:第三方库下载、编译与依赖管理
07-01
更多文章>