项目地址:

https://gitee.com/dWwwang/open-remotely-os

📖 项目简介

RemotelyOS7+ 是一款基于.NET 10开发的企业级免费开源远程控制系统,专为现代化的系统集中管理而设计。我们的初衷是为广大用户提供一个功能强大、完全免费的远程管理工具,让每个人都能享受到专业级的远程控制体验。

🎯 适用场景

  • 🏢 服务器、机房、工作室、员工电脑集中控制 - 批量管理多系统

✨ 核心优势

  • 🆓 完全免费开源 - 真开源,无任何使用限制,可商用二次开发(请保留出处)
  • 💪 功能强大 - 屏幕墙、远程桌面、文件管理、系统资源管理、远程语音视频、注册表、反向代理、远程终端命令行等功能
  • 🔒 私有部署 - 支持自建转发服务器,数据完全掌控在自己手中
  • 🎛️ 跨平台控制 - 主打集中控制管理Windows,Linux
  • 大规模并发 - 支持大规模设备同时连接
  • 🚀 一键部署 - 超简单部署
  • 🌟 持续更新 - 敬请期待更多强大的功能:Web、Android

🎓 免责声明

  • 作为创作者,我对由此软件引起的任何行为和/或损害不承担任何责任。 您对自己的行为承担全部责任,并承认此软件仅用于教育和研究目的。 不得用于您不拥有或有权使用的任何系统。 使用此软件,您自动同意上述内容,感谢支持。

🎬 功能预览

🌟 功能特性

Windows 平台特性

  • 无需安装框架 - 无系统框架依赖,一键部署,开箱即用
  • 🖥️ 远程桌面控制 - 差异算法远程桌面,低带宽低系统资源占用,剪切板、指针同步、系统音频同步
  • 📁 超强文件管理 - 支持超大文件/文件夹断点续传
  • 📊 命令行终端 - 批量执行命令行
  • 注册表管理 - Windows注册表管理
  • 📊 实时音视频 - 在线实时音视频
  • SOCK5代理 - SOCK5代理
  • 📊 系统管理 - 系统信息总览、进程管理、窗口管理、网络管理
  • 系统兼容性 - 被控端支持 Windows 7 SP1及以上版本 (太过纯净Win7的系统需要打几个基础补丁,否则可能运行不起来)

Linux 平台特性

  • 🐧 原生Linux支持 - 无需额外框架
  • 🖥️ 命令行终端 - 批量执行命令行
  • 📂 强大文件管理 - 断点续传,大文件无忧
  • 系统管理 - 系统信息总览、进程管理、网络管理
  • 💻 SOCK5代理 - SOCK5代理

🆚 版本对比

我们坚信优秀的工具应该让每个人都能使用。开源版本已经包含了绝大多数核心功能,足以满足大部分使用场景,如有更高使用要求,请进群联系群主。


🏗️ 系统架构

RemotelyOS7+ 采用现代化的三层架构设计,确保系统的稳定性、可扩展性和高性能。

架构概览

┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│   控制端         │         │   服务器端       │         │   被控端         │
│  Monitor        │◄───────►│  Service        │◄───────►│  Slave          │
│                 │  TCP    │  Launcher       │  TCP    │  Launcher       │
│  Windows Forms  │         │  TCP Server     │         │  Windows Service│
└─────────────────┘         └─────────────────┘         └─────────────────┘

核心组件

🎮 控制端 (Monitor)

  • 技术栈​: Windows Forms + .NET 10.0
  • 功能​: 发起:远程桌面、文件管理、终端命令行等功能
  • 特性​: 多设备管理、实时监控、批量操作

🖥️ 服务器端 (Service Launcher)

  • 技术栈​: TCP Socket
  • 端口​: TCP 1523 / HTTP 5222
  • 功能​: 连接管理、消息路由、用户认证
  • 特性​: 数据流高性能实时中转

🔧 被控端 (Slave Launcher)

  • 部署模式​: Windows服务 / 用户应用
  • 功能​: 接收控制指令、执行系统操作
  • 特性​: 轻量级、低资源占用、自动重连,兼容Windows7及以上操作系统

核心模块

模块 功能描述 通信模式
🖥️ Desktop 远程桌面控制 发布-订阅 + 请求-响应
📁 File 文件管理 请求-响应
🔊 Audio 音频传输 发布-订阅
🔄 ProcessManager 进程管理 请求-响应
💻 Bash 远程终端 发布-订阅
🌐 ReverseProxy 反向代理 发布-订阅
📝 Registry 注册表管理 请求-响应

🚀 快速开始

构建

本工程基于Visual Studio 2026 .NET 10 开发,安装Visual Studio时请安装如下选项

首先给工程创建系统目录 ./data:放置被控端可执文件,用于创建时主控端读取

