MySQL 默认监听0.0.0.0:3306,必须通过bind-address限制监听地址、系统防火墙(ufw/firewalld)设置IP白名单、云平台安全组精确放行,并与MySQL用户host字段协同配置,四层防护缺一不可。MySQL 默认监听所有网卡,不设防火墙等于裸奔MySQL 安装后默认绑定 0.0.0.0:3306,只要端口开放,任何能连上服务器的机器都可能暴力试探 root 密码。权限控制(比如 GRANT)只管「登录后能做什么」,不管「谁可以连上来」------这是网络层的事,得靠防火墙兜底。实操建议:先确认 MySQL 实际监听地址:ss -tlnp | grep :3306 或查 my.cnf 中的 bind-address;若为 0.0.0.0 或注释掉,说明已暴露全网生产环境必须设为 127.0.0.1(仅本地)或具体内网 IP(如 192.168.10.5),再配合防火墙白名单别依赖 skip-networking:它会禁用 TCP 连接,导致无法远程管理、备份工具(如 mysqldump 通过网络调用)失效ufw / firewalld 开放指定 IP 访问 3306 端口Linux 主流发行版用 ufw(Ubuntu)或 firewalld(CentOS/RHEL),核心原则是:默认拒绝所有入站,只放行可信来源。常见错误现象:开了 ufw allow 3306,结果整个互联网都能连 ------ 因为这等价于放行所有 IP 的 3306 端口。正确做法:Ubuntu(ufw):ufw allow from 192.168.10.100 to any port 3306(仅允许可信应用服务器)CentOS(firewalld):firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.100" port port="3306" protocol="tcp" accept',之后 firewall-cmd --reload若需多 IP,逐条添加;别用 /24 网段掩码,除非该网段内所有机器都可信检查是否生效:ufw status verbose 或 firewall-cmd --list-all云服务器安全组比系统防火墙更优先阿里云、AWS、腾讯云等平台的安全组是第一道网关,规则匹配早于系统防火墙。即使你本地 ufw 拒绝了所有连接,安全组开着 3306 全放行,MySQL 依然裸奔。使用场景:数据库与应用部署在不同云主机,且走内网通信。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
花青泽几秒前
5-数据库-SQL注入-联合查询-关键字绕过-day13笨鸟先飞,勤能补拙6 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例天桥下的卖艺者6 小时前
使用scitable包,两步生成逆概率删失权重(IPCW)隔窗听雨眠6 小时前
AI原生数据库浪潮:国产数据库的架构重构与路径之争长和信泰光伏储能7 小时前
京津冀光伏发电:绿色能源的未来之路数据库小学妹7 小时前
数据库选型实战:从数据类型到TCO成本,五维决策框架+九款产品横评浦信仿真大讲堂7 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来Gu Gu Study8 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)神龙天舞20018 小时前
MySQL 备库为什么会延迟好几个小时卷无止境8 小时前
写代码这件事,到底该讲究点什么?