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助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
quantdash_cc12 分钟前
股票历史数据为什么比实时行情更重要?回测结果失真的根源可能就在 K 线数据Web3&Basketball40 分钟前
LLM 峰谷定价怎么吃满:一个能对账的错峰调度器2601_9622186142 分钟前
万象生鲜系统订单全生命周期状态同步技术实现业务可视FOAF-lambda1 小时前
uiautomation-new 控件方位的使用OKkankan1 小时前
LangChain能力详解!:从工具调用到 LangSmith——让聊天模型具备实时交互能力!Wang's Blog1 小时前
Java框架快速入门:Spring Security+OAuth2之用户注册与唯一性校验实现跨境生态圈1 小时前
2026谷歌SEO快速排名深度解析:合规起量、避坑指南与实战落地策略天空之城--1 小时前
Flutter Drift 完全指南:从原理到实战JavaPub-rodert2 小时前
Docker 安装 MySQL 完整教程:从零部署数据库,到生产环境持久化配置隔窗听雨眠2 小时前
MySQL整库迁移至KaiwuDB完全指南:从数据类型映射到生产切换的系统性实践