Skip to content

HecreReed/PowerConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PowerConnect

PowerConnect License Node Platform

远程终端 + 文件管理 + 内网穿透一体化解决方案

功能特性快速开始文档截图展示技术栈


📖 项目简介

PowerConnect 是一个功能完整的远程控制解决方案,让你能够:

  • 🖥️ 远程终端:通过浏览器访问家里电脑的终端,支持多终端会话
  • 📁 文件管理:浏览、下载文件,支持手机浏览器
  • 🌐 内网穿透:一键启动 frp 或 SSH 隧道,无需公网 IP 也能访问
  • 📱 移动友好:完美适配手机和平板,随时随地访问

使用场景:

  • 在公司访问家里电脑,执行命令、查看日志
  • 手机上管理服务器,重启服务、下载文件
  • 远程帮助朋友调试电脑
  • 演示项目给客户,无需部署到服务器

✨ 功能特性

🖥️ 远程终端

  • 多终端会话:同时开启多个终端,Tab 切换
  • 真实 Shell:基于 node-pty,完整的 PTY 支持
  • 实时通信:WebSocket 零延迟传输
  • 中文支持:完美支持中文输入和显示
  • 自动清理:30 分钟无活动自动关闭会话

📁 文件管理

  • 目录浏览:查看文件列表、文件大小、修改时间
  • 文件下载:一键下载文件到本地
  • 路径安全:限制访问范围,防止路径穿越
  • 移动适配:手机上也能方便操作
  • 可选功能:支持创建、删除、重命名文件

🌐 内网穿透

  • 双方案支持:frp(高性能)+ SSH 隧道(极简)
  • 一键启动remote-tunnel up 即可
  • 自动安装:服务器端和客户端自动配置
  • 智能管理:状态监控、日志记录、问题诊断
  • 多端口映射:同时映射多个服务

🔐 安全特性

  • JWT 认证:所有接口必须登录
  • Token 加密:使用强随机密钥
  • 路径限制:文件操作限制在根目录内
  • HTTPS 支持:生产环境推荐启用
  • 会话超时:自动清理过期连接

📱 移动端

  • 响应式设计:完美适配各种屏幕
  • 触摸优化:支持触摸操作
  • 系统分享:下载文件可发送到微信等 App
  • WebView 友好:可轻松打包成原生 App

🚀 快速开始

准备工作

  • Node.js 18+
  • 一台有公网 IP 的云服务器(可选,用于内网穿透)

第一步:安装 PowerConnect

# 克隆项目
git clone https://github.com/HecreReed/PowerConnect.git
cd PowerConnect

# 一键安装
./setup.sh

第二步:配置和启动

# 配置环境变量
cd backend
cp .env.example .env
nano .env  # 修改用户名、密码等

# 启动服务
npm run dev

# 或使用 PM2(生产环境)
npm run build
pm2 start ecosystem.config.js

第三步:访问

打开浏览器:http://localhost:3000

就这么简单! 🎉


🌐 配置内网穿透(可选)

如果要从外网访问家里电脑,需要配置内网穿透。

方案 1:frp(推荐,高性能)

服务器端(有公网 IP 的服务器):

cd remote-tunnel/scripts/frp
chmod +x setup-server.sh
sudo ./setup-server.sh

# 记下输出的 Token!

客户端(家里电脑):

cd remote-tunnel
./install.sh

# 编辑配置,填入服务器返回的 Token
nano config/frp/frpc.ini

# 启动隧道
remote-tunnel up

外网访问: http://你的服务器IP:8443

方案 2:SSH 隧道(极简,适合临时使用)

# 只需一条命令
remote-tunnel up --ssh

详细配置见 remote-tunnel/docs/QUICKSTART.md


📚 文档

PowerConnect 文档

Remote Tunnel 文档


🎯 使用场景

场景 1:在公司访问家里电脑

# 家里电脑
remote-tunnel up

# 公司电脑/手机浏览器
# 打开 http://你的服务器:8443
# 登录后执行命令、查看文件

场景 2:手机管理服务器

# 服务器部署 PowerConnect
# 手机浏览器访问
# 随时随地重启服务、查看日志、下载文件

场景 3:远程帮助朋友

# 朋友电脑上启动 PowerConnect + tunnel
# 你通过浏览器访问
# 帮助调试、解决问题

场景 4:演示项目

# 本地开发环境启动 PowerConnect
# 启动隧道映射到公网
# 给客户演示,无需部署到服务器

🖼️ 截图展示

登录页面

简洁的登录界面,支持 PC 和移动端:

┌─────────────────────────────────┐
│                                 │
│        PowerConnect             │
│   Remote Terminal & File Mgr   │
│                                 │
│  ┌───────────────────────────┐ │
│  │ Username: [___________]   │ │
│  │ Password: [___________]   │ │
│  │      [  Login  ]          │ │
│  └───────────────────────────┘ │
│                                 │
│    🔒 Secure connection         │
└─────────────────────────────────┘

多终端界面

Tab 式多终端,随意切换:

