服务器 3306、6379 端口测不通是不是坏了?用 TCP 拨测看数...
一句话答案:数据库端口(MySQL 3306、Redis 6379)对公网大面积连不上,多数时候不是故障,而是安全配置正确的正常表现——这类端口本来就不该暴露在公网上。不少站长第一次用 TCP 拨测自己的数据库端口,看到全国大片节点报连接失败,第一反应是"服务器是不是出问题了"。其实方向反了:网站端口(如 443)就该全通,数据库端口就该大面积不通,两者的判断标准正好相反。下面我用对 www.bt.cn 的两次真实 TCP 拨测数据,帮大家把这件事彻底讲明白。
先分清:哪些端口该开、哪些不该开
判断一个端口该不该对公网开放,看它到底服务谁:
端口
服务
是否该对公网开放
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 个节点全部连通,意味着 443 在全国绝大多数地区视角下都是开放的——这就是网站对外提供 HTTPS 服务应有的样子。
实测二:3306 端口(该关闭)—— 333 个节点失败
同样对 www.bt.cn:3306 再测一次:
指标
本次运行
参与探测节点
338 个
节点成功
5 / 338(成功率 1.5%)
失败节点
333 个
失败原因
TCP_CONNECT_FAILED(连接超时 / 拒绝 / 网络不可达)
333 个节点连接失败,失败原因统一为 TCP_CONNECT_FAILED,明细里能看到 i/o timeout(连接超时)、connect: network is unreachable(网络不可达)、permission denied(拒绝)等报错——这正是"端口上没有对公网开放的服务"或"防火墙把连接拦下了"的典型特征。
另外提醒一句:剩下 5 个"成功"的节点全部位于海外或港澳台(运营商分布为海外 4 个、港澳台 1 个),属于个别线路的偶发现象,并不能说明 MySQL 端口真的对外开放了。
怎么解读数据库端口的拨测报告
结果特征
结论
443 等网站端口大面积成功
正常,网站端口本来就该开放
3306/6379 大面积失败、报连接超时/拒绝
正常,数据库端口本就不该对公网开放
3306/6379 大面积成功
异常,说明数据库端口暴露公网,要赶紧检查防火墙和安全组
对数据库端口来说,"大面积失败"才是你想看到的答案。哪天你测自己服务器的 3306,发现大多数节点都能连通,那才真的要紧张——说明数据库在公网上裸奔,随时可能被扫描器和爆破工具盯上。
操作步骤:用 TCP 拨测验证数据库端口是否暴露
[*]打开宝塔拨测,选择 TCP 拨测方式;
[*]目标填「域名或 IP:3306」(Redis 服务器填 :6379);
[*]看失败节点比例:绝大多数失败 = 端口没有暴露公网,安全;
[*]看失败原因:TCP_CONNECT_FAILED 伴随超时/拒绝 = 端口未在公网监听,或已被防火墙拦截。
需要长期监控数据库端口有没有异常开放的话,可以在控制台创建定时拨测任务并配置告警,具体用法和计费以官方文档《使用宝塔拨测》(https://docs.bt.cn/user-guide/baota-probe/monitoring-guide )为准。
说明:文中两次拨测数据均为对 www.bt.cn:443 与 www.bt.cn:3306 的真实 TCP 拨测结果,采集于 2026-09-27(北京时间)。拨测结果会随时间和网络状况变化,数值仅代表采集时刻的情况。
常见问题数据库 3306 端口公网测不通,是不是服务器挂了?
基本可以放心。MySQL 的 3306、Redis 的 6379 这类数据库端口,本
来就不应该面向公网提供服务,只要服务器本机或内网里的应用能正常连接就够了。公网大面积连不上,反而说明你的安全配置做到位了。
为什么 443 能通而 3306 不通?是不是矛盾?
不矛盾。443 是网站 HTTPS 服务的入口,必须对公网开放访客才能打开网页;3306 是 MySQL 专用端口,通常只允许服务器本机程序访问,不对公网开放才是正确姿势。一个通一个不通,正是两类端口各司其职的表现。
想知道自己的数据库端口有没有暴露到公网,该怎么测?
用宝塔拨测的 TCP 方式,目标写成「域名或 IP:3306」。若绝大多数节点报 TCP_CONNECT_FAILED(连接超时或拒绝),说明端口未暴露公网,状态安全;若发现大面积连通成功,就要提高警惕,立刻去检查防火墙规则和云安全组。
拨测结果里有少数几个节点显示成功,是不是数据库真的暴露了?
别急着下结论,先看这几个成功节点分布在哪。少量成功节点经常出现在海外或港澳台地区,多半是个别线路的偶然连通,并不能证明端口真的对外开放。正确的判断方式是把大面积失败的整体趋势和失败原因放在一起看。
为了远程管理数据库,能不能把 3306 直接开放到公网?
不建议。如果确实需要远程连接,更稳妥的方案是走 SSH 隧道、VPN,或者设置只允许指定来源 IP 的白名单。这几种方式都比把 3306 直接暴露在公网上安全得多。
有问题欢迎回帖。
页:
[1]