
案例研究 Personal project
在聊天里查看电脑状态,也能把它关掉。
- 客户
- Personal project
- 类型
- 桌面应用与远程代理
- 角色
- 设计与全栈开发
- 年份
- 2026
01概览
一个桌面应用加一个本地代理,让电脑可以通过 Telegram 聊天来操控:Electron 面板负责完成全部配置,Node.js 代理只响应一个授权聊天发来的 37 条命令。
02问题
要查看一台不在身边的电脑,通常离不开远程桌面软件、开放端口或 VPN。而一个能在你电脑上执行命令的机器人,其安全程度取决于它愿意接受的最危险的那条消息。
02方法
使用主人随身携带的聊天应用,同时让电脑始终掌握主动权。代理以出站方式轮询 Telegram,网络上没有任何监听端口;它只回应一个配置好的聊天,忽略其他所有来源;任何会改变机器状态的操作都必须先确认。
03构建
实际构建了什么
- 01
Electron 配置面板:粘贴机器人令牌和聊天 ID,面板即通过 Telegram 验证(getMe 加一条测试消息),安装代理、设置开机启动,并逐步显示每个环节的完成情况。
- 02
零运行时依赖的 Node.js 代理:采用长轮询并持久化 offset,旧消息绝不会被重复处理;37 条命令覆盖系统、网络、进程、文件、媒体和电源,每条都按平台分别实现,没有安全实现的地方就明确回复“尚不可用”。
- 03
所有敏感路径都有防护:关机、重启、挂起、锁屏、清理和升级都需要在 30 秒内从四个内联按钮中选出正确的六位验证码;/cmd 中禁止通用 sudo,拒绝破坏性命令模式;特权操作只能通过固定的包装脚本执行,由范围受限的 sudoers 授权,绝不使用 NOPASSWD: ALL。
- 04
提供安装程序:Linux 上为 systemd 服务,Windows 上为计划任务,macOS 上为 LaunchAgent。配置文件以 600 权限保存,令牌在界面中被遮蔽,并从错误信息中剔除。
技术
- Electron
- Node.js
- JavaScript
- Telegram Bot API
- systemd
- Bash
- PowerShell
04体验





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