Skip to content

bighamx/RemoteTool

Repository files navigation

ChuckieHelper

基于 .NET 8 的 Web 后台管理与远程控制服务

.NET License Platform Platform


🖥️ 系统支持

本项目支持 Windows 和 Linux 操作系统。

✨ 功能特性

  • 🖥️ 系统控制 - 实时监控 CPU、内存、磁盘、显卡等硬件信息,支持锁定、睡眠、休眠、关机等操作
  • 📊 进程管理 - 查看和管理系统进程,支持按类型筛选和终止进程
  • 🎮 远程控制 - 实时远程桌面控制,支持 H.264 编码,可调节分辨率和画质 🪟 Windows
  • 💻 命令终端 - WebSocket 远程终端,支持 PowerShell/CMD 🪟 Windows,支持Shell 🐧 Linux
  • 🐳 容器管理 - Docker 容器的启动、停止、删除和日志查看
  • 📝 Compose 编辑 - Docker Compose 文件的在线编辑、验证和一键部署
  • 📁 文件管理 - 远程文件浏览、上传、下载和删除
  • 任务调度 - Hangfire 的定时任务管理,自行添加任何任务 (内置qBittorrent管理、DDNS 等任务模板)
  • 🔐 安全认证 - JWT 认证保护所有敏感操作

📸 界面预览

点击展开功能截图

系统控制

实时监控系统硬件信息,一键执行电源操作。

系统控制界面

进程管理

查看所有运行中的进程,支持筛选和终止操作。

进程管理界面

远程控制

实时远程桌面,支持 H.264 视频流,低延迟高画质。

远程控制界面

命令终端

WebSocket 远程终端,支持 PowerShell 和 CMD。

命令终端界面

容器管理

管理 Docker 容器的完整生命周期。

容器管理界面

Docker Compose

在线编辑和部署 Docker Compose 项目。

Compose 编辑器

文件管理

远程浏览和管理服务器文件。

文件管理界面


🚀 快速开始

环境要求

  • 🪟 Windows 10/11 或 Windows Server
  • 🐧 任何可运行 .NET 8 的 Linux 操作系统
  • .NET 8 SDK/Runtime
  • (可选,仅Windows)IIS + ASP.NET Core Hosting Bundle🪟 Windows

安装步骤

  1. 克隆仓库
git clone https://github.com/bighamx/chuckieTool.git
cd chuckieTool
  1. 配置应用
# 复制示例配置文件
copy WebApplication1\appsettings.example.json WebApplication1\appsettings.json

编辑 appsettings.json,配置必要的参数:

{
  "Auth": {
    "Username": "你的用户名",
    "Password": "你的密码",
    "JwtSecret": "至少32位的随机密钥"
  }
}
  1. 运行应用
cd WebApplication1
dotnet run
  1. 访问服务
  • 主页:http://localhost:5104/
  • Hangfire 面板:http://localhost:5104/hangfire

⚙️ 配置说明

基础配置

配置项 说明 示例
Auth:Username 登录用户名 admin
Auth:Password 登录密码(必填) YourSecurePassword
Auth:JwtSecret JWT 签名密钥(必填,≥32位) YourSecretKey...

可选配置

qBittorrent 设置
{
  "QbSettings": {
    "DefaultDockerUrl": "http://user:pass@host:port",
    "DefaultHomeUrl": "http://user:pass@host:port"
  }
}
Cloudflare DDNS 设置
{
  "CloudflareSettings": {
    "ApiToken": "YOUR_API_TOKEN",
    "ZoneId": "YOUR_ZONE_ID",
    "RecordName": "your.domain.com",
    "Proxied": false,
    "Ttl": 1800
  }
}
远程控制提权代理

用于在 IIS/Session 0 环境下执行需要桌面交互的操作:

{
  "RemoteControl": {
    "ElevatedAgent": {
      "UserName": "管理员用户名",
      "Password": "管理员密码",
      "Domain": "可选,域名"
    }
  }
}

或使用环境变量:REMOTECONTROL_ELEVATEDAGENT_PASSWORD


🖥️ 部署方式

方式一:自宿主运行(推荐用于开发/测试)🪟 Windows/🐧 Linux

# 开发模式
dotnet run --project WebApplication1/ChuckieHelper.WebApi.csproj

# 发布后运行
dotnet publish -c Release -o publish
cd publish
ChuckieHelper.WebApi.exe

