博客 / Others/ 如何使用 SolusVM API 远程管理 VPS(含重启、启动、状态查询)

如何使用 SolusVM API 远程管理 VPS(含重启、启动、状态查询)

SolusVM API 功能简介

SolusVM 的 API 功能允许您无需登录服务商提供的管理后台,即可通过编程方式远程控制您的 VPS。这为自动化运维、移动设备管理或集成到其他系统提供了便利。本文将重点介绍如何通过 API 实现 VPS 的重启、启动和状态查询。

准备工作:获取 API 凭证

要使用 SolusVM API,您首先需要从管理后台获取必要的认证信息。

  1. 登录您的 VPS 服务商提供的 SolusVM 管理后台。
  2. 在控制面板中找到并点击 “API” 选项卡。
  3. 记录下 API KeyAPI 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>

部署与使用步骤

  1. 修改配置: 使用文本编辑器打开脚本,找到代码开头的 $api_key$api_hash$solusvm_url 变量,将其值替换为您在准备步骤中获取的真实信息。
  2. 上传文件: 将该 PHP 文件上传至任何支持 PHP 的虚拟主机或服务器的 Web 可访问目录(例如 public_htmlwwwroot)。
  3. 访问管理: 通过浏览器(电脑、手机或平板均可)访问该文件的 URL(例如 https://yourdomain.com/vps_manager.php)。
  4. 执行操作: 在打开的网页中,点击相应链接即可查询状态或执行启动、重启等操作。对于关键操作,脚本会要求二次确认。

安全建议与注意事项

  • 访问控制: 建议将该脚本放置在受保护的目录,或通过 .htaccess 设置基础认证,避免被未授权访问。
  • HTTPS: 确保您的 SolusVM 主控地址支持 HTTPS,并在脚本中使用 https:// 协议,以保证 API 密钥在传输过程中的安全。
  • 错误处理: 示例脚本包含了基本的错误处理。在生产环境中,您可能需要更完善的日志记录和错误提示。
  • API 限制: 请注意 SolusVM 服务商可能对 API 调用频率有限制,请勿频繁调用。
  • 脚本更新: 本文提供的脚本为通用示例。不同 SolusVM 版本或服务商定制版本可能在 API 响应格式上略有差异,请根据实际情况调整解析逻辑。

通过以上步骤,您就可以方便地通过一个简单的网页界面远程管理您的 VPS,无需每次都登录复杂的后台系统。

  1. 很牛掰呀,讲得也详细

  2. avatar
    落絮飞雁

    学习了,感谢博主~

  3. avatar
    站长工具

    很详细 学习了 谢谢

  4. avatar
    taoquan

    访问放这个文件的路径,会提示404(url参数是在自己的文件夹路径后面,不是设定的solusvm面板)请问这是代码问题吗?求解答

    1. 你服务器url重写规则的问题

回复 落絮飞雁 取消回复

您的邮箱不会公开。必填项已用 * 标注。