安装和启动

安装桌面

VNC桌面需要安装TightVNCServer,以及一个桌面环境。

如果已经安装了桌面环境还不够,默认的ubuntu-gnome-desktop(当前最新版本的Ubuntu Gnome桌面环境)还不能用于vnc,最起码我还没有尝试成功,每次都以灰屏或者默认黑点屏失败告终。

这里要安装的有两种选择,第一种是安装xfce4桌面,但是我按照网上的试了一下感觉比较难用,如果有兴趣使用这种桌面可以参考这边文章:How to Install TightVNC Server on Ubuntu 20.04 | Serverspace

我使用的是gnome-session-flashback桌面,gnome桌面自己用起来更加习惯一点,可以通过以下命令安装:

sudo apt-get install gnome-session-flashback

防火墙配置

Ubuntu默认使用的是ufw防火墙,需要开放即将访问的端口。

sudo ufw allow 5901/tcp

或者干脆关闭防火墙(有风险)。

sudo ufw disable
sudo ufw status #查看状态

安装TightVNC Server

sudo apt install tightvncserver

配置VNC Server

首先给vnc配置一下密码,使用vncpasswd命令,按照提示设置密码即可。

然后修改~/.vnc/xstartup文件,这个文件是vnc桌面启动的时候要执行的脚本。根据刚才安装的桌面环境不同,要有不同的配置。如果使用的是xfce4桌面,只需要在原来文件的末尾加上一行startxfce4即可。如果使用的是gnome-session-flashback桌面,将原来文件备份一下,然后替换为下面的内容:

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey    #设置背景色
vncconfig -iconic &    #
gnome-terminal &    #连接后会直接打开一个terminal窗口
nautilus &    #连接后会直接打开一个文件窗口
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &

如果找不到.vnc/xstartup文件的话,可以先按照默认启动一下,应该就会出现了。启动和停止的步骤马上来解释。

注意这个脚本的权限要+x。

启动和停止

启动vncserver :1 后面跟的数字是窗口号,窗口号和vnc使用的端口号是对应的,窗口号是x的话,vnc就会在590x端口监听。例如这里监听5901端口。

窗口号也可以省略不写,vncserver会自动分配一个没有在使用的窗口号。

停止vncserver -kill :1后面也是端口号,表示要停止的窗口。注意,每个用户启动的窗口记录由于是保存在自己的主目录下的,因此不能通过这种方式关闭其他用户启动的窗口。

可以使用alias简化命令:

alias vnc="vncserver"
alias vnck="vncserver -kill"

将上面两行写入.bashrc,方便vnc管理。

效果

image-20221212150831409

来到了一个崭新的gnome桌面中。

  1. 使用非root用户好像无法使用,连接之后会变成灰屏,或者出现以下字样。

    image-20221212151100009

  2. 打不开除了火狐之外的浏览器。我的评价是:又不是不能用,反正vnc现在就是凑合用一下。

结语

本来想着tightvnc还挺好用的,可以监听多个端口,是不是可以放在mac上改进一下之前的mac共用方案(mac多人共用指南)。但是去官网一查才发现,macos版本的需要申请授权购买,想想还是放弃了。。

realvnc也是个非常好用的工具,好处是可以云端同步地址簿,非常方便管理主机组。但是还是不能解决mac上想多个账号共用的问题。