方式二:IIS 部署(推荐用于生产环境)🪟 仅Windows

步骤 1:安装必要组件

  1. 启用 IIS

    • 打开「控制面板」→「程序」→「启用或关闭 Windows 功能」
    • 勾选以下项目:
      • Internet Information Services
      • Web 管理工具IIS 管理控制台
      • 万维网服务应用程序开发功能ASP.NET 4.8
      • 万维网服务常见 HTTP 功能(全部勾选)
  2. 安装 ASP.NET Core Hosting Bundle

步骤 2:发布应用

dotnet publish WebApplication1/ChuckieHelper.WebApi.csproj -c Release -o C:\inetpub\ChuckieHelper

📁 发布后,将你的 appsettings.json 复制到 C:\inetpub\ChuckieHelper 目录

步骤 3:创建应用程序池

  1. 打开「IIS 管理器」(运行 inetmgr
  2. 右键「应用程序池」→「添加应用程序池」
    • 名称ChuckieHelperPool
    • .NET CLR 版本无托管代码
    • 托管管道模式集成
  3. 点击「确定」创建

步骤 4:配置 LocalSystem 身份(重要!)

⚠️ 仅在需要远程控制功能时配置。LocalSystem 具有最高权限,请谨慎使用。

  1. 在「应用程序池」中找到 ChuckieHelperPool
  2. 右键 →「高级设置」
  3. 找到「进程模型」→「标识」,点击右侧的 ... 按钮
  4. 选择「内置帐户」→ 下拉选择 LocalSystem
  5. 点击「确定」保存

步骤 5:创建网站

  1. 在 IIS 管理器中,右键「网站」→「添加网站」
  2. 配置如下:
    • 站点名称ChuckieHelper
    • 应用程序池:选择 ChuckieHelperPool
    • 物理路径C:\inetpub\ChuckieHelper
    • 绑定
      • 类型:http(或 https
      • IP 地址:全部未分配
      • 端口:5104(或你希望的端口)
  3. 点击「确定」创建

步骤 6:验证部署

  1. 启动网站(右键网站 →「管理网站」→「启动」)
  2. 浏览器访问:http://localhost:5104/
  3. 使用 appsettings.json 中配置的账号密码登录

常见问题排查

问题 解决方案
502.5 错误 检查 Hosting Bundle 是否正确安装,尝试重启 IIS
500 错误 检查 appsettings.json 是否存在且格式正确
权限不足 确认应用程序池使用 LocalSystem 身份运行
端口被占用 更换端口或停止占用端口的服务

⚠️ 安全提示appsettings.json 包含敏感信息,请勿提交到公开仓库!


🔧 桌面代理 🪟 仅Windows

在 IIS/Session 0 环境下,远程控制功能需要桌面代理的支持才能和用户桌面进行交互。

桌面代理进程会被自动创建,创建桌面代理进程时,优先使用复制已有管理员令牌的方式,若无则依赖计划任务

  1. 复制已有管理员令牌:在当前交互会话中查找已存在的高完整性进程(如用户曾以管理员运行过任务管理器等),复制其令牌并用于启动代理,无需配置密码,即时生效。
  2. 计划任务:若未找到高完整性令牌,且已配置 RemoteControl:ElevatedAgent(管理员用户名与密码),应用启动时会自动创建“登录时以最高权限运行”的计划任务,用户注销并重新登录后,桌面代理将以管理员身份自动启动。
  3. 代理通过命名管道与 WebApi 通信,执行键鼠输入等桌面操作。

手动运行桌面代理模式:

dotnet ChuckieHelper.WebApi.dll --desktop-agent

⚠️ 桌面代理仅支持 Windows,Linux 无需此功能。


❓ 常见问题

Q: 访问出现 500/502 错误?
  • 检查 appsettings.json 是否存在且格式正确
  • 确认已安装 .NET 8 Hosting Bundle
  • 查看 Windows 事件查看器中的错误日志
Q: Hangfire 面板无法访问?
  • 确认已使用正确的账号密码登录
  • 检查浏览器是否阻止了 Cookie
Q: 远程控制功能无法使用?
  • 确认应用以管理员权限运行
  • 在 IIS 部署时,检查应用池是否配置为 LocalSystem
  • 验证 RemoteControl:ElevatedAgent 配置是否正确

📝 开源协议

本项目采用 MIT 协议 开源。


🙏 致谢

About

基于 .NET 8 的 Web 后台管理与远程控制服务

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors