如何阻止指定IP连接MySQL服务器

胖浩姑娘_1740

胖浩姑娘_1740

2026-08-20

679人浏览

原创

mysql本身无法阻止指定ip连接,必须用iptables或firewalld在网络层拦截tcp握手,配合bind-address和user@host精确匹配,并启用skip_name_resolve确保ip比对准确。

如何阻止指定ip连接mysql服务器

mysql 本身没有“阻止指定 IP 连接”的开关,只靠 GRANT 或 DROP USER 无法真正拦住 TCP 握手——只要 IP 能发包到 3306 端口,MySQL 就会响应 SYN,甚至返回 Access denied for user,反而暴露服务存在。


用 iptables 在网络层 DROP 最有效

这是唯一能确保对方“连都连不上”的方式,必须在 TCP 握手前拦截。

  • iptables -I INPUT -s 203.0.113.45 -p tcp --dport 3306 -j DROP:-I 插入链首,避免被前面的 ACCEPT 规则放过
  • 别漏 --dport 3306:不加会误杀 SSH、HTTP 等其他端口
  • 封完立刻验证:telnet 203.0.113.45 3306 应超时或无响应;若返回 Connection refused,说明 MySQL 已响应,防火墙没生效
  • 持久化保存:iptables-save > /etc/iptables/rules.v4(Debian/Ubuntu)或 service iptables save(CentOS 6)

firewalld 用户请用 rich rule 拒绝而非丢弃

firewalld 默认策略更偏向“拒绝并通知”,适合调试;但生产环境建议用 reject 配合 --permanent。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" port port="3306" protocol="tcp" reject'
  • 务必加 --permanent,否则重启后失效
  • 执行 firewall-cmd --reload 生效
  • 测试方式同上:telnet 203.0.113.45 3306 不应得到任何响应

别指望 GRANT 或 DROP USER 拦连接请求

它们只控制登录后的权限,对握手阶段完全无效。常见错误操作包括:

  • 执行 REVOKE ALL ON *.* FROM 'user'@'203.0.113.45':如果该 user@host 组合根本不存在(比如只有 'user'@'%'),这条命令不报错也不起作用
  • 只删 'root'@'203.0.113.45' 却留着 'root'@'%':攻击者仍可用 root 从该 IP 登录
  • 以为 bind_address = 127.0.0.1 就安全了:它只限制监听地址,和“阻止某 IP”无关;且一旦设成 0.0.0.0 或内网 IP,就全靠防火墙兜底

Host 字段不是黑名单,是白名单匹配逻辑

MySQL 的 host 字段本质是“允许从哪来”,不是“禁止从哪来”。它只支持 % 和 _,不支持 CIDR、正则、子网掩码。

  • 'app'@'192.168.1.%' 匹配 192.168.1 开头的所有字符串(含 192.168.1.999,MySQL 静默截断为 192.168.1.99)
  • 'app'@'192.168.1.0/24' 是无效写法,会被当字面量处理,几乎不可能匹配成功
  • 想让某用户只能从特定 IP 连,必须显式创建 'app'@'203.0.113.45',再删掉所有宽泛账号如 'app'@'%'
  • 改完必须 FLUSH PRIVILEGES,否则新规则不生效

真正起作用的永远是三层协同:防火墙规则 + bind-address 监听范围 + user@host 精确匹配。少一层,就可能被绕过。尤其注意 DNS 反查干扰——开启 skip_name_resolve=ON 后,MySQL 只比对原始 IP,更可控也更可预测。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2712

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2456

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4532

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

727

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 180人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 287人学习