->RemotelyOS.Slave.Launcher.exe:例如Windows被控端可执行文件
     ->RemotelyOS.Slave.Launcher:例Linux被控端可执行文件

./ffmpeg:将源代码工程一级目录的ffmpeg拷贝进来

->avcodec-58.dll
     ->avdevice-58.dll
     ->。。。。

./RemotelyOS.Bash:编译发布RemotelyOS.Bash.Console工程后,将发布好的可执文件拷贝到这个文件夹

->RemotelyOS.Bash.Console.exe

./Server:编译发布RemotelyOS.Service.Launcher工程后,可执文件放到这个文件夹

->FileRoot:需要创建这个目录,并将ffmpeg再复制一份拷贝进来

     ->RemotelyOS.Service.Launcher.exe服务端文件

./RemotelyOS.Client.Windows.exe:将发布好的主控端可执行文件放这

主要编译以下几个项目:

RemotelyOS.Client.Windows:主控端可执行文件项目

RemotelyOS.Service.Launcher:服务端可执行文件项目

RemotelyOS.Slave.Launcher:被控端可执行文件项目,Windows\Linux均是该项目

编译过程:

选中项目,点击右键->发布

编译参数如下

点击显示所有设置,部署模式选择独立,目标运行时选择win-x64,文件发布选项勾选生成单文件

被控端项目发布时,目标运行时:根据运行平台选择win-x64或者linux-x64

以上系统项目均按照该设置编译程序,发布完成后,将发布好的可执行文件拷贝至最终程序目录。

最终的程序结构如下

安装部署

本项目默认采用中间转发模式,在部署主控端与被控端前,需要将发布好的Server目录拷贝至一个主控端与被控端都能访问到的公共端点,一般是部署在一台公共服务器中(内外网模式均如此),然后打开RemotelyOS.Service.Launcher中间服务器程序(默认端口TCP:1523),开始支撑主控端与被控端的数据流转发。

中间服务器部署好后,打开RemotelyOS.Client.Windows主控端程序,然后打开系统设置

修改服务器端口与服务器地址(部署好的中间服务器地址与端口)与账户与密码(账户配置后面单独讲述,这里使用默认的即可)。

修改后保存重启主控端即可,如果地址与端口正确即可在主界面运行日志看到与服务器连接成功的通知(如果连接失败,请检查服务器端口是否被防火墙开放或者检查服务器管理后台的端口开放情况)。

主控端设置正确正确连接服务器后,接下来部署被控端:打开主控端的创建客户端。

服务器地址:因为本系统默认走中间服务器,这里填写中间服务器的地址与端口

安装方式:一般选择服务安装开机启动,如果不选择则绿色安装模式(重启后不再启动)

选择需要运行的系统:Windows或者Linux

参数设置完成后点击创建客户端即可完成配置,将生成好的被控端可执行文件拷贝到目标电脑安装即可(确保目标系统能与中间服务器连接)

被控端安装完成启动后,主控端在线列表会自动显示对应设备在线信息,右键选择功能,开始使用便捷的远程管理功能吧。

账户权限控制:

服务端目录下可创建一个user.json文件,用于为主控端分配被控端权限。

参数解释:

origin:1为主控端专用,2为被控端专用账户,主控端不能使用被控端的账户、被控端同理。

user、passwd:账户密码,

group:通过group分配到同一组,主控端在线列表只显示相同组的被控端(例如主控端group=main,被控端的也是group=main) 以下JSON分别分配了两个账户

注意:主控端的group可使用小写的逗号(,)分割以分配多个组以显示多组的设备 例如 "group": "main,a,b"

JSON示例:

[
  {
    "user": "root",
    "passwd": "123456",
    "origin": 1,
    "group": "main",
    "desc": "origin 1=主控端, 2=被控端"
  },
  {
    "user": "client",
    "passwd": "123456",
    "origin": 2,
    "group": "main"
  }
]

🛠️ 开发指南

技术栈

  • 后端​: .NET 10.0, C#
  • 前端​: Windows Forms
  • 网络​: TCP Socket, 自定义协议
  • 序列化​: MemoryPack, JSON
  • 视频编码​: H.264 (FFmpeg)
  • 音频​: NAudio

构建项目

# 克隆项目
git clone https://gitee.com/dWwwang/open-remotely-os.git
cd remotely-os7

🤝 贡献指南

我们欢迎所有形式的贡献!无论是代码、文档、测试还是建议。

如何贡献

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

开发规范

  • 遵循 C# 编码规范
  • 添加适当的单元测试
  • 更新相关文档

📄 许可证

本项目采用开源许可证,详见 LICENSE 文件。


🙏 致谢

感谢所有为 RemotelyOS7+ 项目做出贡献的开发者和用户!


📞 联系我们


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

Made with ❤️ by RemotelyOS Team