指南
什么是开放的 TCP 端口?
互联网上的服务在被称为端口的编号门口上监听。开放的 TCP 端口意味着有东西接受了来自外部的连接。
为什么要关心
端口转发只有在公网能完成到该端口的 TCP 握手时才算成功。从局域网外部做一次检测,才能验证它。
意外开放的端口(远程桌面、数据库、Docker API)是攻击者发现暴露服务的常见途径。
端口只是数字
HTTPS 通常用 443,SSH 用 22,邮件用 25/587。数字是约定;连接建立之后发生什么,由正在监听的程序决定。
一台主机可以开放许多端口。每一个都是一扇单独的门。
开放
服务接受了连接
- 互联网
- 主机:端口
- 服务有应答
关闭或被过滤
被拒绝,或防火墙没有回应
- 互联网
- 防火墙,或没有程序在监听
- 没有可用的服务
开放、关闭、被过滤
开放:握手成功。关闭:主机拒绝了。被过滤:没有明确答复——常常是防火墙丢弃了数据包。
被过滤并不能证明这项服务对每个网络都不可用。它只描述这个观察点看到的情况。
如何检查
设置好转发后,用在线 TCP 端口检测对着你的公网 IP 测试。如果可以,请从不是你自己局域网的网络来测。
只扫描你拥有或已获许可测试的机器。
请记住
- 从一个网络做的检测,不等于从每个网络都能通。
- CGNAT 可能让家庭端口转发在没有运营商额外协助时无法实现。
- UDP 服务需要另一种探测。
- 未经授权的扫描可能违法,或违反主机的使用条款。
