常用的远程桌面技术有 VNC、RDP、X2GO,还有例如 SSH X 转发。RDP 是 Windows 远程桌面实用的技术,在 Linux 有开源的 xrdp 方案(本人没用明白遇到一些问题,这里不介绍)。VNC 技术本身的缺陷是协议没有安全机制。不过现在一些 VNC 工具如 TigerVNC 本身可以设置实用密码、TLS 等技术加密连接。除此之外,更常用的方法是通过 SSH 连接 VNC,利用 SSH 自身的安全机制建立安全通道。
下面介绍一些常用的 VNC 工具
工具 | 平台 | 描述 |
---|---|---|
MobaXterm | Win | 功能强大,支持很多功能。其 VNC 客户端支持自动建立 ssh 隧道 |
Remmina | Linux | 开源产品功能和 MobaXterm 有交集。VNC 客户端可以自动建立 ssh 隧道 |
TeamViewer | Win、Linux、Mac | 非开源,无需公网 IP |
TigerVNC+SSH | Win、Linux、Mac | 通过 SSH 把内部端口转发到本地机器,然后通过 TigerVNC 访问 |
VNC 服务端
建议实用 TigerVNC 建立服务端。你在哪个用户下启动 server,则登陆后就是用的哪个用户。
tigervnc 使用 /etc/tigervnc/vncserver.users
文件建立桌面和用户的映射。通过 tigervncserver@<:screenid>.service
启动服务器
查看 X 使用了哪些端口
当使用 XVNC 共享用户界面时,需要知道具体的屏幕号(:id
)可以通过以下几个方法查看
shell
# 方法 1
ps aux | grep X
# 方法 2
# 这将列出形如X0、X1等的文件,其中的数字表示显示号。
ls /tmp/.X11-unix
# 方法 3
# 显示已登录用户的信息,有时也可以用来查看活动的显示号(如果用户从图形界面登录)
w
# 方法 4
echo $DISPLAY