我的知识记录

宝塔面板API接口登录方法_自动化运维_密钥生成与调用示例

宝塔面板提供API接口,允许通过程序调用面板功能。开启API在面板设置里找到"API接口",点击开启后生成API密钥(secret)。同时需要在"IP白名单"里填入调用API的服务器IP,不在白名单的IP调用会被拒绝。API密钥相当于密码,泄露后别人能完全控制面板,务必妥善保管。

API调用格式:请求地址是`面板地址/API路径`,POST方式提交参数。所有请求必须带三个参数:`request_token`(请求令牌,由API密钥和时间戳生成)、`time`(当前时间戳,和服务器时间差不超过300秒)、以及接口需要的具体参数。`request_token`的生成算法:`md5(时间戳 + md5(API密钥))`。Python示例:`token = hashlib.md5((str(timestamp)+hashlib.md5(secret.encode()).hexdigest()).encode()).hexdigest()`。

获取网站列表的API调用示例:请求`/data?action=getData&table=sites`,POST参数传`time`和`request_token`。返回JSON格式,包含站点ID、域名、根目录、状态等信息。可以写脚本定时拉取站点列表,监控站点状态,发现异常自动告警。这比人工登录面板查看效率高,适合服务器数量多的场景。

创建网站的API:`/site?action=CreateSite`,POST参数需要传`webname`(域名)、`path`(根目录)、`type_id`(PHP版本ID)、`ftp`(是否创建FTP)、`sql`(是否创建数据库)等。调用成功返回站点ID和FTP、数据库信息。批量建站场景用API效率很高,一次脚本循环就能建几十个站,比手动点快得多。

API调用的频率限制:默认每个IP每分钟最多60次请求,超过会被临时封禁。批量操作时控制请求间隔,每次间隔1秒以上。如果触发封禁,等待几分钟自动解除,或者SSH清除限制文件。重要操作(删除站点、清空数据库)建议加二次确认逻辑,脚本里判断返回结果成功后再继续,避免误操作。

API密钥定期更换。面板设置里找到API接口,点"重置密钥"生成新的,旧密钥立即失效。更换后同步更新所有调用脚本里的密钥,否则脚本会报401未授权。建议每90天换一次,和面板密码更换周期一致。密钥不要硬编码在脚本里,用环境变量或配置文件管理,脚本上传到Git时排除配置文件。

API日志在面板的"监控"→"API日志"里查看。每次API调用的时间、IP、接口、参数都有记录。发现陌生IP调用API,说明密钥可能泄露,立刻重置密钥并查日志看对方做了什么操作。API日志保留30天,定期审计能发现异常调用。企业版支持API调用告警,异常调用实时通知,免费版需要自己写脚本监控日志。

宝塔面板API接口登录方法_自动化运维_密钥生成与调用示例

标签:

更新时间:2026-08-26 17:22:31

上一篇:如何替换公司网站的图片背景:CSS背景、整页背景、区块背景与响应式

下一篇:如何解决Nginx中的404 Not Found错误?伪静态、路径、权限全排查