安装和启动
安装桌面
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管理。
效果
来到了一个崭新的gnome桌面中。
坑
使用非root用户好像无法使用,连接之后会变成灰屏,或者出现以下字样。
打不开除了火狐之外的浏览器。我的评价是:又不是不能用,反正vnc现在就是凑合用一下。
结语
本来想着tightvnc还挺好用的,可以监听多个端口,是不是可以放在mac上改进一下之前的mac共用方案(mac多人共用指南)。但是去官网一查才发现,macos版本的需要申请授权购买,想想还是放弃了。。
realvnc也是个非常好用的工具,好处是可以云端同步地址簿,非常方便管理主机组。但是还是不能解决mac上想多个账号共用的问题。