远程使用树莓派桌面
背景
换了路由器之后想让树莓派连接新的wifi,
但命令行方式不熟悉,想用GUI方式.
此时又不想用HDMI硬件连,于是想试试远程桌面
方案
X11 forwarding
的确能够使用一些图形软件,但都是单独打开,不能直接看到桌面.
如果使用类似 startlxde
等命令想启动桌面环境,会有问题
- 反应比较慢
- 看到的界面和硬件连接时看到的不一样
vnc
使用的是RFB(remote framebuffer)远程帧缓冲协议.
基于像素的转发,抓屏幕内容传输过来.
它解决的问题有:
- 键盘的映射,鼠标的定位
- 音频的转发
- 图像的压缩
缺点有:
- 基于像素,可能会占带宽,延迟高.
- 安全方面没有特别的保证
xrdp
rdp是微软开发的,用于连接远程桌面用的协议.
据说基于一些更底层的绘图指令(也就是更省带宽一些).并且强化了安全方面.
xrdp则是开源版本的rdp,可以作为服务端使用.
客户端方面也不存在windows专属的情况linux,android,mac各种平台都有相应软件.
X11 forwarding具体使用
使用 ssh -X pi
连接,在打开图形程序时会提示一些问题.
干脆使用 ssh -Y pi
来连接.
连接后先是正常的字符界面,如果打一些有图形界面的命令,比如 emacs
,
则会有一个新的窗口打开.这样的方式看不到运行中的桌面.
xrdp的具体使用
服务端
树莓派上可以使用
1 | sudo aptitude install xrdp |
来安装,完成后默认开启,可以使用
1 | systemctl status xrdp |
查看状态
或许需要将当前用户加入到 ssl-cert
组
1 | sudo adduser pi ssl-cert |
客户端
我使用的Arch上可以安装 freerdp
,然后使用命令开始访问
1 | xfreerdp /u:username /v:192.168.1.x /w:1920 /h:1080 |
如果提示 login failed for display 0
, 则可能是密码输错了.
如果没有配置,树莓派会识别一个QWERTY的键盘.
可能ssh发送的是键盘输入后的序列,而xrdp发送的是键盘事件.
remmina
则是一个复杂得多的工具集合体,它提供
- 一套操作和管理的界面
- 以组来管理远程桌面的方式
而基础的一些功能,比如具体是使用SSH还是VNC还是RDP,需要靠安装其他软件来完成.
如果只是要用rdp,没必要去装remmina.
vnc
vnc的实现很多
- RealVNC
- TightVNC
- UltraVNC
- TigerVNC
- LibVNC
给人感觉除了乱还是乱.有时候还是平台独占.
鉴于安全方面的问题,可以使用ssh嵌套一层.
将远程的vnc server做本地转发,然后访问本地的vnc server.