一、什么是 VNC?
VNC(Virtual Network Console)是一款轻量级的远程桌面控制工具。简单说就是通过网络把你板子的桌面画面投射到另一台电脑上操作。相比 SSH 纯命令行,VNC 能直接操作 GUI,调试带界面的应用时很方便。
方案选择上,服务端用 x11vnc,它直接共享已有的 X11 桌面会话(而不是创建新的虚拟桌面),这意味着你 VNC 连上去看到的和板子 HDMI 输出的是同一个画面。
二、安装 VNC 服务端
在板子上执行:
sudo apt install x11vnc
一行命令搞定,不需要额外依赖。
三、设置连接密码
x11vnc -storepasswd
执行后会提示你输入密码,密码会保存到 ~/.vnc/passwd 文件里(firefly 用户就存在 /home/firefly/.vnc/passwd)。
这个密码就是后面客户端连接时要输入的。
四、手动启动 VNC 服务并测试
先试一下能不能正常连上:
export DISPLAY=:0
x11vnc -auth guess -once -loop -noxdamage -repeat -rfbauth /home/firefly/.vnc/passwd -rfbport 5900 -shared
几个参数说明:
| 参数 | 说明 |
|---|---|
-rfbport 5900 |
监听端口,默认 5900,如果被占了可以换成别的 |
-shared |
允许多个客户端同时连接 |
-once |
客户端断开后自动退出(测试用,生产环境改成 -forever) |
-noxdamage |
关闭 XDamage 扩展,避免某些情况下画面刷新异常 |
注意: 如果端口 5900 被占用,换一个就行,客户端连接时对应改端口即可。
服务启动后,就可以在电脑端用 VNC 客户端连上了(客户端怎么装看后面)。
五、设置开机自启动
每次重启都要手动敲命令启动 VNC,太烦了。配置一个桌面自启动项来搞定。
1. 创建 autostart 目录(如果不存在):
mkdir -p /home/firefly/.config/autostart
2. 创建启动配置文件:
vim /home/firefly/.config/autostart/vnc.desktop
文件内容如下:
[Desktop Entry]
Type=Application
Exec=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /home/firefly/.vnc/passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared -capslock -nomodtweak
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=VNC
Comment=Start VNC on login
保存后,下次用户登录桌面时 x11vnc 就会自动启动。
六、客户端连接
很多人电脑上都装了 MobaXterm,它自带 VNC 客户端功能,不用额外装软件。
操作步骤:
- 打开 MobaXterm,点击左上角 Session
- 选择 VNC 类型
- 输入板子的 IP 地址 和 端口(默认 5900)
- 点击 OK,输入之前设置的密码,就能连上了