宝塔面板限制网站访问来源需通过系统防火墙、Nginx防火墙、IP段黑名单或Nginx配置四种方式实现:一、系统防火墙地区规则全局拦截;二、Nginx免费防火墙“禁止海外访问”开关站点级过滤;三、手动导入IP段黑名单精准屏蔽;四、Nginx配置geo指令+if判断二次校验。

如果您希望在宝塔面板中限制网站访问来源,仅允许或禁止特定国家或地区的IP访问,则需通过系统防火墙或Nginx防火墙的地区规则功能实现。以下是多种可操作的具体方法:
一、使用宝塔系统防火墙的地区规则
该方法直接调用宝塔内置的系统防火墙模块,基于IP地理数据库匹配访问者所属国家/地区,并执行拦截动作。规则生效层级为服务器系统级,对所有服务端口(含面板自身)均有效。
1、登录宝塔面板,点击左侧菜单栏的「安全」选项。
2、在安全页面中,点击「系统防火墙」进入管理界面。
3、切换至「地区规则」选项卡。
4、点击「导入规则」按钮,将预定义的国家JSON规则文件上传并导入;或手动点击「添加规则」,在「国家/地区」下拉框中选择目标国家(如美国、俄罗斯、巴西等),设置类型为「拒绝」。
5、勾选「更新IP池」选项,确保IP地理库保持最新,避免因数据陈旧导致误放或误拦。
6、点击「保存」后,防火墙将立即加载新规则并开始拦截匹配地区的连接请求。
二、启用Nginx免费防火墙的“禁止海外访问”开关
该方法依托Nginx应用层防火墙,专用于HTTP/HTTPS流量过滤,不干预其他端口通信,适合仅需保护网站前端的场景。其规则作用于站点级,需分别开启全局与站点两级开关才能生效。
1、进入宝塔面板「软件商店」,搜索「Nginx免费防火墙」,点击「安装」完成插件部署。
2、安装完成后,点击已安装的防火墙插件图标,进入设置面板。
3、在「全局设置」中,找到「禁止海外访问」选项,将其状态切换为「开启」。
4、返回宝塔主界面,点击左侧「网站」,选择需防护的目标站点,点击右侧「设置」按钮。
5、在站点设置窗口中,点击左侧导航栏的「防火墙」,确保该站点的「禁止海外访问」开关也处于「开启」状态。
6、确认两项开关均为开启后,该站点将拒绝来自中国大陆以外所有IP地址的HTTP请求。
三、手动配置IP段黑名单(精准控制)
当需要屏蔽特定国家但又不依赖自动IP库时,可直接导入或录入该国主流IP段列表。此方式绕过地理库匹配机制,稳定性高,适用于已知攻击源集中区域。
1、收集目标国家的IPv4地址段,例如通过IPdeny.com等公开资源获取格式为“1.0.0.0/24”的CIDR列表。
2、在宝塔「安全」→「系统防火墙」→「IP规则」选项卡中,点击「添加规则」。
3、在「IP或IP段」输入框中粘贴单个CIDR网段(如118.69.0.0/16),协议选择「全部」,动作选择「拒绝」。
4、重复步骤3,逐条添加多个IP段;或点击「批量添加」,将全部网段按行粘贴入文本框。
5、每添加完毕后点击「保存」,规则即时生效,无需重启服务。
四、结合网站级访问限制做双重校验
该方法作为补充手段,在Nginx配置层面增加rewrite指令或if判断,利用$geoip_country_code变量进行二次识别,增强对抗伪造X-Forwarded-For头的行为。
1、进入宝塔面板「网站」→ 选择目标站点 → 「设置」→ 「配置文件」。
2、在server块内、location / { } 上方插入以下代码段:
geo $geoip_country_code { default ""; include geoip-country-code.conf; }
3、在location / { } 块内添加判断逻辑:
if ($geoip_country_code !~ ^(CN|HK|MO|TW)$) { return 403; }
4、确认语法无误后,点击「保存」,再点击右上角「重载配置」使Nginx重新加载规则。
5、该配置仅对经由本Nginx实例处理的HTTP请求生效,不适用于反向代理未透传地理信息的场景。










