如何快速检查服务器开放的端口?

在网络安全管理和系统运维中,检查开放的端口是识别服务暴露面、排查潜在风险的基础操作,不同操作系统和场景下,检查开放端口的命令各有侧重,本文将详细介绍常用命令及其使用方法,涵盖Windows、Linux/macOS系统,以及针对特定协议的深度检查工具。

检查开放的端口命令
(图片来源网络,侵删)

Windows系统常用端口检查命令

Windows系统提供了多种命令行工具用于端口检查,适合不同需求场景。

netstat命令

netstat是Windows内置的传统网络状态工具,功能全面,支持查看TCP、UDP端口状态及连接详情。

  • 基本语法netstat [参数]
  • 常用参数
    • -a:显示所有连接和监听端口;
    • -n:以数字形式显示地址和端口,避免DNS解析,加快速度;
    • -t:仅显示TCP连接;
    • -u:仅显示UDP连接;
    • -p:显示进程ID(PID)和进程名(需管理员权限);
    • -b:显示创建每个连接的组件(需管理员权限)。
  • 示例
    • 查看所有TCP/UDP连接:netstat -an
    • 查看监听端口及对应进程:netstat -ano | findstr "LISTENING"
    • 查看特定端口(如80端口)状态:netstat -ano | findstr ":80"

Get-NetTCPConnection(PowerShell)

PowerShell提供了更现代化的网络连接管理命令,支持对象化输出,便于后续处理。

  • 基本语法Get-NetTCPConnection [参数]
  • 常用参数
    • LocalPort:筛选本地端口;
    • State:筛选连接状态(如ListenEstablished);
    • IncludeProcess:显示进程信息。
  • 示例
    • 查看所有监听端口及进程:Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess
    • 通过PID查找进程名:Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess

Test-NetConnection(PowerShell)

用于测试目标主机的端口连通性,适合快速检查端口是否可访问。

检查开放的端口命令
(图片来源网络,侵删)
  • 基本语法Test-NetConnection -ComputerName <主机名> -Port <端口号>
  • 示例Test-NetConnection -ComputerName 192.168.1.1 -Port 443,返回端口是否开放及网络延迟等信息。

Linux/macOS系统常用端口检查命令

Linux/macOS系统下,ssnetstat是主流工具,其中ss因性能更优逐渐替代netstat

ss命令(推荐)

ss是Linux内核提供的新工具,查询速度更快,支持显示更多网络统计信息。

  • 基本语法ss [参数]
  • 常用参数
    • -t:TCP端口;
    • -u:UDP端口;
    • -l:仅显示监听端口;
    • -n:数字形式显示地址和端口;
    • -p:显示进程ID和命令名;
    • -a:显示所有端口。
  • 示例
    • 查看所有监听端口:ss -tulnp
    • 查看特定端口(如22端口):ss -tulnp | grep ":22"

netstat命令(兼容性更好)

在Linux/macOS中,netstat参数与Windows类似,但默认可能未安装(需通过net-tools包安装)。

  • 示例netstat -tulnp | grep ":3306"(查看MySQL的3306端口状态)。

lsof命令

lsof(list open files)可查看进程打开的文件,包括网络端口。

检查开放的端口命令
(图片来源网络,侵删)
  • 基本语法lsof -i [协议]:[端口号]
  • 示例
    • 查看监听80端口的进程:lsof -i :80
    • 查看所有TCP端口:lsof -i TCP

跨平台及高级端口检查工具

nmap(网络探测工具)

nmap是功能强大的端口扫描工具,支持端口状态探测、服务识别、脚本扫描等。

  • 基本语法nmap [参数] <目标IP/域名>
  • 常用参数
    • -sT:TCP连接扫描(全扫描);
    • -sU:UDP扫描;
    • -sS:TCP SYN扫描(半扫描,需root权限);
    • -p:指定端口范围(如-p 1-1000);
    • -O:操作系统检测;
    • -sV:服务版本检测。
  • 示例
    • 扫描目标主机的开放端口:nmap 192.168.1.1
    • 扫描特定端口范围并显示服务版本:nmap -sV -p 80,443,8080 192.168.1.1

telnet/nc(netcat)

