在 CentOS 7 中,iptables 本身不支持直接设置时间段
以下是一个使用 iptables 和 cron 实现时间段限制的示例:
/usr/local/bin/iptables_time_based.sh,并添加以下内容:#!/bin/bash # 设置时间段,例如:工作时间为周一至周五的 9:00 到 18:00 WORK_START="09:00" WORK_END="18:00" # 获取当前时间 CURRENT_TIME=$(date +"%H:%M") # 检查当前时间是否在工作时间内 if [[ "$CURRENT_TIME" >= "$WORK_START" ]] && [[ "$CURRENT_TIME" <= "$WORK_END" ]]; then # 在工作时间内,允许流量 iptables -A INPUT -j ACCEPT else # 在工作时间外,拒绝流量 iptables -A INPUT -j DROP fi chmod +x /usr/local/bin/iptables_time_based.sh cron 任务来定期运行脚本。首先,打开 crontab 配置文件:crontab -e crontab 文件中,添加一行以设置定时任务。例如,每天运行一次脚本:0 * * * * /usr/local/bin/iptables_time_based.sh 这将使得脚本每天凌晨 0 点执行一次,根据当前时间允许或拒绝流量。
注意:这个示例仅适用于 CentOS 7。在其他版本的 CentOS 或类似的 Linux 发行版上,步骤可能略有不同。