🧠统一管理服务器 IP、账户与访问权限的一站式解决方案
在实际运维或开发工作中,我们常常面临以下问题:
- 多台服务器 IP 分散管理,Excel 记录混乱;
- 登录账户密码分发不规范,存在泄露风险;
- 运维人员频繁远程登录操作,缺乏统一权限审计;
- 无法实时了解服务器运行状态和资源使用情况;
- 登录方式不统一,甚至需要人工提供临时口令;
因此,我设计并开发了一个「服务器 IP 地址统一管理与访问控制系统」,目标是:
- ✅ 统一管理服务器资产信息(IP、账户、密码)
- ✅ 实时查看服务器状态(CPU、内存、磁盘)
- ✅ 浏览远程目录与文件
- ✅生成临时访问凭证,实现 Web 终端登录
- ✅ 提供权限控制与日志审计功能
下面我将从功能设计、数据库建模、核心代码实现等角度,完整介绍这个系统。
🧱一、功能设计总览
整个系统拆分为以下模块:
• 服务器信息管理:增删改查 IP、端口、用户名、密码等
• 实时状态监控:通过 SSH 或 Prometheus 获取状态数据
• 文件系统浏览:通过 SFTP 获取服务器目录结构
• 临时登录凭证生成:实现 Web 端远程登录(Xterm.js)
• 权限与审计日志:记录每次访问与操作行为
📦二、数据库设计(MySQL)
创建一个用于存储服务器资产信息的核心表:
CREATE TABLE server_info (
id INT AUTO_INCREMENT PRIMARY KEY,
ip_address VARCHAR(50) NOT NULL,
port INT DEFAULT 22,
username VARCHAR(50) NOT NULL,
password_encrypted TEXT NOT NULL,
label VARCHAR(100),
os_type VARCHAR(20),
is_active BOOLEAN DEFAULT TRUE,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
加密存储密码(Java AES 示例)
public class AesEncryptor {
private static final String SECRET_KEY = "1234567890abcdef"; // 16位
private static final String IV = "abcdef1234567890";
public static String encrypt(String input) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Pa