Remotely 是自托管的远程控制与远程脚本平台,基于 .NET 8 与 Blazor 构建,可远程桌面、执行命令、传文件并采集设备信息。
- v2024.08.07.0819
- 发布于
- 2024年8月13日
- 5,093
- 星标
- 99,299
- 下载
- 同步于
- 3 天前
最新版本
v2024.08.07.08192024年8月13日 00:45下载慢?可在上方随时切换镜像源
项目说明
项目概述
Remotely 由 immense 维护,是一套可自托管的远程控制与远程脚本平台。服务端用 .NET 8 与 Blazor 写成,被控机器装一个常驻 Agent,双方通过 SignalR 保持长连接,管理员打开浏览器就能看到所有在线设备。远程桌面、命令行、文件分发与告警共用同一个后台,适合自建一套轻量的远程运维入口。
| 项目 | 内容 |
|---|---|
| 运行形态 | 自托管服务端 + 被控端 Agent + 网页控制台 |
| 技术栈 | .NET 8、Blazor、SignalR Core、Entity Framework Core 8.0.10 |
| 默认端口 | 容器内 5000 |
| 默认数据库 | SQLite,可切换 SQL Server 与 PostgreSQL |
| 许可 | GPL-3.0 |
服务端、Agent 与浏览器控制台组成一条闭环,远程支持与脚本运维落在同一个页面里。
主要功能
- 远程桌面:在浏览器里查看并操作 Windows、Linux、macOS 桌面,顶部可切换显示器
- 远程终端:内置 PowerShell、CMD、Bash、zsh 等 shell,
/切换 shell,Ctrl+Q清空输出 - 脚本下发:保存常用脚本后按设备或组织批量执行,结果单独归档
- 文件传输:通过 FileSharing 接口在服务器与被控设备之间上传、下载文件
- 站内聊天:设备卡片内直接发起会话,用于远程支持时沟通
- 告警接口:一次
POST /api/Alerts/Create可同时写站内通知、发邮件、回调第三方接口 - 网络唤醒:对支持 Wake-on-LAN 的设备发送魔术包远程开机
- 设备信息:采集 CPU、内存、磁盘与系统版本,按组织分组展示
部署方式
| 方式 | 适用场景 | 关键点 |
|---|---|---|
| Docker Compose | 单机快速上线 | 镜像 immybot/remotely:latest,数据挂载到 /var/www/remotely |
| Linux 自包含包 | 没有 Docker 的服务器 | Releases 里的 Remotely_Server_Linux-x64.zip 约 740 MB,解压即可运行 |
| 源码编译 | 内网定制与二次开发 | 需要 Visual Studio 2022 与 .NET 8 SDK,克隆时加 --recurse 拉子模块 |
界面与操作
- 设备网格:登录后首页按组织列出全部设备,显示在线状态、最后响应时间与系统信息
- 远程控制页:点设备卡片进入 Viewer,画面经 SignalR 推送,工具条可发组合键
- 手机上的手势:单指点击等于左键,长按松开等于右键,长按拖动等于拖拽
- 终端面板:设备详情里打开 Terminal,命令在目标机器执行,输出实时回传
- 服务器配置:
ServerConfig页集中管理数据库、留存天数、双因素与录制开关
适用人群
- 自建远程支持的中小团队
- 需要批量运维终端的企业 IT
- 家庭多设备远程管理者
- 对比远程控制方案的开发者
- 需要私有化部署的运维工程师
快速上手
- 在服务器上执行
mkdir -p /var/www/remotely,把官方docker-compose.yml放进该目录 - 在目录内运行
docker compose up -d,等待容器健康检查通过 - 浏览器打开
http://服务器地址:5000,点首页的Register注册第一个账号 - 这个账号同时是服务器管理员与组织管理员,组织自动创建,此后自助注册关闭
- 进入
Downloads页按平台下载 Agent,装到需要被控的机器上 - 回到首页等设备上线,点卡片发起远程控制;要用接口时到 Account 下的 API Access 建令牌
系统要求
| 项目 | 要求 |
|---|---|
| 服务端 | Docker 或 Linux x64,自包含包已带 .NET 8 运行时 |
| 数据库 | SQLite 默认,可换 SQL Server、PostgreSQL |
| 被控端 | Windows 7 及以上、Ubuntu LTS、macOS |
| 端口 | 容器内固定 5000,宿主端口可改 |
| 反向代理 | 官方只支持 Caddy 直接面向公网 |
注意事项
- 转发头配置:放在反向代理后必须传
X-Forwarded-Proto、X-Forwarded-Host、X-Forwarded-For,代理 IP 要加进KnownProxies - 单组织限制:
MaxOrganizationCount默认为 1,首个账号注册后不能再自助注册,多租户需调大或设成 -1 - 数据留存:
DataRetentionInDays控制日志与录制保留天数,设为 -1 表示永久保留,录制文件落在/app/AppData/recordings - 设备禁封:写进
BannedDevices的设备一连接就会收到卸载指令 - Linux 客户端依赖:Ubuntu 快速支持客户端需先装
libx11-dev、libxrandr-dev、libc6-dev、libxtst-dev、xclip
历史版本
排序