easyshell
| docs | ||
| public | ||
| scripts | ||
| server | ||
| src | ||
| .gitignore | ||
| capacitor.config.ts | ||
| main.js | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| preload.js | ||
| README.md | ||
| tailwind.config.js | ||
EasyShell
🚀 赛博朋克风格的跨平台远程 Shell 管理终端
支持 Windows · macOS · Linux · Android 多平台运行
📸 界面预览
🏠 欢迎界面
精心设计的赛博朋克风格欢迎界面,霓虹光效与深色主题完美融合。
➕ 添加主机
便捷的主机配置面板,支持密码和 SSH 私钥两种认证方式,可自定义分组和标识颜色。
💻 SSH 终端
功能完整的 SSH 终端,基于 xterm.js 打造,支持完整的终端模拟体验。
📁 SFTP 文件管理器
强大的 SFTP 文件管理功能,支持文件浏览、上传、下载、重命名、删除等操作。
📊 主机信息面板
实时监控远程主机状态,包括 CPU、内存、磁盘使用情况和系统运行时间。
⌨️ 快捷命令面板
内置常用命令快捷面板,按 Ctrl + K 快速调出,支持 Docker、文件操作等常用命令。
🗂️ 主机管理
集中管理所有 SSH 主机,支持分组、搜索、批量操作。
☁️ 云端同步
支持 MySQL 数据库云端同步,实现多设备主机配置共享。
✨ 功能特点
| 功能 | 描述 |
|---|---|
| 🎨 赛博朋克 UI | 霓虹色调、玻璃拟态、动态光效,打造独特视觉体验 |
| 🖥️ SSH 终端 | 完整的 xterm.js 终端模拟,支持各种终端操作 |
| 📁 SFTP 文件管理 | 远程文件浏览、上传、下载、权限修改 |
| 📊 主机监控 | 实时 CPU、内存、磁盘使用率监控 |
| ⌨️ 快捷命令 | 内置常用命令,Ctrl+K 快速调出 |
| ☁️ 云端同步 | MySQL 数据库同步,多设备配置共享 |
| 🏷️ 分组管理 | 主机分组、颜色标识、便捷管理 |
| 📤 导入导出 | 支持主机配置的 JSON 导入导出,方便备份迁移 |
| 📱 跨平台 | 桌面端和移动端统一体验 |
🏗️ 项目结构
easyshell/
├── src/ # React 前端源码
│ ├── components/ # UI 组件
│ │ ├── Terminal.js # SSH 终端组件
│ │ ├── SFTPBrowser.js # SFTP 文件管理器
│ │ ├── HostInfoPanel.js # 主机信息面板
│ │ ├── HostManager.js # 主机管理器
│ │ ├── Sidebar.js # 侧边栏
│ │ └── TitleBar.js # 标题栏
│ ├── services/ # 服务层
│ │ ├── api.js # 跨平台 API 适配层
│ │ ├── database.js # 数据库服务 (SQLite/MySQL)
│ │ ├── ssh.js # SSH 服务
│ │ └── sftp.js # SFTP 服务
│ └── App.js # 主应用组件
├── server/ # 后端服务器 (移动端需要)
│ ├── index.js # Express + Socket.IO 服务
│ └── package.json
├── android/ # Android 原生项目 (Capacitor)
├── public/ # 静态资源
│ ├── icon.svg # 应用图标 (SVG)
│ ├── icon.png # 应用图标 (PNG)
│ └── icon.ico # 应用图标 (Windows)
├── docs/ # 文档和截图
├── main.js # Electron 主进程
├── preload.js # Electron 预加载脚本
├── capacitor.config.ts # Capacitor 配置
└── tailwind.config.js # Tailwind CSS 配置
🚀 快速开始
环境要求
- Node.js >= 16
- npm >= 8
- (可选) Android Studio (构建 Android 版本)
安装依赖
# 克隆项目
git clone https://github.com/ethanfly/easyshell.git
cd easyshell
# 安装前端依赖
npm install
# 安装服务器依赖 (如需移动端)
cd server && npm install && cd ..
桌面端开发
# 启动开发模式 (React + Electron)
npm start
构建发布版
# 构建 Windows 安装包
npm run dist
# 生成的安装包位于 dist/ 目录
📱 移动端部署
1. 启动后端服务器
移动端需要通过后端服务器代理 SSH 连接:
# 启动服务器
npm run server
# 或开发模式 (自动重启)
npm run server:dev
服务器将在 http://0.0.0.0:3001 启动。
2. 构建 Android 应用
# 首次使用需要添加 Android 平台
npm run cap:add:android
# 构建并打开 Android Studio
npm run android
# 或直接运行到设备
npm run android:run
3. 手机配置
- 确保手机和电脑在同一局域网
- 打开 EasyShell 应用
- 进入设置配置服务器地址
- 输入电脑 IP,如
http://192.168.1.100:3001 - 测试连接成功后即可使用
⌨️ 快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + K |
打开命令面板 |
Ctrl + F |
SFTP 搜索文件 |
Enter |
执行选中命令 |
Esc |
关闭面板/弹窗 |
📤 导入导出
导出主机配置
- 打开「主机管理」
- 点击右上角「导出」按钮
- 选择保存位置,生成 JSON 文件
导入主机配置
- 打开「主机管理」
- 点击「导入」按钮
- 选择导入模式:
- 合并导入:保留现有主机,更新重复的
- 替换导入:清空现有主机,完全替换
- 选择 JSON 配置文件
配置文件格式
{
"version": "1.0",
"appName": "EasyShell",
"hosts": [
{
"name": "生产服务器",
"host": "192.168.1.100",
"port": 22,
"username": "root",
"password": "******",
"groupName": "生产环境",
"color": "#3fb950"
}
]
}
🔧 配置说明
数据存储
- 桌面端: 使用
electron-store+ SQLite 本地存储 - 移动端: 使用
localStorage存储配置
云端同步
支持 MySQL 数据库同步,配置步骤:
- 点击设置按钮
- 切换到「数据库同步」标签
- 填写 MySQL 连接信息
- 点击「连接数据库」
数据库不存在时会自动创建。
🛡️ 安全说明
- SSH 密码和私钥加密存储在本地
- 移动端通过 WebSocket 与后端服务器通信
- 建议在受信任的网络环境中使用
- 生产环境建议配置 HTTPS/WSS
🤝 技术栈
|
前端 |
桌面端 |
移动端 |
后端 |
|
React 18 |
Electron 28 |
Capacitor 5 |
Express |
📦 脚本命令
npm start # 启动开发模式
npm run build # 构建 React 应用
npm run dist # 打包桌面应用
npm run icons # 生成应用图标
npm run server # 启动后端服务器
npm run android # 构建并打开 Android Studio
📄 许可证
Made with ❤️ and ⚡ by EasyShell Team
© 2024 EasyShell - Cyberpunk Edition







