深绿色调的示意图:一台显示五个已完成配置步骤的电脑,向一部手机发出信号波,手机上有一条消息和四个验证码按钮。

案例研究 Personal project

在聊天里查看电脑状态,也能把它关掉。

客户
Personal project
类型
桌面应用与远程代理
角色
设计与全栈开发
年份
2026

一个桌面应用加一个本地代理,让电脑可以通过 Telegram 聊天来操控:Electron 面板负责完成全部配置,Node.js 代理只响应一个授权聊天发来的 37 条命令。

要查看一台不在身边的电脑,通常离不开远程桌面软件、开放端口或 VPN。而一个能在你电脑上执行命令的机器人,其安全程度取决于它愿意接受的最危险的那条消息。

使用主人随身携带的聊天应用,同时让电脑始终掌握主动权。代理以出站方式轮询 Telegram,网络上没有任何监听端口;它只回应一个配置好的聊天,忽略其他所有来源;任何会改变机器状态的操作都必须先确认。

实际构建了什么

  1. 01

    Electron 配置面板:粘贴机器人令牌和聊天 ID,面板即通过 Telegram 验证(getMe 加一条测试消息),安装代理、设置开机启动,并逐步显示每个环节的完成情况。

  2. 02

    零运行时依赖的 Node.js 代理:采用长轮询并持久化 offset,旧消息绝不会被重复处理;37 条命令覆盖系统、网络、进程、文件、媒体和电源,每条都按平台分别实现,没有安全实现的地方就明确回复“尚不可用”。

  3. 03

    所有敏感路径都有防护:关机、重启、挂起、锁屏、清理和升级都需要在 30 秒内从四个内联按钮中选出正确的六位验证码;/cmd 中禁止通用 sudo,拒绝破坏性命令模式;特权操作只能通过固定的包装脚本执行,由范围受限的 sudoers 授权,绝不使用 NOPASSWD: ALL。

  4. 04

    提供安装程序:Linux 上为 systemd 服务,Windows 上为计划任务,macOS 上为 LaunchAgent。配置文件以 600 权限保存,令牌在界面中被遮蔽,并从错误信息中剔除。

技术

  • Electron
  • Node.js
  • JavaScript
  • Telegram Bot API
  • systemd
  • Bash
  • PowerShell

可运行的原型(v0.1.0),在 Linux 上开发,Linux 支持最完整。Windows 和 macOS 为部分支持,README 中仍列有未解决的问题。在一个面板中管理多台电脑已列入路线图,尚未实现。

下一个项目RoomFlowGrupo Transire · 会议室预订