宝塔面板博客官方技术博客
宝塔拨测

数据库端口 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 个)

下图是这次运行的结果页截图(表格数字与截图来自同一次运行):

对 www.bt.cn:443 的一次 TCP 拨测结果页:338/338 节点成功,成功率 100%

338/338 全通,说明 443 端口在全国绝大多数节点视角下都是开放的——这正是网站对外提供 HTTPS 服务该有的状态。

实测二:3306(该关闭)—— 333 个节点失败

作为对比,再测数据库端口。对 www.bt.cn:3306 做一次 TCP 拨测:

指标 本次运行
参与探测节点 338 个
节点成功 5 / 338(成功率 1.5%)
失败节点 333 个
失败原因 TCP_CONNECT_FAILED(连接超时 / 拒绝 / 网络不可达)

对 www.bt.cn:3306 的一次 TCP 拨测结果页:333 个节点连接失败,成功率仅 1.5%

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 裸奔在公网安全。