TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:

TOP云总站云服务器:https://topyun.vip/server/buy.html

TOP云C站云服务器:https://c.topyun.vip/cart

在云服务器上限制 MySQL 的远程访问,是提升数据库安全性的重要措施。以下是几种常用的方法,适用于大多数 Linux 系统(如 CentOS、Ubuntu)上运行的 MySQL 或 MariaDB:


一、通过 MySQL 用户权限限制远程访问

这是最直接和推荐的方式,通过控制哪些用户可以从哪些主机访问数据库。

步骤:

  1. 登录 MySQL(本地登录):

    mysql -u root -p
  2. 查看当前用户及其访问主机

    SELECT user, host FROM mysql.user;
  3. 限制特定用户只能本地访问(或指定 IP 访问)

    • 如果你希望某个用户(如 root)只能本地访问,可以将其 host 设置为 localhost:

      UPDATE mysql.user SET host = 'localhost' WHERE user = 'root';
    • 如果你希望某个用户只能从特定 IP 访问,例如 192.168.1.100:

      CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'password';
      GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.100';
      FLUSH PRIVILEGES;
  4. 删除允许任意主机访问的用户(如 'root'@'%')

    DROP USER 'root'@'%';
    FLUSH PRIVILEGES;
  5. 退出 MySQL

    exit;

二、通过防火墙限制 MySQL 端口访问

MySQL 默认使用 3306 端口。你可以通过配置防火墙(如 iptables、firewalld 或云平台的安全组)来限制哪些 IP 可以访问该端口。

方法 1:使用 firewalld(适用于 CentOS 7+ / Fedora)

  1. 查看当前防火墙状态

    systemctl status firewalld
  2. 允许特定 IP 访问 3306 端口

    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
  3. 拒绝所有其他 IP 访问 3306 端口(默认是拒绝的,但可以明确设置):

    firewall-cmd --permanent --remove-port=3306/tcp
  4. 重新加载防火墙

    firewall-cmd --reload

方法 2:使用 iptables(适用于大多数 Linux)

  1. 允许特定 IP 访问 3306

    iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
  2. 拒绝其他所有 IP 访问 3306

    iptables -A INPUT -p tcp --dport 3306 -j DROP
  3. 保存规则(根据系统不同)

    • 对于 CentOS 7+:

      service iptables save
    • 或使用 iptables-persistent(Ubuntu)等工具。


方法 3:通过云平台安全组限制(如阿里云、腾讯云、AWS 等)

大多数云服务提供商都提供了“安全组”功能,可以控制进出云服务器的流量。

  1. 登录云控制台,进入“安全组”管理页面。

  2. 找到你的云服务器所在的安全组。

  3. 添加入站规则:

    • 协议:TCP

    • 端口范围:3306

    • 来源 IP:指定允许访问的 IP 地址(如 192.168.1.100/32),或限制为某个网段。

  4. 保存规则。

注意:安全组的优先级通常高于服务器本地的防火墙设置,因此这是非常有效的控制方式。


三、修改 MySQL 配置文件(可选)

默认情况下,MySQL 可能监听所有网络接口(0.0.0.0),你可以修改其配置,使其只监听本地回环地址(127.0.0.1),从而禁止外部直接连接。

  1. 编辑 MySQL 配置文件(位置可能因系统而异):

    • CentOS:/etc/my.cnf

    • Ubuntu:/etc/mysql/mysql.conf.d/mysqld.cnf

  2. 找到 bind-address 配置项,修改为:

    bind-address = 127.0.0.1
  3. 保存文件并重启 MySQL 服务:

    systemctl restart mysqld # 或 service mysql restart

注意:此方法会完全禁止外部访问 MySQL,仅限本地连接。如果需要允许特定 IP 远程访问,还是要结合用户权限和防火墙设置。


总结推荐方案:

为了兼顾安全性与灵活性,推荐组合使用以下方式

  1. 通过 MySQL 用户权限限制:只允许特定用户从特定 IP 访问。

  2. 通过防火墙或安全组限制:只开放指定 IP 访问 3306 端口。

  3. (可选)修改 bind-address:如果完全不需要外部访问,可以将其设置为 127.0.0.1。

这样可以从多个层面保障 MySQL 的远程访问安全。


不容错过
Powered By TOPYUN 云产品资讯