MySQL弱口令扫描风险,公网3306端口严禁直接暴露互联网

MySQL是很多网站和业务系统的核心数据库,但不少服务器在部署时保留了最简单粗暴的状态:3306端口直连公网,root密码仍为弱口令。
这种情况下,扫描器可以批量探测IP段,尝试常见口令,一旦命中就能直接登录数据库读取或篡改数据。
本文不讨论复杂理论,直接按运维排查的思路,带你确认自己的服务器是否存在这类风险,并给出可执行的加固方案。

先确认你的3306端口是否暴露在公网

在动手改配置之前,先确认当前状态。
最简单的办法是本地电脑打开命令行,执行下面的探测命令:

telnet 你的服务器IP 3306

如果连接成功,说明3306端口可以直接从公网访问;
如果提示超时或被拒绝,说明网络层可能已有限制。
也可以使用在线的端口扫描工具辅助判断,但注意不要在未经授权的情况下扫描他人服务器。

下一步登录服务器,检查MySQL的实际监听地址:

ss -lntp | grep 3306

如果输出里的监听地址是 0.0.0.0:3306::3306,说明MySQL对所有网卡开放,公网可直接抵达;
如果只监听 127.0.0.1:3306,则本机之外无法连接,风险较小。

排查MySQL是否存在弱口令账号

端口暴露只是入口,弱口令才是被攻破的直接原因。
登录MySQL控制台:

mysql -u root -p

执行下面语句查看用户与主机授权信息:

SELECT user, host, authentication_string FROM mysql.user;

重点检查 host 为 % 的账号,以及是否出现 rootadmintest 这些常见用户名。
继续检查密码强度:

SELECT user, host, LENGTH(authentication_string) AS pwd_len FROM mysql.user;

这条语句能看出密码哈希长度,但判断实际强度仍需结合账号使用情况。
如果某些账号长期不用、密码为简单数字或拼音、而且允许任意主机登录,那就是高风险的弱口令账号。

收紧MySQL公网访问权限

第一步:把监听地址改回本地。 编辑MySQL配置文件,常见路径为 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf

[mysqld]
bind-address = 127.0.0.1
port = 3306

保存后重启MySQL:

systemctl restart mysql

再执行 ss -lntp | grep 3306,确认监听地址已变为 127.0.0.1:3306

第二步:在服务器防火墙层面拦截外部请求。 以firewalld为例:

firewall-cmd --permanent --remove-port=3306/tcp
firewall-cmd --reload

如果你用的是宝塔面板,可以在“安全”菜单中删除3306端口放行规则,并确认系统防火墙状态为开启。

第三步:在云控制台安全组中删除入方向3306规则。 登录云服务商控制台,找到服务器关联的安全组,把入方向协议端口为TCP 3306的规则删除,或把源地址收紧为你的办公IP。
安全组的生效优先级高于服务器内部防火墙,很多入侵案例都是因为安全组放行过宽导致的。

把已有账号密码和授权调整到位

端口限制做好后,还要把账号本身的密码和授权调整到位。
重置root密码并限制只能本机登录:

ALTER USER 'root'@'localhost' IDENTIFIED BY '这里填一个长位复杂密码';

对于允许远程连接的业务账号,只给必要库表的最小权限,并设置独立强密码:

CREATE USER 'appuser'@'127.0.0.1' IDENTIFIED BY '独立复杂密码';
GRANT SELECT, INSERT, UPDATE ON 业务库.* TO 'appuser'@'127.0.0.1';
FLUSH PRIVILEGES;

如果业务确实需要远程访问数据库,不建议直接把3306公开。
更稳妥的方案是走VPN、跳板机或SSH隧道。
SSH隧道示例:

ssh -L 3307:127.0.0.1:3306 用户名@服务器IP

之后本地连接 127.0.0.1:3307 即可通过加密隧道访问数据库,公网不再暴露MySQL端口。

验证加固结果并留意后续告警

完成以上操作后,逐项做最终验证:

  1. 在本地再次执行 telnet 服务器IP 3306,应提示无法连接;
  2. 在服务器上执行 ss -lntp | grep 3306,确认只有本机回环地址在监听;
  3. 使用 mysql -u root -p 在本机登录MySQL,确认密码修改后可以正常连接;
  4. 尝试在本地用数据库客户端连接服务器IP的3306端口,应超时或拒绝。

另外建议开启云平台的安全告警或安装Fail2ban,监听MySQL日志中的异常登录行为,出现连续认证失败时自动封禁来源IP。

MySQL弱口令扫描是自动化攻击中最容易得手的一类,处理思路其实很清晰:端口别对公网开放、账号密码要强、远程访问走专用通道
对照本文检查完再复查一遍,你的数据库暴露面就基本收住了。
如果服务器上还有其他数据库或中间件端口对外开放,建议同样按这个思路梳理一次。

分享到:
上一篇
苹果iCloud专用代理Passkey漏洞会泄露真实IP原理
下一篇
Docker API 2375端口裸奔风险
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意