┌────────────────────────────────────────────────┐
│ PowerConnect             [Files] [Logout]      │
├────────────────────────────────────────────────┤
│ [Terminal 1] [Terminal 2] [Terminal 3] [ + ]  │
├────────────────────────────────────────────────┤
│                                                │
│ user@home:~$ ls                                │
│ Documents  Downloads  Projects                │
│ user@home:~$ cd Projects/PowerConnect          │
│ user@home:~/Projects/PowerConnect$ npm start  │
│ > powerconnect-backend@1.0.0 start            │
│ > node dist/index.js                          │
│                                                │
│ 🚀 Starting PowerConnect Backend...           │
│ ✅ Server is running!                         │
│                                                │
└────────────────────────────────────────────────┘

文件浏览器

直观的文件管理界面:

┌────────────────────────────────────────────────┐
│ File Explorer             [Terminal] [Logout]  │
├────────────────────────────────────────────────┤
│ 🏠 Home / Documents / Projects                 │
│ [⬆️ Up] [🔄 Refresh]                           │
├────────────────────────────────────────────────┤
│ Name              Size        Modified         │
├────────────────────────────────────────────────┤
│ 📁 backend       -           2024-01-15        │
│ 📁 frontend      -           2024-01-15        │
│ 📁 remote-tunnel -           2024-01-15        │
│ 📄 README.md     5.2 KB      2024-01-15  [⬇️]  │
│ 📄 package.json  1.1 KB      2024-01-15  [⬇️]  │
└────────────────────────────────────────────────┘

🛠️ 技术栈

后端

  • Node.js + TypeScript - 类型安全的 JavaScript
  • Fastify - 高性能 Web 框架
  • node-pty - 真实的 PTY 终端模拟
  • WebSocket (ws) - 实时双向通信
  • JWT (@fastify/jwt) - 身份认证

前端

  • React + TypeScript - 组件化开发
  • Vite - 极速构建工具
  • xterm.js - 专业的终端模拟器
  • React Router - 路由管理

内网穿透

  • frp (0.52.3) - 高性能内网穿透
  • SSH - 反向隧道方案
  • Bash - 自动化脚本

📦 项目结构

PowerConnect/
├── backend/                    # 后端服务
│   ├── src/
│   │   ├── config/            # 配置管理
│   │   ├── middleware/        # 中间件(JWT 认证)
│   │   ├── routes/            # API 路由
│   │   ├── services/          # 业务逻辑
│   │   └── types/             # 类型定义
│   └── package.json
│
├── frontend/                   # 前端应用
│   ├── src/
│   │   ├── components/        # React 组件
│   │   ├── pages/             # 页面组件
│   │   ├── services/          # API 服务
│   │   └── styles/            # 样式文件
│   └── package.json
│
├── remote-tunnel/              # 内网穿透工具
│   ├── bin/                   # 命令行工具
│   ├── config/                # 配置文件
│   ├── scripts/               # 自动化脚本
│   └── docs/                  # 详细文档
│
├── README.md                   # 项目说明
├── DEPLOYMENT.md              # 部署指南
├── QUICKSTART.md              # 快速参考
└── setup.sh                   # 一键安装脚本

🔧 开发

本地开发

# 后端
cd backend
npm install
npm run dev

# 前端(另一个终端)
cd frontend
npm install
npm run dev

构建生产版本

# 前端
cd frontend
npm run build

# 后端
cd backend
npm run build

# 启动
npm start
# 或使用 PM2
pm2 start ecosystem.config.js

测试

# 测试本地服务
curl http://localhost:3000/health

# 测试 API
curl -X POST http://localhost:3000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin"}'

🤝 贡献

欢迎提交 Issue 和 Pull Request!

开发规范

  1. 使用 TypeScript
  2. 遵循 ESLint 规则
  3. 提交前测试功能
  4. 更新相关文档

提交格式

feat: 添加新功能
fix: 修复 bug
docs: 更新文档
style: 代码格式调整
refactor: 重构代码
test: 添加测试
chore: 其他修改

📄 许可证

MIT License

Copyright (c) 2024 hecrereed


⚠️ 安全提示

  1. 修改默认密码:部署前务必修改用户名和密码
  2. 使用强密钥:JWT_SECRET 至少 32 位随机字符
  3. 启用 HTTPS:生产环境必须使用
  4. 限制访问:推荐使用内网穿透而非直接公网暴露
  5. 定期更新:及时更新依赖包

📧 联系方式


🌟 Star History

如果这个项目对你有帮助,请给一个 ⭐ Star!


📈 Roadmap

  • 支持文件上传
  • 终端录制回放
  • 多用户权限管理
  • Docker 一键部署
  • 移动端原生 App
  • 终端协作(多人同时操作)
  • 文件在线编辑
  • 系统监控面板

PowerConnect - 让远程访问变得简单

Made with ❤️ by hecrereed

⬆ 回到顶部

About

Remote terminal & file manager with internal penetration support. Access your home computer from anywhere via web browser. 远程终端+文件管理+内网穿透一体化解决方案

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors