Hugo博客公告弹窗

🧠 我写了一个脚本,让网站只对中国开放(iptables 实战解析)

主要目标:

  • 只允许中国大陆 IP 访问 HTTP (80) 和 HTTPS (443)
  • 自动检测 SSH 端口
  • 允许访问SSH 端口(自动检测)
  • 拒绝其他来源访问(DROP)
  • 自动安装 ipset
  • 自动持久化规则(开机自加载)
  • 下载中国大陆 IP 段(来自 ispip.clang.cn)

注意:如果你部署了fq协议,记得修改节点端口号,在行3x-ui端口处修改

脚本

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/safe_cn_firewall.sh && chmod +x safe_cn_firewall.sh && ./safe_cn_firewall.sh

脚本2(包含放行必应爬虫ip段)

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/safe_cn_firewall_with_bing.sh && chmod +x safe_cn_firewall_with_bing.sh && ./safe_cn_firewall_with_bing.sh

查看

ipset list bingbot

验证:过几个小时或几天后,你可以再次执行

iptables -L -n -v | grep bingbot

若看到计数器(pktsbytes)不为 0,则说明:

✅ Bing 爬虫确实访问并成功被放行。

定时任务

(crontab -l ; echo "0 4 * * * /root/safe_cn_firewall.sh >/dev/null 2>&1") | crontab -

或者

(crontab -l ; echo "0 4 * * * /root/safe_cn_firewall_with_bing.sh >/dev/null 2>&1") | crontab -

表示每天凌晨 4 点自动更新最新中国IP段并重载防火墙。

查看规则

iptables -L -n -v

查看ip数量

ipset list china | wc -l

删除规则

查看当前规则编号

iptables -L INPUT --line-numbers

删除指定行(从大到小删除,避免行号变化),例如

iptables -D INPUT 8
iptables -D INPUT 7
iptables -D INPUT 6
iptables -D INPUT 5

保存当前规则

iptables-save > /etc/iptables/rules.v4

安装持久化工具(如果没安装)

apt-get install iptables-persistent

或手动加载(开机启动)

echo "iptables-restore < /etc/iptables/rules.v4" >> /etc/rc.local
CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-10-19 02:36
clarity统计