宝塔PHP8.4如何限制IP访问_给PHP8.4站点设IP白名单操作【教程】

9次阅读

需在Web服务器层配置IP白名单:nginx环境修改配置文件添加allow/deny指令;apache环境通过.htaccess使用require ip;php层可在index.php顶部添加IP校验逻辑。

宝塔PHP8.4如何限制IP访问_给PHP8.4站点设IP白名单操作【教程】

如果您正在使用宝塔面板部署的PHP 8.4站点,希望仅允许特定IP地址访问该站点,防止未授权用户请求或恶意扫描,则需在Web服务器层配置IP白名单规则。以下是针对Nginx和Apache两种主流环境的具体操作步骤:

一、通过Nginx配置IP白名单(适用于宝塔默认Nginx环境)

此方法直接修改站点对应的Nginx配置文件,在server块中添加allow/deny指令,由Nginx在请求进入PHP前完成IP过滤,性能高效且无需PHP参与判断。

1、登录宝塔面板,进入【网站】页面,找到目标PHP 8.4站点,点击右侧【设置】按钮。

2、在弹出窗口中切换至【配置文件】选项卡,定位到location ~ .php$区块上方空白处(或server区块内任意位置,但须在location之外)。

立即学习PHP免费学习笔记(深入)”;

3、插入以下配置代码(示例仅允许192.168.1.100和203.203.203.0/24网段访问,其余全部拒绝):

allow 192.168.1.100;

allow 203.203.203.0/24;

deny all;

4、点击右上角【保存】按钮,随后点击【重载配置】使规则生效。

二、通过.htaccess文件配置IP白名单(仅限Apache环境)

此方法适用于宝塔中已切换为Apache作为Web服务器的站点,利用Apache内置的mod_authz_host模块实现访问控制,配置灵活且无需重启服务。

1、在站点根目录(如/www/wwwroot/your-site.com/)下找到或新建名为.htaccess的文件。

2、用文本编辑器打开该文件,确保首行包含启用重写引擎的指令(若不存在则添加):

RewriteEngine On

3、在文件末尾添加如下白名单规则(示例允许10.0.0.5和172.16.0.0/16):

Require ip 10.0.0.5

Require ip 172.16.0.0/16

4、保存文件,返回宝塔面板【网站】页,对该站点点击【重载Apache】。

三、通过PHP代码层实现IP白名单(兼容Nginx与Apache)

此方法在PHP 8.4应用入口文件(如index.php)顶部注入IP校验逻辑,适用于需动态判断或结合数据库查询白名单的场景,但会略微增加PHP执行开销。

1、打开站点主入口PHP文件(通常为/www/wwwroot/your-site.com/index.php)。

2、在

$allowed_ips = [‘112.80.123.45’, ‘221.204.67.0/24’];

$client_ip = $_SERVER[‘REMOTE_ADDR’] ?? ”;

function ip_in_range($ip, $range) { if (strpos($range, ‘/’) !== false) { list($subnet, $bits) = explode(‘/’, $range); $ip_long = ip2long($ip); $subnet_long = ip2long($subnet); $mask = -1

if (!in_array($client_ip, $allowed_ips) && !array_reduce($allowed_ips, function($carry, $r) use ($client_ip) { return $carry || ip_in_range($client_ip, $r); }, false)) { http_response_code(403); exit(‘Forbidden’); }

四、通过宝塔防火墙插件配置IP白名单

若已安装并启用宝塔官方【防火墙】插件(专业版功能),可借助图形化界面快速添加IP白名单规则,避免手动编辑配置文件,降低误操作风险。

1、进入宝塔面板左侧菜单【安全】→【防火墙】,确认插件状态为“已启用”。

2、在【IP黑名单/白名单】区域,点击【添加白名单】按钮。

3、在弹出框中输入单个IP地址(如198.51.100.25)或CIDR格式网段(如192.0.2.0/24),填写备注后点击【确定】。

4、规则自动生效,无需重启Web服务,可在【当前规则】列表中查看状态。

text=ZqhQzanResources