脚本
#!/bin/bash
# 启用并启动 firewalld 服务
systemctl enable firewalld
systemctl start firewalld
# 多个 UDP 单端口
udp_ports="5000 5001 5002"
for port in $udp_ports; do
firewall-cmd --zone=public --add-port=$port/udp --permanent
done
# 多个 TCP 单端口
tcp_ports="8080 8081 8082"
for port in $tcp_ports; do
firewall-cmd --zone=public --add-port=$port/tcp --permanent
done
# 多个 UDP 端口范围
udp_port_ranges="4000-4005 4010-4015"
for port_range in $udp_port_ranges; do
firewall-cmd --zone=public --add-port=$port_range/udp --permanent
done
# 多个 TCP 端口范围
tcp_port_ranges="7000-7005 7010-7015"
for port_range in $tcp_port_ranges; do
firewall-cmd --zone=public --add-port=$port_range/tcp --permanent
done
# 限制多个远程 IP(示例 IP)-- 这是禁用这些ip的访问,可以先不设置,注释掉就行了
remote_ips="192.168.1.100 192.168.1.101 192.168.1.102"
for ip in $remote_ips; do
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="'$ip'" reject' --permanent
done
# 重新加载防火墙规则使其生效
firewall-cmd --reload
防火墙查看放行的端口
- 使用
firewall-cmd
命令:
plaintext
firewall-cmd --list-ports
该命令将列出当前防火墙放行的端口。
- 或者查看特定区域(如
public
)放行的端口:
plaintext
firewall-cmd --zone=public --list-ports
防火墙查看禁用ip和启用ip的规则
要查看您添加的规则,可以使用以下命令:
plaintext
firewall-cmd --zone=public --list-rich-rules
要删除添加的规则,可以使用以下命令,假设您添加的规则名称或标识是特定的(以下示例中假设规则标识为 rule1
):
plaintext
firewall-cmd --zone=public --remove-rich-rule='rule1' --permanent
firewall-cmd --reload
请注意,您需要将 rule1
替换为实际添加规则时生成的规则名称或标识。