Raspberry Pi headless 无屏控制完整方案
为什么树莓派场景特别重要
Raspberry Pi 最大的优势之一就是可以长期 headless 运行——没有显示器、没有键盘,开机后直接从另一台设备远程接入。这让它非常适合做家庭服务器、IoT 网关、NAS、监控主机等场景。
RealVNC 是树莓派官方推荐的远程解决方案——Raspberry Pi OS(含 Bookworm、Bullseye)默认预装了 RealVNC Server,只需要手动开启一下。
第一步:开启 RealVNC Server
在树莓派上操作一次就好(只有第一次需要):
- 进入 Raspberry Pi OS 桌面(第一次装系统可能需要接显示器)
- 点击左上角 Raspberry Pi 图标 → Preferences → Raspberry Pi Configuration
- 切到 Interfaces 标签
- 把 VNC 滑块拨到 Enabled
- 点 OK
确认后桌面右上角状态栏会出现 RealVNC 图标(一个 V 形),代表 Server 已经在后台监听了。
如果树莓派是 headless 状态(连首次桌面都没进过),可以通过 SSH 上去用 raspi-config 命令开启:
sudo raspi-config → Interface Options → VNC → Enable
第二步:设置密码
RealVNC Server 首次开启会要求你设置 VNC Device Password(设备密码)——至少 6 位,区分大小写,建议包含字母数字符号混合。这是 Direct 直连时 Viewer 端认证用的密码,跟树莓派系统登录密码不是同一个。
设置方法:
- 有桌面时:RealVNC 图标右键 → Options → Security → Configure VNC password
- 纯命令行:
sudo vncpasswd
第三步:在 Viewer 端连树莓派
两种方式选一种:
Direct 直连(推荐,简单)
- 在树莓派上查 IP:
hostname -I(或路由器后台、arp -a在 Windows 查) - VNC Viewer 里输入
<树莓派 IP>:0或<树莓派 IP>:5900 - 弹认证框 → 输入刚才设的 VNC Device Password
- 进入树莓派桌面
Cloud 云连接(推荐,长期用)
- 在树莓派的 RealVNC Server 里登录你的 RealVNC 账号(设置 → Account → Sign in)
- 树莓派自动出现在你所有设备的 VNC Viewer Team List 里
- 任何设备登录后点树莓派的条目 → 连接
虚拟模式(headless 关键)
树莓派没有接物理显示器时,VNC Server 默认会用很低的分辨率(640×480)甚至无法启动——因为它需要检测到有显示器才能正常渲染桌面。
RealVNC Server 的虚拟模式(Virtual Mode)完美解决这个问题——在内存里创建一个虚拟显示器,不需要物理连接:
- 打开树莓派上的 RealVNC Server 主界面
- 切到 Mode 标签(或 v8 的 Virtual Display)
- 选择 Virtual 模式
- 设置虚拟分辨率(1280×720 / 1920×1080 / 自定义)
- 点 Apply → Server 自动创建虚拟桌面,VNC Viewer 重连即可看到
虚拟模式下树莓派完全不需要物理显示器——没有 HDMI 线、没有 Dummy Plug 也行。
常见坑
- 连接成功但黑屏:树莓派没有接显示器且没开虚拟模式 → 按上面的步骤启用 Virtual Mode
- 连接后画面模糊:虚拟分辨率设太低 → 调到 1920×1080
- 5900 端口连不上:路由器防火墙没放行?或者 RealVNC Server 没在运行 →
sudo systemctl status vncserver-x11-serviced查看状态 - 关机后重启连不上:RealVNC Server 没设置开机自启 →
sudo systemctl enable vncserver-x11-serviced