Bootstrap

Linux Docker 防火墙设置 放通 MySQL(3306) Redis(6379) 端口

Linux Docker 防火墙设置 放通 MySQL(3306) Redis(6379) 端口,使用firewalld 防火墙或iptables ,因此尝试重新启动 firewalld 服务,添加防火墙规则,并检查防火墙状态。以下是详细步骤:

1. 启动 firewalld 服务

首先启动 firewalld 服务:

sudo systemctl start firewalld
sudo systemctl enable firewalld

2. 添加防火墙规则

添加允许端口 3306(用于 MySQL)和 6379(用于 Redis)的规则:

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent

3. 重新加载防火墙配置

重新加载防火墙规则以使其生效:

sudo firewall-cmd --reload

4. 检查防火墙状态和规则

检查防火墙状态,确保端口规则已正确应用:

sudo firewall-cmd --list-all

5. 重启 Docker 容器

尝试重新启动 Docker 容器:

sudo systemctl restart docker

如果 firewalld 服务不可用

如果您不想使用 firewalld,也可以使用 iptables 来手动添加规则。

使用 iptables 添加规则

  1. 清除现有规则

    sudo iptables -F
    sudo iptables -t nat -F
    sudo iptables -X
    sudo iptables -t nat -X
  2. 添加 MySQL 和 Redis 规则

    sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
    sudo iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 172.21.0.2:3306
    sudo iptables -t nat -A PREROUTING -p tcp --dport 6379 -j DNAT --to-destination 172.21.0.2:6379
    
  3. 保存 iptables 规则

    对于 CentOS 或 RHEL 系列:

    sudo service iptables save

    对于 Ubuntu 或 Debian 系列:

    sudo apt-get install iptables-persistent
    sudo netfilter-persistent save
    

备注

  • 规则优先级:防火墙规则的顺序可能会影响其生效情况,确保规则正确配置且无冲突。

  • 持久化配置:确保防火墙规则在系统重启后仍然生效,需保存当前配置。

通过这些步骤,您应该能够正确配置防火墙,并确保 Docker 容器能够正常启动和运行。

;