使用 Bash 操作 Cloudflare API 我所有的网站都托管在 DigitalOcean Droplet 上,并且我使用 Cloudflare 作为 CDN 提供商。使用 Cloudflare 的一大好处是,它可以减少流向用户的总体流量,同时将你的真实服务器 IP 地址隐藏在其 CDN 背后。 我个人最喜欢的 Cloudflare 功能是其免费的 DDoS 防护。它多次保护我的服务器免受各种 DDoS 攻击。Cloudflare 提供了一个非常实用的 API,你可以通过它轻松启用和禁用 DDoS 防护功能。 本章将是一个练习!我向你发起挑战:编写一个简短的 Bash 脚本,以便在需要时自动为你的服务器启用或禁用 Cloudflare 的 DDoS 防护!
我所有的网站都托管在 DigitalOcean Droplet 上,并且我使用 Cloudflare 作为 CDN 提供商。使用 Cloudflare 的一大好处是,它可以减少流向用户的总体流量,同时将你的真实服务器 IP 地址隐藏在其 CDN 背后。
我个人最喜欢的 Cloudflare 功能是其免费的 DDoS 防护。它多次保护我的服务器免受各种 DDoS 攻击。Cloudflare 提供了一个非常实用的 API,你可以通过它轻松启用和禁用 DDoS 防护功能。
本章将是一个练习!我向你发起挑战:编写一个简短的 Bash 脚本,以便在需要时自动为你的服务器启用或禁用 Cloudflare 的 DDoS 防护!
在开始本指南之前,请先设置好你的 Cloudflare 账户,并准备好你的网站。如果你不确定如何操作,可以参考以下步骤:创建 Cloudflare 账户并添加网站。
设置好 Cloudflare 账户后,确保获取以下信息:
此外,确保你的服务器上已安装 curl:
curl --version
如果未安装 curl,你需要运行以下命令:
yum install curl
apt-get install curl
该脚本需要监控服务器上的 CPU 使用率。如果 CPU 使用率根据 vCPU 数量达到较高水平,脚本将通过 Cloudflare API 自动启用 DDoS 防护。
脚本的主要功能应包括:
我已经准备了一个演示脚本,你可以将其作为参考。不过,我鼓励你先尝试自己编写脚本,然后再查看我的脚本!
要下载脚本,只需运行以下命令:
wget https://raw.githubusercontent.com/bobbyiliev/cloudflare-ddos-protection/main/protection.sh
使用你喜欢的文本编辑器打开脚本:
nano protection.sh
然后用你的 Cloudflare 详细信息更新以下内容:
CF_CONE_ID=YOUR_CF_ZONE_ID CF_EMAIL_ADDRESS=YOUR_CF_EMAIL_ADDRESS CF_API_KEY=YOUR_CF_API_KEY
之后,将脚本设置为可执行:
chmod +x ~/protection.sh
最后,设置两个 Cron 作业,每 30 秒运行一次。要编辑你的 crontab,运行以下命令:
crontab -e
并添加以下内容:
* * * * * /path-to-the-script/cloudflare/protection.sh * * * * * ( sleep 30 ; /path-to-the-script/cloudflare/protection.sh )
请注意,你需要将脚本路径替换为你实际存储脚本的路径。
这是一个相当简单且经济实惠的解决方案。该脚本的一个缺点是:如果服务器因攻击而变得无响应,脚本可能根本无法触发。
当然,更好的方法是使用像 Nagios 这样的监控系统,并根据监控系统的统计数据来触发脚本。不过,这个脚本挑战本身就是一个很好的学习机会!
以下是另一篇关于如何使用 Discord API 并通过 Bash 脚本向 Discord 频道发送通知的优秀资源:
如何在 Ubuntu 18.04 上使用 Discord Webhook 获取网站状态通知
{notice} 本内容最初发布于 DevDojo
免责声明:
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准,作为权威依据。对于关键信息,建议采用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。