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 容器能夠正常啟動和運行。