CentOS 中的 iptables
和 firewalld
都是用于配置防火墻規則的工具,但它們在使用和管理上有所不同。iptables
是一個底層的命令行工具,而 firewalld
是一個更高層次的抽象,它使用 iptables
作為其后端來實際設置規則。在 CentOS 7 及以上版本中,默認的防火墻管理工具是 firewalld
。
如果你想要讓 iptables
和 firewalld
協同工作,通常的做法是通過 firewalld
來管理防火墻規則,因為 firewalld
提供了一個更友好的接口和動態管理區域的能力。然而,如果你需要直接使用 iptables
命令來設置規則,你可以這樣做,但需要注意不要與 firewalld
的設置沖突。
以下是一些基本的步驟來使用 firewalld
:
啟動 firewalld 服務:
sudo systemctl start firewalld
設置防火墻開機自啟:
sudo systemctl enable firewalld
查看當前防火墻狀態:
sudo firewall-cmd --state
查看所有開放的端口:
sudo firewall-cmd --list-all
添加一個端口到防火墻規則(例如,開放 TCP 端口 80):
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
重新加載防火墻配置:
sudo firewall-cmd --reload
如果你確實需要直接使用 iptables
命令,你可以這樣做,但請確保你知道自己在做什么,并且了解這些規則可能會被 firewalld
覆蓋:
# 添加一個規則到 INPUT 鏈
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 保存 iptables 規則(CentOS 7 及以上版本使用 systemctl 來保存 firewalld 規則,而不是直接保存 iptables)
sudo systemctl restart firewalld
請注意,直接使用 iptables
設置的規則不會持久化,系統重啟后規則會丟失。而 firewalld
提供了持久化規則的方法。
在大多數情況下,建議只使用 firewalld
來管理防火墻規則,因為它提供了更簡單和更動態的方式來處理防火墻配置。如果你確實需要使用 iptables
,請確保你了解如何避免與 firewalld
的規則沖突,并且知道如何同步兩者的配置。