快速测试端口连通性,适合简单验证。

  • telnettelnet <目标IP> <端口号>(如telnet 192.168.1.1 80
  • ncnc -zv <目标IP> <端口号>(如nc -zv 192.168.1.1 22

端口状态说明

状态说明
LISTEN端口处于监听状态,等待连接请求(如服务端开放端口)
ESTABLISHED已建立连接,数据可传输(如客户端已连接到服务端)
TIME_WAIT连接关闭后等待一段时间,确保数据传输完成(常见于TCP连接)
CLOSED端口未开放或连接已关闭

注意事项

  1. 权限要求:部分命令(如Windows的netstat -b、Linux的ss -p)需要管理员/root权限才能显示进程信息。
  2. 端口范围:0-1023为知名端口(需特殊权限),1024-49151为注册端口,49152-65535为动态/私有端口。
  3. 防火墙影响:防火墙可能阻止端口访问,检查端口时需确认防火墙规则。

相关问答FAQs

Q1: 为什么使用ss命令比netstat更高效?
A1: ss命令直接从Linux内核获取网络套接字信息,而netstat需要通过/proc文件系统解析数据,因此在处理大量连接时,ss的查询速度更快,资源占用更低,尤其适合高并发场景。

Q2: 如何判断端口被哪个程序占用?
A2:

  • Windows:使用netstat -ano | findstr ":端口号"获取PID,再通过tasklist | findstr "PID"或任务管理器查看进程名;
  • Linux/macOS:使用ss -tulnp | grep ":端口号"lsof -i :端口号直接显示进程信息。
    若需终止占用进程,可使用taskkill /PID PID号 /F(Windows)或kill -9 PID号(Linux)。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/456144.html<

(0)
运维的头像运维
上一篇2025-11-09 13:33
下一篇 2025-11-09 13:42

相关推荐

  • 用户提权命令是什么?如何安全执行?

    用户提权命令是操作系统安全领域中一个至关重要的概念,它指的是普通用户通过特定操作或命令获取更高权限(如管理员或root权限)的过程,这一过程在系统管理、软件安装、故障排查等场景中具有必要性,但如果被恶意利用,则会严重威胁系统安全,本文将详细解析用户提权命令的常见类型、使用场景、安全风险及防护措施,帮助用户在合法……

    2025-11-19
    0
  • Redis历史命令如何查看与清理?

    Redis 作为一款高性能的内存数据结构存储系统,自诞生以来就以其卓越的速度和丰富的功能受到开发者的青睐,在 Redis 的众多特性中,历史命令记录功能(通过 HISTORY 命令或配置选项实现)为用户提供了极大的便利,尤其是在调试、命令复现和用户行为分析等方面,本文将详细介绍 Redis 历史命令的相关内容……

    2025-10-28
    0
  • Kali Linux命令大全有哪些常用命令?

    Kali Linux 作为一款专为渗透测试和安全审计设计的操作系统,集成了大量安全工具和命令行 utilities,掌握其常用命令是高效工作的基础,以下从系统管理、网络分析、密码破解、漏洞扫描等维度分类详解核心命令,并辅以表格对比常用工具参数,系统管理命令Kali 基于 Debian,继承了 Linux 的基础……

    2025-10-27
    0
  • Kali Linux命令大全有哪些常用命令?

    Kali Linux作为渗透测试和安全研究的专用操作系统,内置了丰富的命令行工具,掌握这些命令是高效工作的基础,以下从系统管理、信息收集、漏洞利用、密码攻击、网络分析、无线安全、后渗透和隐私保护八个维度,详细梳理常用命令及功能说明,系统管理命令系统管理是操作基础,涉及文件操作、进程管理和服务配置,常用命令包括l……

    2025-10-16
    0
  • 阿里云远程命令如何发送与安全控制?

    阿里云作为国内领先的云计算服务提供商,为用户提供了丰富的云产品和服务,其中通过阿里云发送远程命令是运维管理和自动化操作的重要功能,这一功能主要依托阿里云的云服务器(ECS)、云助手(Cloud Assistant)等工具实现,能够帮助用户高效、安全地管理和维护云上资源,以下将从功能原理、使用场景、操作步骤、注意……

    2025-10-15
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注