netstat -ano
查看所有活动连接和监听端口(含PID),要筛选特定端口(如80),使用 netstat -ano | findstr ":80"
,-a
显示所有,-n
以数字格式显示,-o
显示进程PID。如何在 Windows 10 上使用命令行查看服务器端口
了解哪些端口正在被监听或使用对于服务器管理、网络故障排查、安全审计或配置应用程序至关重要,在 Windows 10 上,命令行工具提供了强大且直接的方式来获取这些信息,以下将详细介绍几种最常用和可靠的方法:
核心工具:netstat
命令
netstat
(网络统计)是 Windows 内置的命令行网络工具,用于显示活动的网络连接、监听端口、路由表等信息,它是查看端口状态的首选工具。
查看所有活动连接和监听端口 (最常用):
netstat -ano
-a
: 显示所有活动的 TCP 连接以及计算机正在监听的 TCP 和 UDP 端口。-n
: 以数字形式显示地址和端口号(168.1.10:80
),而不是尝试解析主机名(如MyPC:http
)和服务名(如80
->http
),这对于获取精确信息非常重要。-o
: 显示拥有每个连接的进程 ID (PID),这是识别哪个程序在使用特定端口的关键。
理解输出结果:
执行 netstat -ano
后,你会看到类似下面的输出:
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1234
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 876
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 5678
TCP 192.168.1.10:139 0.0.0.0:0 LISTENING 4
TCP 192.168.1.10:50234 74.125.200.188:443 ESTABLISHED 8901
UDP 0.0.0.0:5355 *:* 1234
UDP 192.168.1.10:137 *:* 4
- 协议 (Proto):
TCP
或UDP
。 - 本地地址 (Local Address): 本地计算机的 IP 地址和端口号。
0.0.0
表示该端口在所有网络接口上监听。0.0.1
表示仅监听本地回环地址(本机内部通信)。168.1.10
表示监听该特定 IP 地址(通常是你的局域网 IP)。
- 外部地址 (Foreign Address): 远程计算机的 IP 地址和端口号,对于监听 (LISTENING) 状态的端口,通常是
0.0.0:0
或 (UDP),表示它尚未与任何远程地址建立连接,正在等待连接。 - 状态 (State):
LISTENING
: 端口正在监听传入的连接请求(这是服务器端口的关键状态)。ESTABLISHED
: 已成功建立连接。CLOSE_WAIT
,TIME_WAIT
等:表示连接正在关闭的不同阶段。- UDP 协议通常没有状态,显示为空或 。
- PID: 使用该端口或连接的进程 ID,这是识别具体应用程序的关键。
仅查看监听中的端口 (服务器端口):
如果你只关心哪些端口正在作为服务器端口监听等待连接,可以组合使用 -a
和 findstr
命令过滤 LISTENING
状态:
netstat -ano | findstr /i "listening"
- (管道符): 将
netstat -ano
的输出传递给findstr
命令。 findstr
: 在文本中查找字符串。/i
: 忽略大小写。"listening"
: 查找包含 “LISTENING” 的行。
查看特定协议的端口 (如仅 TCP 或仅 UDP):
netstat -ano -p TCP # 仅查看 TCP 连接和端口 netstat -ano -p UDP # 仅查看 UDP 端口
-p
: 指定协议 (TCP
,UDP
,ICMP
,IP
等)。
查找特定端口号:
如果你知道要查找的端口号(80),可以用 findstr
过滤:
netstat -ano | findstr ":80"
这会列出所有本地或外部地址中包含 :80
的行(即涉及端口 80 的连接)。
识别使用端口的进程 (程序)
通过 netstat -ano
获取到 PID 后,你需要知道是哪个程序在使用该端口,有几种方法:
方法 1:使用任务管理器
- 按
Ctrl+Shift+Esc
打开任务管理器。 - 切换到 “详细信息” 选项卡。
- 如果看不到 PID 列,请右键点击列标题(如“名称”),选择 “选择列”。
- 勾选 “PID (进程标识符)”,点击确定。
- 在 PID 列中找到
netstat
输出中显示的 PID 号。 - 查看同一行对应的 “映像名称” 列,这就是运行该进程的程序名称(
nginx.exe
,java.exe
,mysqld.exe
,svchost.exe
)。
方法 2:使用 tasklist
命令 (命令行方式)
tasklist | findstr "1234"
- 将
1234
替换为你在netstat
输出中看到的实际 PID。 - 输出会显示该 PID 对应的进程名称。
重要提示与最佳实践 (体现 E-A-T):
- 以管理员身份运行命令提示符: 某些系统进程(尤其是 PID 4 的系统进程)监听的端口,普通用户权限的
netstat
可能无法显示其关联的完整服务名(在任务管理器中查看更准确),右键点击“命令提示符”或“Windows PowerShell”,选择 “以管理员身份运行” 可以获取最全面的信息。(注意:对于基本端口查看,普通权限通常也足够,但管理员权限更可靠) - 理解
LISTENING
状态: 服务器端口的核心标志就是LISTENING
状态。ESTABLISHED
状态表示一个已经建立的客户端或服务器连接。 - 区分 TCP 和 UDP: Web 服务器(HTTP/HTTPS)、数据库、远程桌面等通常使用 TCP,DNS、DHCP、某些游戏和流媒体可能使用 UDP。
0.0.0
vs0.0.1
:0.0.0:端口号
表示该服务监听所有可用的网络接口(包括局域网和可能的公网接口),可从外部访问。0.0.1:端口号
表示该服务仅监听本地回环地址,只能由本机上的其他程序访问,外部网络无法连接,这常用于内部进程通信或提高安全性。
- 防火墙影响: 即使一个端口在
LISTENING
状态,Windows 防火墙或第三方防火墙也可能阻止外部连接访问它,端口监听是必要条件,但不是充分条件,检查防火墙规则是网络访问故障排除的关键步骤。 - 系统保留端口: 端口 0-1023 是“知名端口”,通常由系统服务或需要管理员权限的应用程序使用(如 HTTP 80, HTTPS 443, FTP 21, RDP 3389),避免在这些端口上运行你自己的普通应用程序。
- 谨慎操作: 除非你明确知道某个端口的作用以及关闭它的后果,否则不要随意停止进程或关闭端口,这可能导致系统服务、应用程序或网络功能中断。
在 Windows 10 上查看服务器端口(即监听状态的端口),最强大和常用的命令行方法是:
netstat -ano | findstr /i "listening"
这条命令会列出所有处于监听状态的 TCP 和 UDP 端口,并显示其协议、本地地址(含端口)、状态以及关键的进程 ID (PID),随后,你可以通过任务管理器(详细信息选项卡,启用 PID 列)或 tasklist | findstr "PID"
命令,根据 PID 准确识别出是哪个程序或服务在使用该端口。
掌握 netstat
和进程查看的方法,是进行服务器管理、网络配置、安全监控和故障排除的基础技能,务必结合对输出结果的理解(特别是状态和本地地址)以及防火墙的影响进行综合判断。
引用说明:
- 本文介绍的命令和参数基于 Microsoft 官方 Windows 命令行文档 (
netstat
,findstr
,tasklist
)。 - 端口状态定义和网络概念遵循 TCP/IP 协议标准和通用的网络管理实践。
- Windows 防火墙的角色说明基于 Windows 操作系统内置安全机制。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/26430.html