宝塔面板API 使用指南

最近在公司实习,很久没有更新宝塔的插件之类的东西了。今天看到开发者群里面有人说宝塔的API 不会用,这里讲一下怎么调用宝塔面板的API

首先,宝塔面板的API 需要在面板中开启 API 接口功能,并设置API接口的白名单。注意,宝塔的API接口具有控制宝塔系统的全局权限,因此,请妥善保存您的API 并设置面板的白名单地址

有的同学会问了,如果我的中控服务器(调用API 接口的服务器)IP地址经常变化,那要怎么办呢,我不可能总是去修改面板的白名单啊。

在这边给大家一个方案,我们可以使用NGINX 的反向代理功能,反代宝塔面板,从而实现API调用。注意,强烈建议您在使用反代时,启用网址的密码访问的功能。虽然NGINX 的密码访问是基于 HEADER 中的 Auth  字段进行认证,但是能够很大程度上提高程序的安全性。下面给大家逐步演示,如何使用宝塔面板的API

 

1.cmd 查看,当前开发设备的IP地址为 192.168.220.28 , 宝塔面板的地址为 192.168.220.220

 

2.配置宝塔面板,启用API 功能,并放行宝塔面板本地服务器调用

3.保存好配置后,我们来编写一个最简单的PHP 文件,PHP 请求面板的 system?action=GetNetWork 接口,获取当前面板的运行的状态信息

运行脚本 , 输出如图所示的响应

这是因为我们的设备不在宝塔的白名单中,那么我们先手动将这个IP加入面板的白名单里面

重新执行脚本,得到正常的响应

接下来演示如何使用NGINX 反代 ,首先删除刚刚的IP白名单,然后面板需要安装NGINX ,这里演示时使用NGINX 1.18 ,在网站中添加一个域名为 192.168.220.210 的 网站,反向代理到本地的宝塔面板

然后我们修改下PHP 的代码 , 请求测试服务器的80端口

 

可以看到这时面板是正常的响应我们的请求的,那么显然这样是不安全的,我们给这个网站加上一个 Auth 认证

 

修改好在试试

 

NGINX 返回了 401 未授权错误 , 我们直接用浏览器访问这个地址 ,输入用户名和密码

 

观察页面请求发现,使用AUTH 后的页面在header中多了一个

Authorization:
Basic YWRtaW46cGFzc3dvcmQ=
使用base64 解码
这是我们用户名和密码
所以修改下PHP 代码 , 在请求时加入请求头
在执行一次请求试试
发现返回请求成功了 , NICE
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注