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
添加规则
-
清除现有规则
sudo iptables -F sudo iptables -t nat -F sudo iptables -X sudo iptables -t nat -X
-
添加 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
-
保存
iptables
规则对于 CentOS 或 RHEL 系列:
sudo service iptables save
对于 Ubuntu 或 Debian 系列:
sudo apt-get install iptables-persistent sudo netfilter-persistent save
备注
-
规则优先级:防火墙规则的顺序可能会影响其生效情况,确保规则正确配置且无冲突。
-
持久化配置:确保防火墙规则在系统重启后仍然生效,需保存当前配置。
通过这些步骤,您应该能够正确配置防火墙,并确保 Docker 容器能够正常启动和运行。