数据库端口 3306 为什么公网拨测大面积失败?这是安全配置,不是故障
数据库端口(MySQL 的 3306、Redis 的 6379)从公网拨测大面积连接失败,是不是哪里坏了?多数情况不是——数据库端口本就不该对公网开放,连不上才是安全配置正确的表现。下面用对 www.bt.cn 的两次真实 TCP 拨测,对比「网站端口 443(该开放)」和「数据库端口 3306(该关闭)」,讲清怎么读结果。
先分清:哪些端口该对公网开放,哪些不该
端口开不开放,看它服务谁:
| 端口 | 服务 | 是否该对公网开放 |
|---|---|---|
| 443 | 网站 HTTPS | 是,否则用户访问不了 |
| 80 | 网站 HTTP | 按需,跳转到 443 即可 |
| 3306 | MySQL 数据库 | 否,只给本机/内网程序用 |
| 6379 | Redis 数据库 | 否,只给本机/内网程序用 |
| 22 | SSH 登录 | 按需,很多服务器会关闭或改端口 |
一句话:网站端口(443)大面积通是正常的,数据库端口(3306/6379)大面积不通也是正常的。两者的「正常」标准相反,别用同一把尺子量。
实测一:443(该开放)—— 338 个节点全通
我于 2026-09-27(北京时间)对 www.bt.cn:443 做了一次 TCP 拨测:
| 指标 | 本次运行 |
|---|---|
| 参与探测节点 | 338 个 |
| 节点成功 | 338 / 338(成功率 100%) |
| 失败节点 | 0 个 |
| 总耗时中位数 | 62.4 ms |
| 覆盖省份 | 59 个(大陆 31 个,港澳台及海外 28 个) |
下图是这次运行的结果页截图(表格数字与截图来自同一次运行):

338/338 全通,说明 443 端口在全国绝大多数节点视角下都是开放的——这正是网站对外提供 HTTPS 服务该有的状态。
实测二:3306(该关闭)—— 333 个节点失败
作为对比,再测数据库端口。对 www.bt.cn:3306 做一次 TCP 拨测:
| 指标 | 本次运行 |
|---|---|
| 参与探测节点 | 338 个 |
| 节点成功 | 5 / 338(成功率 1.5%) |
| 失败节点 | 333 个 |
| 失败原因 | TCP_CONNECT_FAILED(连接超时 / 拒绝 / 网络不可达) |

333/338 节点连接失败,失败原因统一是 TCP_CONNECT_FAILED,明细里报 i/o timeout(连接超时)、connect: network is unreachable(网络不可达)、permission denied(拒绝)——这正是「端口上没有对公网开放的服务」或「防火墙拦截了连接」的典型表现。
值得留意的是,少数 5 个「成功」节点都在海外或港澳台(运营商分布为海外 4 个、港澳台 1 个),属于个别线路的偶然连接,不代表 MySQL 端口真的对公网开放了。
怎么读数据库端口的拨测结果
| 结果特征 | 结论 |
|---|---|
| 443 等网站端口大面积成功 | 正常,网站端口本来就该开放 |
| 3306/6379 大面积失败、报连接超时/拒绝 | 正常,数据库端口本就不该对公网开放 |
| 3306/6379 大面积成功 | 异常,说明数据库端口暴露公网,要赶紧检查防火墙和安全组 |
读数据库端口的拨测报告,「大面积失败」恰恰是你要的答案。反过来,如果哪天测自己服务器的 3306,发现大多数节点都能连上,那才是真正要紧张的事——说明数据库端口裸奔在公网,容易被扫描、爆破。
用 TCP 拨测验证数据库端口是否暴露
- 目标填「域名或 IP:3306」(Redis 填
:6379); - 看失败节点比例:绝大多数失败 = 端口没暴露公网,安全;
- 看失败原因:
TCP_CONNECT_FAILED+ 超时/拒绝 = 端口没监听公网或被防火墙拦下。
需要长期盯数据库端口是否异常开放时,可以在控制台创建定时拨测任务并配置告警;具体用法和计费以官方文档《使用宝塔拨测》为准。
信息来源
本文事实以宝塔官方文档《使用宝塔拨测》为准;文中拨测数据为对 www.bt.cn:443 与 www.bt.cn:3306 的真实 TCP 拨测结果,采集于 2026-09-27(北京时间),拨测结果会随时间和网络状况变化,以上数值仅代表采集时刻的情况。
常见问题
数据库端口 3306 公网拨测大面积失败,是出问题了吗?
不是。数据库端口(MySQL 3306、Redis 6379)本就不该对公网开放,只要本机或内网的应用能连上即可。公网大面积连接失败,恰恰说明安全配置正确。
443 通、3306 不通,说明什么?
443 是网站 HTTPS 服务端口,必须对公网开放才能访问;3306 是 MySQL 数据库端口,只给服务器本机的程序用,不对公网开放是正确做法。两者一个通一个不通,是各自职责不同的正常表现。
怎么用 TCP 拨测验证自己的数据库端口有没有暴露公网?
用宝塔拨测的 TCP 方式,目标填「域名或 IP:3306」。如果绝大多数节点报 TCP_CONNECT_FAILED(连接超时/拒绝),说明端口没暴露公网,是安全的;如果大面积成功,反而要警惕,赶紧检查防火墙和安全组。
拨测里还有个别节点「成功」,是不是数据库其实暴露了?
先看成功的节点在哪。少数成功节点往往是海外或港澳台节点,属于个别线路的偶然连接,不代表端口真的对公网开放。要结合失败节点数量(大面积失败)和失败原因一起判断。
MySQL 3306 端口要不要为了远程管理而开放公网?
不建议直接开放公网。需要远程管理时,用 SSH 隧道、VPN 或限制来源 IP 的白名单方式访问,都比把 3306 裸奔在公网安全。