Skip to content

Node.js 远程桌面

远程桌面允许通过网络远程控制另一台计算机,共享屏幕、键盘和鼠标。

应用场景

场景说明
远程办公在家远程连接公司电脑
服务器管理远程管理无显示器的服务器
技术支持远程协助解决客户问题
教育培训远程演示和教学

核心库(node-rdp)

基于 RDP(Remote Desktop Protocol)协议:

bash
npm install node-rdp
js
import RDP from 'node-rdp'

const rdp = new RDP({
  host: '192.168.1.100',
  port: 3389,           // RDP 默认端口
  username: 'admin',
  password: 'password'
})

await rdp.connect()

基于 WebSocket 的简单实现

js
// 使用 node-pty + socket.io 可构建 Web 终端
import { Server } from 'socket.io'
import { spawn } from 'child_process'

io.on('connection', (socket) => {
  // spawn PTY 终端
  const pty = spawn('cmd.exe', [])

  // 接收客户端输入 → 发送到终端
  socket.on('input', (data) => pty.stdin.write(data))

  // 终端输出 → 发送给客户端
  pty.stdout.on('data', (data) => socket.emit('output', data.toString()))
})

主流协议

协议端口说明
RDP3389Windows 远程桌面
VNC5900跨平台远程桌面
SSH22命令行远程连接