缘起
之前一直在用AnyDesk作为远程桌面软件,但最近学校的IT部门说AnyDesk有安全隐患,不能再使用了。在Linux上允许使用的远程桌面软件只有VNC和XRDP。VNC和RDP都是远程桌面协议,但VNC是一个开源的协议,而RDP是微软的专有协议。VNC的优点是跨平台,支持Linux、Windows、macOS等操作系统;虽然RDP是微软的专有协议,但Linux上也有开源的实现,比如XRDP。
VNC的缺点是速度较慢,延迟较高。其优点是在Linux系统上使用VNC时,远程桌面和本地桌面是完全分开的,互不影响。而且很多Linux系统和macOS默认支持VNC服务,不需要额外安装软件。
macOS连接Ubuntu
Ubuntu自带VNC服务,macOS自带VNC客户端,因此在macOS上连接Ubuntu非常简单。在连接之前,我们需要做一些准备工作。
-
在Ubuntu上打开VNC服务。虽然Ubuntu上自带VNC服务,但默认是关闭的,我们需要先打开它。如果使用Gnome桌面环境,进入“设置”界面,点击“共享”,然后打开“远程桌面”选项:
-
设置VNC密码。在开启“远程桌面”选项后,就可以看到VNC服务的设置界面。按照提示进行设置:
-
开启密码验证。勾选"Enable Legacy VNC Protocol"选项后,点击右边的三个点,勾选“Require a password”:
如果不勾选这个选项,那么在每次连接时都会弹出一个确认窗口,要求确认是否允许连接。如果远程电脑没有人在旁边,就无法连接了:
-
在macOS上连接Ubuntu。使用macOS自带的文件浏览器Finder,就可以通过VNC连接远程电脑。但在此之前,我们需要先用ssh连接远程电脑,并做端口转发:
1
ssh -L 22590:localhost:5900 username@remote_ip
上述命令在连接远程电脑的同时,将远程电脑的5900端口映射到本地的22590端口。之所以这么做,是因为VNC服务默认使用5900端口,但由于安全性的原因,很多系统会将5900端口关闭,因此我们需要使用ssh进行端口转发。ssh连接成功后,就可以在Finder中连接远程电脑了:
在弹出的窗口中输入VNC密码:
如果一切顺利,就可以看到远程电脑的桌面了。