要将 IP 地址从黑名单中移除,使其能够再次连接到 MySQL 的 3306 端口,需要根据使用的防火墙工具(firewalldiptables)采取相应的步骤。以下是针对这两种工具的具体操作方法:

使用 firewalld 移除黑名单规则

1. 列出现有的直接规则

首先列出所有现有的直接规则以找到与目标 IP 相关的规则:

sudo firewall-cmd --direct --get-all-rules
2. 删除特定的拒绝规则

假设你要移除的是针对 192.168.1.100 的规则,可以使用如下命令删除它:

sudo firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 192.168.1.100 -p tcp --dport 3306 -j REJECT

这里的关键是确保你提供给 --remove-rule 的参数完全匹配添加时使用的参数。

3. 使更改永久生效

为了让这些更改在系统重启后仍然有效,需要将其标记为永久:

sudo firewall-cmd --runtime-to-permanent

或者直接移除永久规则:

sudo firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 0 -s 192.168.1.100 -p tcp --dport 3306 -j REJECT
sudo firewall-cmd --reload

使用 iptables 移除黑名单规则

1. 查看当前的 iptables 规则

你可以通过以下命令查看当前的 iptables 规则列表:

sudo iptables -L -n --line-numbers

这会显示每一行规则及其编号,帮助你定位到要删除的规则。

2. 删除特定的拒绝规则

如果已知规则的行号(例如,它是第 5 行),可以直接通过行号删除该规则:

sudo iptables -D INPUT 5

如果不记得具体行号,也可以通过指定完整的匹配条件来删除规则:

sudo iptables -D INPUT -s 192.168.1.100 -p tcp --dport 3306 -j REJECT
3. 保存更改

为了让这些更改在系统重启后仍然有效,你需要保存它们。根据你的发行版不同,保存方式可能有所差异:

对于基于 Red Hat 的系统(如 CentOS, RHEL):

sudo service iptables save

对于 Debian 和 Ubuntu 系统:

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

验证更改

无论使用哪种工具,完成上述步骤后都应验证规则是否已被成功移除:

  • 对于 firewalld,可以再次运行 firewall-cmd --direct --get-all-rules 来确认。
  • 对于 iptables,可以再次运行 iptables -L -n 来检查。