开放端口检测(单个 TCP 端口)
检查公网主机上的某个 TCP 端口能否从互联网接受连接:开放、关闭或被过滤。每次只检测一个端口,不做批量扫描。
什么是 端口检测?
这个端口检测工具会告诉你公网主机或 IP 上的某个 TCP 端口能否接受来自互联网的连接。它刻意不做成扫描器:每次检测只测试一个 host:port 组合,这正好满足确认端口转发、防火墙规则或服务是否在监听的需求。
如何使用 端口检测
- 输入你拥有或获准测试的公网主机名或 IP 地址。
- 输入端口号,或点击常用端口之一(22、80、443、3306、3389……)。
- 点击“检测端口”。
- 查看结果:开放(接受 TCP 连接)、关闭或不可达,或 5 秒内无应答;同时显示被测试的 IP 和耗时。最近的检测记录会列在下方。
何时使用 端口检测
适合在路由器上设置端口转发、在云安全组中开放端口,或启动游戏、SSH、数据库或邮件服务器之后,查看它能否从你的网络外部访问。它无法扫描范围、测试 UDP 端口(WireGuard、DNS、使用 UDP 的游戏服务器)、访问私有或本地地址,也不能测试被 Cloudflare 阻止出站连接的 25 端口;位于 Cloudflare 自有 IP 段的目标同样无法测试。请只测试你拥有或获得授权的系统。
端口检测 的工作原理
检测在 AlgoKit 的 Cloudflare Pages Function(/api/port-check)中运行。主机通过 DNS-over-HTTPS 解析,只要有任何地址是私有、环回、链路本地、CGNAT 或保留地址就会被拒绝;随后该函数使用 Cloudflare 的 connect() TCP 套接字 API 连接到已验证的 IP(而不是域名,因此 DNS 无法在中途改变)。如果 TCP 握手完成,端口就被报告为开放,并且立即关闭套接字而不发送任何数据;连接被拒绝或失败则为“关闭或不可达”;5 秒内无应答则报告为超时,通常意味着防火墙在静默丢弃数据包。请求会按客户端 IP 限速。
常见用例
- 在配置 SSH 密钥之前,确认 VPS 的 22 端口可达。
- 测试家用路由器为 Minecraft(25565)或 Plex 服务器设置的端口转发。
- 验证 3306 或 5432 等数据库端口没有暴露到互联网。
- 检查新添加的云防火墙 443 规则是否真正生效。
安全提示
主机和端口会被发送到 AlgoKit 的服务器,由它向目标发起一次 TCP 连接。请只测试你有权测试的主机。
常见问题
为什么这不是完整的端口扫描器?
扫描他人机器的大量端口属于滥用行为,而且往往违法。测试你选定的单个端口已经满足合理需求:我的服务能被访问吗?
“关闭”和“超时”有什么区别?
关闭表示连接被立即拒绝或失败(没有服务在监听,或网络拒绝了它)。超时表示 5 秒内没有任何应答,通常说明防火墙丢弃了数据包。
可以检测 UDP 端口吗?
不可以。UDP 没有握手,如果不使用该服务的协议通信,就无法可靠地确认 UDP 端口是否开放。
为什么不能测试 192.168.x.x 或我路由器的管理页面?
检测是在互联网上运行的,而不是在你的网络内部,并且为防止滥用,私有地址会被拦截。请改为测试你的公网 IP。