端口检测测的是什么
端口检测干的事很朴素:挨个敲门,看哪扇门能推开。
它向目标主机的多个端口发起 TCP 连接,握手成功就是开放,失败就是关闭。一次能测一批,最后给你一张开放清单。
开放和关闭分别意味着什么
开放:三次握手完成,端口上有程序在监听,愿意接受连接。
关闭:握手没完成。这里有两种情况,一种是对方回了 RST,明确拒绝;另一种是包被防火墙直接丢弃,没有任何回应。
从结果上看都是「关闭」,但原因完全不同。前者是服务没开,后者是策略挡住了。排查时得分清楚。
指纹识别是加分项
开启之后,工具会读取服务返回的 Banner,根据响应特征猜测端口上跑的是什么。
比如 22 端口返回 SSH 版本号,3306 返回 MySQL 的握手包,6379 返回 Redis 的 INFO。这些特征能帮你确认「这个端口到底是干什么的」。
但 Banner 可以改,也可以伪装,所以指纹只能当线索,不能当结论。
它和 TCPing 不一样
TCPing 是盯住一个端口,从多个地区反复测,看连通性和延迟。
端口检测是盯住一台主机,一次测很多端口,看哪些开着。
一个纵向看质量,一个横向看暴露面。排查方向不同,别混着用。
为什么需要它
服务器上到底开了哪些端口,很多时候没人说得清。装个软件开一个,测试完忘了关,日积月累就是一堆不该暴露的入口。
端口检测的价值,就是把这批入口列出来。哪些是业务必需的,哪些是历史遗留的,一眼就能看出来。
它不是什么
它不是漏洞扫描。端口开着不代表有漏洞,端口关着也不代表安全。
它只回答「门开没开」,不回答「门锁牢不牢」。后者得靠专门的漏洞检测和配置核查。