跨境独立站宝塔面板防火墙拦截恶意IP访问
为什么跨境独立站需要拦截恶意IP
跨境独立站面向全球用户,很容易被扫描器、爬虫或恶意攻击者盯上。
大量无效请求会耗尽服务器资源,导致网站变慢甚至崩溃。
借助宝塔面板自带的防火墙功能,可以快速识别并屏蔽这些恶意IP,让真实用户访问更顺畅。
准备工作:确认宝塔面板版本与防火墙组件
登录宝塔后台,在左侧菜单点击「软件商店」,确认已安装「Nginx防火墙」或「Apache防火墙」插件(免费版一般没有,可用系统防火墙代替)。
同时检查系统防火墙状态:
- 在面板左侧点击「安全」,查看「系统防火墙」开关是否为绿色。
- 如果未开启,点击开关启动;如果使用的是CentOS系统,宝塔会自动调用firewalld。
提示:如果服务器为Ubuntu/Debian,可能使用ufw,宝塔同样支持。无需手动安装额外软件。
方法一:通过宝塔系统防火墙直接封禁IP
这种方法适用于已知的恶意IP,比如从访问日志或第三方监控中提取的地址。
操作路径:
- 进入宝塔面板「安全」-「系统防火墙」。
- 点击「添加规则」,选择「拒绝」。
- 在「来源IP」栏输入单个IP(如
103.235.46.92),或使用CIDR格式输入IP段(如103.235.46.0/24)。 - 「端口」留空表示所有端口,「协议」选任意或TCP。
- 点击「添加」,该IP立即被屏蔽。
注意:系统防火墙规则不限网站数量,一旦添加,整台服务器所有站点都无法访问该IP。如果只想对某个网站生效,请看方法二。
方法二:使用Nginx防火墙插件自动拦截(推荐)
宝塔的Nginx防火墙插件(付费版可用)能自动识别恶意IP并加入黑名单。
启用后无需手动操作,适合应对高频攻击。
- 在「软件商店」找到已安装的「Nginx防火墙」,点击「设置」。
- 切换到「全局设置」,开启「自动屏蔽攻击IP」和「开启CC防御」。
- 根据需要调整「请求频率限制」,例如“单个IP每秒请求超过30次”自动封禁60分钟。
- 在「IP黑名单」页面可查看已被拦截的IP列表,也可以手动添加例外IP。
优点:只影响特定网站,不会误拦正常业务。
缺点:需要付费授权(约几十元/月)。
方法三:手动添加IP黑名单(少量IP)
如果只有几个恶意IP,且不想用付费插件,可以直接在宝塔网站的伪静态或配置文件中加入禁止规则。
以Nginx为例:
- 进入宝塔面板「网站」,找到目标站点点击「设置」。
- 选择「配置文件」,在
server{}块内添加以下内容:
if ($remote_addr ~ "103.235.46.92|45.33.32.156") {
return 403;
}
- 点击保存并重载Nginx。注意这种方法对多IP较麻烦,适合封禁极少量地址。
避坑指南:别误拦搜索引擎和CDN
跨境独立站经常使用Cloudflare等CDN,源站看到的IP是CDN节点而非真实访客。
此时拦截源站IP会导致所有用户无法访问。
正确做法是:
- 如果使用了CDN,在宝塔面板「网站」-「设置」-「配置文件」中,添加
set_real_ip_from指令来获取真实IP,再在防火墙中配置拦截规则。 - 或者直接在CDN层面(如Cloudflare防火墙)封禁IP,效果更好。
另外,不要随意封锁整段IP段(如 /24),除非确认该段全是恶意流量,否则可能误伤正常区域用户。
验证拦截是否生效
添加规则后,用被封锁的IP访问你的网站,应该返回“拒绝连接”或403错误。
也可以:
- 在宝塔面板「安全」-「系统防火墙」,查看规则列表确认状态。
- 使用在线工具(如 https://check-host.net/)输入你的域名,选择被屏蔽的IP所在地进行检测。
- 登录服务器执行
iptables -L -n(如果使用iptables)检查规则。
如果发现封禁后依然能访问,可能是CDN缓存或规则未生效,检查防火墙开关和重启面板服务。
常见问题解答
Q:宝塔免费版可以拦截IP吗?
A:可以。通过系统防火墙(安全菜单)或网站伪静态配置即可,不需要付费插件。
Q:如何快速找出恶意IP?
A:查看网站访问日志(宝塔“网站” - “日志”),找出高频请求或异常User-Agent的IP。
Q:封禁后恶意IP换其他IP攻击怎么办?
A:结合Nginx防火墙的自动CC防御,配合规则频率限制,可有效降低新建连接攻击的影响。
如果你按照上述步骤操作后仍有异常,建议先检查CDN配置或联系服务器运营商排查流量清洗服务。