SolusVM API 功能简介
SolusVM 的 API 功能允许您无需登录服务商提供的管理后台,即可通过编程方式远程控制您的 VPS。这为自动化运维、移动设备管理或集成到其他系统提供了便利。本文将重点介绍如何通过 API 实现 VPS 的重启、启动和状态查询。
准备工作:获取 API 凭证
要使用 SolusVM API,您首先需要从管理后台获取必要的认证信息。
- 登录您的 VPS 服务商提供的 SolusVM 管理后台。
- 在控制面板中找到并点击 “API” 选项卡。
- 记录下
API Key和API Hash的值。
重要提示: 请妥善保管这两项凭证,切勿泄露给他人。它们相当于访问您 VPS 的“钥匙”。您可以点击 “Generate” 按钮随时重新生成新的 Key 和 Hash。
创建 API 管理脚本
您可以通过一个简单的 PHP 脚本来调用 SolusVM API。以下是一个功能完善的示例脚本,它包含了状态查询、启动和重启功能,并提供了基本的安全确认机制。
脚本代码与部署
创建一个新的 PHP 文件(例如 vps_manager.php),将以下代码复制进去。
<?php
// 错误报告设置,便于调试
ini_set('display_errors', 1);
error_reporting(E_ALL ^ E_NOTICE);
// --- 重要:请修改以下两项为您的实际信息 ---
$api_key = "YOUR_API_KEY_HERE"; // 替换为您的 API Key
$api_hash = "YOUR_API_HASH_HERE"; // 替换为您的 API Hash
$solusvm_url = "https://your-solusvm-master.com"; // 替换为您的 SolusVM 主控地址
// ------------------------------------------
// 处理用户请求
if (!empty($_GET['action'])) {
$action = $_GET['action'];
$confirmed = $_GET['confirmed'] ?? false;
// 定义允许的操作
$allowed_actions = ['status', 'boot', 'reboot', 'shutdown'];
if (!in_array($action, $allowed_actions)) {
echo "<p>错误:不支持的操作!</p>";
} elseif (in_array($action, ['boot', 'reboot', 'shutdown']) && !$confirmed) {
// 对关键操作进行二次确认
$action_map = ['boot' => '启动', 'reboot' => '重启', 'shutdown' => '关闭'];
echo '<p>您确定要' . $action_map[$action] . 'VPS吗?';
echo '<a href="?action=' . $action . '&confirmed=1">确定</a> | ';
echo '<a href="./">取消</a></p>';
} else {
// 构建 API 请求 URL
$api_endpoint = $solusvm_url . "/api/client/command.php";
$request_url = $api_endpoint . "?key=" . urlencode($api_key) . "&hash=" . urlencode($api_hash) . "&action=" . $action;
// 发送请求并获取响应
$response = @file_get_contents($request_url);
if ($response === FALSE) {
echo "<p>错误:无法连接到 SolusVM API 服务器。请检查网络和地址。</p>";
} else {
// 解析 XML 响应
$xml = simplexml_load_string($response);
if ($xml) {
$status = (string)$xml->status;
$statusmsg = (string)$xml->statusmsg;
if ($status == "error") {
echo "<p>API 返回错误:" . htmlspecialchars($statusmsg) . "</p>";
} elseif ($status == "success") {
// 根据操作类型和返回信息给出友好提示
$messages = [
'online' => 'VPS 正在运行!',
'offline' => 'VPS 已关机。',
'rebooted' => 'VPS 重启成功!',
'shutdown' => 'VPS 已关闭。',
'booted' => 'VPS 启动成功!'
];
if (isset($messages[$statusmsg])) {
echo "<p>" . $messages[$statusmsg] . "</p>";
} else {
echo "<p>操作成功。返回信息:" . htmlspecialchars($statusmsg) . "</p>";
}
}
} else {
echo "<p>错误:无法解析 API 响应。</p>";
}
}
echo '<hr />';
}
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VPS 远程管理</title>
<style>
body { font-family: sans-serif; margin: 2em; }
ul { list-style: none; padding: 0; }
li { margin: 1em 0; }
a { text-decoration: none; padding: 0.5em 1em; background: #0073aa; color: white; border-radius: 4px; }
a:hover { background: #005a87; }
.warning { color: #d63638; font-weight: bold; }
</style>
</head>
<body>
<h1>VPS 远程管理面板</h1>
<p class="warning">请注意:以下操作将直接影响您的服务器。</p>
<ul>
<li><a href="?action=status">📊 查看 VPS 状态</a></li>
<li><a href="?action=boot">🚀 启动 VPS</a></li>
<li><a href="?action=reboot">🔄 重启 VPS</a></li>
<li><a href="?action=shutdown">⏹️ 关闭 VPS</a></li>
</ul>
<p><small>提示:将脚本中的 API Key、Hash 和 SolusVM 地址替换为您自己的信息。</small></p>
</body>
</html>
部署与使用步骤
- 修改配置: 使用文本编辑器打开脚本,找到代码开头的
$api_key、$api_hash和$solusvm_url变量,将其值替换为您在准备步骤中获取的真实信息。 - 上传文件: 将该 PHP 文件上传至任何支持 PHP 的虚拟主机或服务器的 Web 可访问目录(例如
public_html或wwwroot)。 - 访问管理: 通过浏览器(电脑、手机或平板均可)访问该文件的 URL(例如
https://yourdomain.com/vps_manager.php)。 - 执行操作: 在打开的网页中,点击相应链接即可查询状态或执行启动、重启等操作。对于关键操作,脚本会要求二次确认。
安全建议与注意事项
- 访问控制: 建议将该脚本放置在受保护的目录,或通过
.htaccess设置基础认证,避免被未授权访问。 - HTTPS: 确保您的 SolusVM 主控地址支持 HTTPS,并在脚本中使用
https://协议,以保证 API 密钥在传输过程中的安全。 - 错误处理: 示例脚本包含了基本的错误处理。在生产环境中,您可能需要更完善的日志记录和错误提示。
- API 限制: 请注意 SolusVM 服务商可能对 API 调用频率有限制,请勿频繁调用。
- 脚本更新: 本文提供的脚本为通用示例。不同 SolusVM 版本或服务商定制版本可能在 API 响应格式上略有差异,请根据实际情况调整解析逻辑。
通过以上步骤,您就可以方便地通过一个简单的网页界面远程管理您的 VPS,无需每次都登录复杂的后台系统。
很牛掰呀,讲得也详细
学习了,感谢博主~
很详细 学习了 谢谢
访问放这个文件的路径,会提示404(url参数是在自己的文件夹路径后面,不是设定的solusvm面板)请问这是代码问题吗?求解答
你服务器url重写规则的问题