使用海外网站服务器怎么防攻击?新手低成本配置防火墙与 CDN 防护方案

很多新手一上来就会问:“我买了一台海外服务器,装个宝塔、装个 WordPress,再开个防火墙,是不是就安全了?”
说实话,不够。
全球 DDoS 攻击量继续大幅上升,Cloudflare 报告显示全年拦截的 DDoS 攻击数量已经超过 4700 万次,而且大体量网络层攻击明显增加;Google Cloud 也提到,漏洞公开到被实际利用的时间窗口,已经从“几周”缩短到“几天”。这意味着现在的网站防护,不能只看“有没有防火墙”,而是要同时看 源站隐藏、WAF/CDN、上游清洗、防爆破、应用限流、补丁速度 这几件事。
那么,什么配置适合什么业务、带宽和防护值怎么选、低成本怎么搭、什么时候必须上 CDN,什么时候只靠 CDN 根本不够。
一、先讲结论:新手防攻击,最省钱的思路不是“硬扛”,而是“分层”
我自己更建议把防护拆成 4 层:
第 1 层:CDN / WAF 放前面
先把静态资源、常见 CC、HTTP Flood、恶意爬虫、登录爆破、路径扫描挡在边缘节点。
第 2 层:把源站藏起来
别让别人直接打到你服务器真实 IP。
如果用了 Cloudflare 这类代理,官方就明确建议在源站侧放行其回源 IP;同时还可以用 Authenticated Origin Pulls(mTLS)或 Tunnel 这种方式,让源站不直接暴露公网 IP。Cloudflare Tunnel 的思路就是由源站主动发起出站连接,不需要公开可路由 IP。
第 3 层:服务器本机做主机防火墙和爆破拦截
Ubuntu 的 ufw 很适合新手,官方文档和 man page 都说明了它支持连接速率限制;例如 ufw limit ssh/tcp 可用于 SSH 暴力连接限制。Fail2Ban 则会扫描日志,把多次失败登录的 IP 直接拉黑。
第 4 层:业务程序自己限流
登录、注册、搜索、API、评论这些动态接口,必须限频。Cloudflare 官方文档也明确把 rate limiting 作为保护登录接口和 API 的常见手段。
一句话总结就是:
低成本防护 = CDN/WAF + 隐藏源站 + 主机防火墙 + 登录/API 限流 + 定期更新补丁
二、先纠正 3 个新手最容易踩的坑
1)“我开了服务器防火墙,就等于高防了”
不是。
服务器本机防火墙只能在流量已经到达服务器之后再决定放还是拦。
如果你买的是 10M、20M、30M 这种小带宽,别人直接对你 IP 打大流量 UDP / SYN / ACK Flood,线路先被塞满,你本机规则再漂亮也没用。
所以:
- 主机防火墙 解决的是“端口暴露、爆破、简单扫描、低量异常连接”
- 高防 / 清洗 / 上游抗 DDoS 解决的是“把你的带宽先打满”的问题
这两个不是一个东西。
2)“套 CDN 就万事大吉”
也不是。
CDN/WAF 很适合挡 HTTP/HTTPS 网站类攻击。官方资料里也明确区分了:像 WAF 更偏应用层,Shield/网络层防护更偏 L3/L4;Cloudflare 也把 L3/4 和 L7 攻击覆盖分开说明。换句话说,纯网站场景很适合 CDN/WAF,但 TCP/UDP、游戏端口、自定义协议,不能只靠普通 CDN。
3)“网站被打,先加机器配置”
很多时候先加 CPU 和内存,效果并不大。
因为大多数攻击不是先把你 CPU 打爆,而是先把:
- 真实 IP 暴露
- 带宽打满
- 动态接口打穿
- 登录接口刷爆
- 数据库慢查询拖死
所以防护顺序应该是:
先藏 IP,再加清洗,再做限流,再谈升级配置。
三、新手最省钱的推荐架构
对普通海外网站,我建议你按这个顺序搭:
用户 → CDN / WAF → 源站(仅允许 CDN 回源)→ 主机防火墙 → Nginx/站点程序
如果预算再紧一点,可以进一步做成:
用户 → CDN / WAF → Tunnel / 回源认证 → 源站
这个结构最值钱的地方,不是“看起来高级”,而是:
- 攻击先在边缘拦一层
- 真实源站 IP 不容易暴露
- 动态接口还能继续限频
- SSH、MySQL、Redis 等管理口不会直接暴露给公网
Cloudflare 官方也建议使用 Full / Full (strict) 这类更严格的源站加密方式,避免回源链路被恶意利用。
四、不同预算怎么配?我给你 4 档实用方案
下面这些不是“唯一标准套餐”,而是我按新手常见业务整理的实战参考档位。
其中的“防护值”你可以理解为:上游高防/清洗档位建议,不是单纯服务器本机硬扛能力。
方案 A:最低成本入门型
适合业务: 企业官网、个人博客、展示站、轻量 WordPress、落地页
服务器建议:
- 2 vCPU
- 4GB RAM
- 50GB~80GB NVMe SSD
- 5M~10M 带宽
- Linux:Ubuntu 22.04 / 24.04
推荐防护:
- CDN / WAF:必上
- 主机防火墙:必开
- SSH 白名单 / 改端口 / 禁密码登录
- Fail2Ban:必装
- 独立高防:可先不上,但源站必须藏好
参考防护参数:
- SSH:
ufw limit ssh/tcp - Fail2Ban:5 次失败 / 10 分钟,封禁 1 小时
- 登录页:
5 req/s/IP,burst 20 - 评论/表单:
2 req/s/IP,burst 10
这档能做什么:
- 日常 1 个公司站、博客、单产品官网
- 搜索收录、轻广告投放
- 小规模表单提交
这档不能做什么:
- 不适合裸露真实 IP
- 不适合活动型流量站
- 不适合下载站、图片站、接口站
- 不适合被人盯上的行业站
这类方案的重点不是“抗多少 G”,而是别让攻击直接到源站。如果真实 IP 被挖出来,5M~10M 小带宽很快就会被打到不可用。
方案 B:标准业务型
适合业务: 外贸官网、跨境独立站、WooCommerce、企业 CMS、多语言站
服务器建议:
- Intel E-2334 / E-2434,或 4 vCPU 高主频云主机
- 16GB RAM
- 500GB NVMe SSD
- 20M~30M 带宽
推荐防护:
- CDN / WAF:必上
- 源站仅允许 CDN 回源
- 20G~30G 高防清洗
- 登录、下单、搜索、API 做单独限流
- 数据库和 Web 分离更稳
参考防护参数:
- 登录:
5 req/s/IP,burst 20 - 搜索:
2 req/s/IP,burst 10 - API 写入接口:
10 req/s/IP,burst 30 - 后台登录路径建议单独加国家/ASN/机器人校验
适合场景:
- WordPress + WooCommerce
- 中小外贸站
- 询盘站
- 需要一定 SEO 和广告承接的站点
推荐防护值:
- 日常建议至少 20G 防护
- 有投流、推广、同行竞争、历史被打记录的,建议直接 30G
这一档开始,CDN + 高防清洗 比单纯加机器更重要。
因为商城最怕的不是“偶尔慢一点”,而是登录、购物车、支付回调被刷崩。
方案 C:成长型高并发网站
适合业务: 中型电商、社区、下载站、图片站、内容分发站、API 平台
服务器建议:
- AMD EPYC 4584PX / 4585PX
- 16 核 32 线程
- 64GB DDR5
- 960GB NVMe SSD
- 50M~100M 带宽,或 1Gbps 端口限速方案
推荐防护:
- CDN / WAF:必上
- 50G~100G 高防清洗
- 静态与动态分离
- 图片、JS、CSS、附件全部走 CDN
- 登录、API、搜索单独限流
- Redis 缓存 + 对象缓存 + 页面缓存
参考防护参数:
- 登录:
5 req/s/IP - 查询 API:
20 req/s/IP - 写入 API:
10 req/s/IP - 搜索接口:
2~3 req/s/IP - 异常 User-Agent、空 Referer、高频同 ASN 请求可直接挑战或封禁
适合场景:
- 跨境商城
- 会员站
- 图片分发站
- 内容平台
- 接口服务平台
推荐防护值:
- 正常建议 50G
- 活动期、经常跑广告、接口暴露较多,建议 100G
这类业务有一个特点:
流量和攻击经常混在一起。
所以你不能只看“拦不拦得住”,还要看“误杀率高不高、正常用户能不能顺畅访问”。
方案 D:非纯网站型,高风险业务
适合业务: 游戏登录服、TCP/UDP 业务、自定义协议、实时接口、音视频、经常被打的行业
服务器建议:
- AMD EPYC 4585PX / 双路 Xeon Gold
- 64GB~128GB RAM
- NVMe SSD
- 100M 独享、1Gbps、甚至更高端口
- 多节点或前后端分离
推荐防护:
- 100G 以上高防 / 专线清洗
- TCP/UDP 专项防护
- 业务网关与源站分离
- 非 HTTP 协议不要只靠普通 CDN
- 必要时上 Anycast / Transit 类网络防护
Cloudflare 和 AWS 的官方文档都把网络层防护与应用层防护区分得很清楚:L3/L4 主要是网络与传输层 DDoS,L7 则是 HTTP 应用层。像这类非纯网站业务,通常要看更上游的网络型 DDoS 防护,而不是普通站点 CDN 就能兜住。
五、不同带宽和防护值,分别适合做什么业务?
10M 带宽 + CDN/WAF
适合:
- 公司官网
- 博客
- 展示站
- 小流量 WordPress
不适合:
- 图片站
- 下载站
- 广告投流页
- 高频动态接口
建议防护:
- 不裸露源站 IP
- 有预算就补 10G 清洗
- 没预算也至少上 CDN + 源站锁死
20M~30M 带宽 + 20G/30G 防护
适合:
- 外贸官网
- 中小商城
- 多语言站
- 询盘系统
- 一般会员站
这一档是多数新手最均衡的选择。
50M~100M 带宽 + 50G/100G 防护
适合:
- 活动站
- 电商平台
- 图片站
- 下载站
- SaaS
- API 服务
这档开始,带宽和清洗值都不能太低。
否则正常流量一上来,安全策略还没来得及生效,带宽先满了。
1Gbps 端口 + 100G 以上防护
适合:
- 大文件下载
- 音视频
- 高频 API
- 游戏 / TCP / UDP
- 易被盯防的业务
这类场景的核心已经不是“防火墙怎么配”,而是网络架构怎么配。
六、新手最值得做的低成本配置,我建议你直接抄
1)先把源站最小暴露面做出来
只开必要端口:
- 80 / 443:网站访问
- 22:只给自己办公室 IP 或跳板机
- 其他端口默认全关
Ubuntu 官方文档说明 ufw 适合做主机级防火墙,新手可直接用。
示例:
sudo ufw default allow outgoing
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from 你的办公IP to any port 22 proto tcp
sudo ufw limit 22/tcp
sudo ufw enable
2)装 Fail2Ban,先把爆破挡掉
Fail2Ban 的作用很直接:谁一直输错密码、一直恶意撞登录,它就从日志里抓出来封掉。官方主页就是这么定义的。
一个简单思路:
enabled = true
port = 22
maxretry = 5
findtime = 10m
bantime = 1h
如果你跑的是 WordPress、Nginx、Apache,也可以把后台登录、404 扫描、恶意 UA 一起纳入。
3)Nginx 对动态接口做限流
最该限的不是首页,而是这些地方:
/wp-login.php/xmlrpc.php/login/register/search/api//cart/checkout
示例:
limit_req_zone $binary_remote_addr zone=login_zone:10m rate=5r/s;
limit_req_zone $binary_remote_addr zone=api_zone:10m rate=10r/s;
server {
location = /login {
limit_req zone=login_zone burst=20 nodelay;
proxy_pass http://127.0.0.1:8080;
}
location /api/ {
limit_req zone=api_zone burst=30 nodelay;
proxy_pass http://127.0.0.1:8080;
}
}
这类策略的价值很大:
小流量 CC 和接口刷子,很多时候不是非要靠高防,限流就能拦掉一大半。
4)如果用了 CDN,一定别让源站裸奔
Cloudflare 官方文档提到,源站可放行其回源 IP;同时原始访客 IP 也可以通过 CF-Connecting-IP 等请求头恢复。更进一步,还可以用 Authenticated Origin Pulls 或 Tunnel 来让“不是从 Cloudflare 来的请求”根本到不了源站。
这个动作看起来不显眼,但实战里经常最关键。
因为很多站不是被 CDN 打穿,而是源站 IP 被挖出来后直接被绕过 CDN 打死。
七、套 CDN 只是一个方面,完整解决方案还要补这几项
1)系统和程序更新速度要快
Google Cloud 的报告已经很明确:现在从漏洞公开到开始被利用,时间窗口已经短到“几天”。所以你不能再抱着“下周再更”的心态。
2)WordPress 站特别注意插件
真正出问题的常常不是 WordPress 本体,而是:
- 盗版主题
- 过期插件
- 暴露 xmlrpc
- 后台地址太公开
- 没有限制登录重试
3)数据库、缓存、文件存储最好分层
别把所有东西都堆在一台机子上。
尤其是:
- 图片站
- 商城
- 会员系统
- 下载站
静态资源上 CDN,对象缓存上 Redis,数据库做优化,攻击时会比“单机一把梭”稳很多。
4)监控和备份不能省
至少把这些加上:
- CPU / 内存 / 带宽监控
- 连接数监控
- 5xx 错误监控
- 每日自动备份
- 异地备份
防护不是只为了“扛住”,还为了出了问题能快速恢复。