如何查看当前计算机开放了哪些端口?

wen IT资讯 239

本文目录导读:

如何查看当前计算机开放了哪些端口?

  1. Windows 系统
  2. Linux / macOS 系统
  3. 注意事项
  4. 总结对比

查看当前计算机开放的端口,可以根据你使用的操作系统选择以下方法:

Windows 系统

Windows 系统主要通过命令行工具查看。

方法 1:使用 netstat 命令(最常用、最详细)

  1. 按下 Win + R 键,输入 cmd,然后按 Enter 打开命令提示符。

  2. 在命令行中输入以下命令并按 Enter

    netstat -ano
    • 参数解释
      • -a:显示所有连接和监听端口。
      • -n:以数字形式显示地址和端口号(不尝试解析域名,速度更快)。
      • -o:显示与每个连接相关的进程 ID(PID)。
  3. 查看结果

    • 关注 状态(State) 列为 LISTENING(监听中)的记录。
    • 本地地址(Local Address) 列显示 IP:端口号0.0.0:135 表示该计算机的 135 端口正在监听。
    • PID 列显示占用该端口的进程 ID。

方法 2:通过 PID 查看具体程序

看到 PID 后,如果想知道是哪个程序占用了端口:

  1. 在同一个命令提示符中输入:

    tasklist | findstr <PID>

    (将 <PID> 替换为刚才看到的数字,tasklist | findstr 1234

  2. 或者直接打开任务管理器(Ctrl + Shift + Esc),切换到“详细信息”选项卡,找到对应的 PID 即可看到程序名称。

方法 3:使用 netstat 的增强命令(推荐,更直观)

如果只想看所有正在监听的端口,可以使用:

netstat -ano | findstr LISTENING

Linux / macOS 系统

Linux 和 macOS 命令类似,但有一些差异。

方法 1:使用 netstat

  • Linux

    sudo netstat -tulnp
    • -t:TCP 端口
    • -u:UDP 端口
    • -l:只显示监听状态
    • -n:以数字显示
    • -p:显示程序名称和 PID(需要 sudo 权限)
  • macOS

    sudo netstat -anvp tcp | grep LISTEN

    macOS 的 netstat 参数略有不同,推荐使用下面的 lsof

方法 2:使用 ss(Linux 推荐,更快更现代)

netstat 更高效,许多新 Linux 发行版默认推荐:

sudo ss -tulnp

输出含义与 netstat 类似。

方法 3:使用 lsof(Linux / macOS 通用)

lsof 非常强大,可以列出所有打开的文件(包括网络端口)。

  • 查看所有监听端口

    sudo lsof -i -P -n | grep LISTEN
    • -i:列出网络相关的文件
    • -P:不将端口号转换为服务名(直接显示数字)
    • -n:不解析主机名
  • 查看特定端口(如 80 端口)

    sudo lsof -i :80

注意事项

  1. 防火墙影响netstatss 显示的是本机系统内正在监听的端口,如果防火墙(如 Windows Defender 防火墙、iptables)阻止了外部访问,这些端口虽然显示为 LISTENING,但外部仍然无法连接。
  2. 权限:查看其他用户(包括 root/管理员)的进程时,通常需要管理员权限(Windows 以管理员身份运行 cmd,Linux/macOS 加 sudo),否则可能看不到完整信息。
  3. 临时 vs 固定:有些端口是服务启动后临时监听的(如连接蓝牙、打印机),有些则是系统服务或已安装软件(如 Web 服务器、数据库)长期监听的,重启计算机可能改变端口开放情况。

总结对比

操作系统 推荐命令 特点
Windows netstat -ano \| findstr LISTENING 系统自带,适合快速查看
Linux sudo ss -tulnp 快速、现代、信息详细
macOS sudo lsof -i -P \| grep LISTEN 直观显示程序名和 PID

如果你发现自己电脑突然多出很多未知的监听端口(尤其是高端口号且不属于常见软件),建议检查一下是否有可疑进程(病毒、木马),可以使用杀毒软件或任务管理器进一步分析。

抱歉,评论功能暂时关闭!