在 CentOS 系统中,使用 iptables 命令可以配置内核防火墙规则,以允许或拒绝特定的网络流量。以下是如何使用 iptables 允许特定协议的步骤:
打开终端: 以 root 用户或具有 sudo 权限的用户登录到 CentOS 系统。
查看当前的 iptables 规则: 使用以下命令查看当前的防火墙规则:
sudo iptables -L -n -v
允许特定协议: 假设你想允许 TCP 协议的端口 80(HTTP),可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
这条命令的意思是:在 INPUT 链中添加一条规则,允许目标端口为 80 的 TCP 流量,并将其接受。
如果你想允许 UDP 协议的端口 53(DNS),可以使用以下命令:
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
保存 iptables 规则:
CentOS 默认不会持久化 iptables 规则,重启系统后规则会丢失。你可以使用 iptables-services 或 firewalld 来持久化规则。
使用 iptables-services:
sudo systemctl enable iptables
sudo systemctl start iptables
使用 firewalld(推荐):
sudo yum install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
然后使用 firewall-cmd 命令来添加规则:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --reload
验证规则是否生效:
再次使用 iptables -L -n -v 命令查看规则是否已经添加,并确保规则顺序正确(通常允许规则应该放在拒绝规则之前)。
通过以上步骤,你可以在 CentOS 系统中使用 iptables 允许特定协议的流量。如果你使用的是 firewalld,则推荐使用 firewall-cmd 命令来管理防火墙规则,因为它提供了更友好的界面和持久化功能。