帅秃顶的博客

  • 隐私政策🤝
  • 关于🏆
  • 友情链接🔗
热爱生活的每一天
帅秃顶的个人博客
  1. 首页
  2. linux
  3. 正文

分享一个简单实用的shell脚本

2026年4月2日 2点热度 0人点赞 0条评论

我的WordPress博客使用的域名托管在Cloudflare上,为了提高VPS的安全性,可以配置VPS上的防火墙仅允许来自Cloudflare的IP访问80/443端口。我使用的是ufw防火墙,具体脚本如下:

#!/bin/bash

echo "开始执行▶️"
# 下载最新 Cloudflare IP 列表
cf_ips_v4=$(curl -s https://www.cloudflare.com/ips-v4)
cf_ips_v6=$(curl -s https://www.cloudflare.com/ips-v6)

# 给新规则添加特殊标记 comment,便于识别
RULE_COMMENT="cf-update-$(date +%s)"

# 先添加新的 Cloudflare IP规则(带标记)
for ip in $cf_ips_v4; do
    ufw allow proto tcp from $ip to any port 80 comment $RULE_COMMENT
    ufw allow proto tcp from $ip to any port 443 comment $RULE_COMMENT
done

for ip in $cf_ips_v6; do
    ufw allow proto tcp from $ip to any port 80 comment $RULE_COMMENT
    ufw allow proto tcp from $ip to any port 443 comment $RULE_COMMENT
done

# 等待1-2秒,确保新规则生效
sleep 2

# 删除旧的 Cloudflare 80/443 端口规则(但排除刚刚加的)
EXISTING_RULES=$(ufw status numbered | grep -E '80\/tcp|443\/tcp' | grep -v "$RULE_COMMENT" | awk -F'[][]' '{print $2}' | sort -rn)

for rule in $EXISTING_RULES; do
    ufw --force delete $rule
done

# 设置默认拒绝 80/443 的外来访问(如果没有就添加一次)
ufw status | grep -q "DENY.*80" || ufw deny 80/tcp
ufw status | grep -q "DENY.*443" || ufw deny 443/tcp

echo "✅ Cloudflare IP 更新完成(零中断),80/443 只允许 Cloudflare访问。其他端口规则未受影响。"

使用firewalld防火墙的可以自行修改适配。

标签: cloudflare shell ufw
最后更新:2026年4月2日

帅秃顶

告别的年代,分开的理由,终不须诉说出口

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
帅秃顶 的头像
最近评论
porntude 发布于 2 周前(03月22日) Very good i like it
两性资源 发布于 2 周前(03月22日) 看不懂但大受震撼
read more 发布于 2 周前(03月20日) Please let me know if you're looking for a ar...
帅秃顶 发布于 2 周前(03月20日) thanks!
visit article 发布于 2 周前(03月20日) Hola! I've been following your site for some ...

COPYRIGHT © 2025 pigpigpigGo. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang