使用 vnc/rdp 远程连接 linux 桌面

  1. 安装 x11vnc
sudo apt install -y x11vnc
  1. 设置密码
x11vnc -storepasswd

询问写入文件时选 y

  1. 启动 vnc
x11vnc -usepw -noxdamage -ncache 10

-usepw 默认使用 ~/.vnc/passwd,指定密码配置 x11vnc -rfbauth /path/to/passfile

至此已经可以使用 vnc 客户端连接了,默认端口 5900

  1. 安装 xrpd
apt install -y xrdp

ubuntu 会自动启动服务,如果没有手动开启

至此可以使用 rdp 客户端连接了,连接后选择 vnc-any,IP 输入 127.0.0.1,端口密码同上

  1. 用 supervisor 自动启动 x11vnc

查看 Xorg 运行的 auth 参数 ps aux | grep auth,通常能找到类似 -auth /var/run/lightdm/root/:0 这样参数,可能不同,复制出来,准备放在后面的文件里

安装 supervisor

sudo apt install -y supervisor

添加配置

[program:x11vncd]
process_name=%(program_name)s
command=x11vnc -rfbauth /path/to/passwd -noxdamage -ncache 10 -shared -display :0 -auth /var/run/lightdm/root/:0
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/x11vnc.log

/path/to/passwd 改为对应的密码文件
-auth /var/run/lightdm/root/:0 要使用 Xorg 的运行参数
不要使用 -loop -forever 选项,否则在注销后无法终止该进程, superviser 将无法重新启动该服务

  1. Xorg 方案
sudo apt install -y xrdp xorgxrdp
# mint 19.x
sudo apt install -y xrdp xorgxrdp-hwe-18.04

注意:

  • Xorg 方案无法在物理机已登录的情况下使用。
  • 使用 xrdp 客户端连接后,选择 Xorg ,输入登录的用户密码即可。
  • 如果要重新在物理机登录,一定要先注销 xorgxrdp 的登录,否则登录后会自动退出。