Ubuntu18.04LTS安装TigerVNC

背景

本人电脑Ubuntu18.04LTS系统,最小化安装,不过勾选了Gnome桌面。电脑上安装了KVM,并建了2个win10的虚拟机。最终目的是为了能够在局域网内用其他电脑访问win10桌面的。不过本人Linux小白一个,先从访问Linux宿主机开始,用个VNC,就当学习。
所以这篇博客是介绍如何在Ubuntu18.04LTS上安装配置VNC,使其桌面能被其他局域网内的电脑连接访问。 主要留给自己看,怕忘。

收集信息

看了很多资料,基本的结论是Ubuntu18自带的Gnome虽然自身运行时桌面、任务栏等等都很OK,但是通过VNC分享后,是无法完美显示的,我在操作过程中就发现VNC Client端连接后没有任务栏,启动栏,桌面等等,连上后一片黑。有的兄弟说一片灰,那是因为xstartup文件里设置的关系,后面会讲到。颜色不是关键,关键是没东西。

好在Ubuntu18提供了分享工具Vino。但是如果你用networkd来管理你的网络,而不是networkmanager,vino无法找到网络,无法开启。我就是因为使用了networkd,所以vino用不了。如果你用的是networkmanager,可以自行搜索以下vino的使用方法。

安装步骤

1. 安装桌面环境

宗上所述,我们要再安装一个桌面环境,能够在VNC上正常运行。根据网上众多教程,这里列3个桌面环境,自己去了解一下想要哪个。

  1. xface4: 轻量级桌面环境,适合远程桌面
  2. gnome-session-flashback: Gnome2的经典桌面环境(Metacity),但用了GTK+3。有人提到安装gnome-session-fallback,这个已经被flashback替代了,不用fallback了。
  3. ubuntu-gnome-desktop: 当前最新版本的Gnome桌面环境

记得网上还看到过用ubuntu-desktop,这个跟3其实一样,只是少了几个包,找不到教程了,就不推荐了。我比较推荐1或2,因为3太大了,600多M,实在不想消耗这么多资源。而且我电脑上自带Gnome桌面,不知道再装它会不会出问题(顺便提一下,2是我亲测的,1和3我没有试过,不过有网友是这么干的)。接下来分不同桌面来介绍安装

1.1 安装xface4

rd8@myserver:~$ sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

我没有试xface4,有网友给了教程,参考1

1.2 安装gnome-session-flashback

网上见过两种方案,一种是直接安装gnome-session-flashback,另一种是分别安装一些必要的包,包括gnome-panel, gnome-settings-daemon, metacity。我试着apt-get了一下,其实安装gnome-session-flashback也好,安装gnome-panel也好,都会把gnome-applets, gnome-panel, gnome-session-flashback, metacity这4个package安装起来。所以不用纠结了。

rd8@myserver:~$ sudo apt-get install gnome-session-flashback

或者

rd8@myserver:~$ sudo apt-get install gnome-panel 

注意,我的系统本来就是有桌面的。如果你的没有,可能还要安装gnome-terminal(命令行终端),和nautilus(文件管理窗口),还有gnome-settings-daemon。自己查看下系统有没有,没有就装上。这些以后都是要用的。

1.3 安装ubuntu-gnome-desktop

先安装,然后启动,并设置成开机自动启动。这个包很大哦。

rd8@myserver:~$ sudo apt-get install ubuntu-gnome-desktop
rd8@myserver:~$ sudo systemctl start gdm
rd8@myserver:~$ sudo systemctl enable gdm

ubuntu-gnome-desktop我也没有试过安装,参考了网友:参考2,参考3

2. 关闭防火墙或者开放端口

这里我就简单粗暴地全关了,指令:
ufw disable #关防火墙
ufw status #查看防火墙状态,inactive表示关闭了

rd8@myserver:~$ sudo ufw disable
rd8@myserver:~$ sudo ufw status

3. 安装VNC Server

电脑1通过VNC访问电脑2,那么电脑1只需要安装VNC Client软件,电脑2只需要安装VNC Server软件。这里我们讲Server。

网上看了好多文章,VNC Server软件有TigerVNC, TightVNC, Vino (Gnome desktop默认), x11vnc, krfb (KDE desktop默认), vnc4server等等。没有找到具体对比,但是看下来tigervnc好像比较好。vnc4server也不错,比tigervnc精简,功能上简化了。我就tigervnc了。这里有个tigervnc的包列表,可以了解一下。
指令:
apt-get install tigervnc-standalone-server #ubuntu18下要安装的是tigervnc-standalone-server,有些说安装tigervnc-server,可能是其他linux发行版用的,apt-get get不到啊。
apt-get install tigervnc-xorg-extension #这个可能不是必须的,先记录一下,我是安装了的
apt-get install tigervnc-common #这个可能也不是必须的,先记录一下,我没安装

rd8@myserver:~$ sudo apt-get install tigervnc-standalone-server
rd8@myserver:~$ apt-get install tigervnc-xorg-extension

tigervnc-xorg-extension会依赖一个xorg core的包,有提示就安装。

4. 设置VNC密码

当你用其他电脑的VNC Viewer来连接VNC Server时,需要一个密码。跟你系统用户密码没有关系。

rd8@myserver:~$ vncpasswd
Passwork:
Verify:
Would you like to enter a view-only password  (y/n)? n
rd8@myserver:~$ ls ~/.vnc
passwd

查看~/.vnc目录下有passwd,说明密码设置完毕。

5. 为VNC设置桌面环境

这里其实就是配置xstartup文件。

5.1 打开xstartup文件,没有就新建一个

rd8@myserver:~$ sudo nano ~/.vnc/xstartup

5.2 修改xstartup文件里的内容

5.2.1 如果你刚才安装了xface4,请复制如下代码到xstartup文件并保存

#!/bin/sh

unset SESSION_MANAGER 
unset DBUS_SESSION_BUS_ADDRESS 
startxfce4 &    #启动xface4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup 
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources 
xsetroot -solid grey    #设置背景色
5.2.2 如果你刚才安装了gnome-session-flashback或者gnome-panel,请复制如下代码到xstartup文件并保存
#!/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 &

上面这个是我亲测的,应该没问题。文章最后附有截图。
有网友用了如下类似配置,单独启动了gnome-panel, gnome-settings-daemon, metacity。虽然任务栏,窗口都出来了,但是没有桌面背景,没有桌面图标。文章最后附有截图。

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
xsetroot -solid grey	#设置背景色
gnome-panel &
gnmoe-settings-daemon &
metacity &
gnome-terminal &    #连接后会直接打开一个terminal窗口
nautilus &    #连接后会直接打开一个文件窗口

xstartup文件里都有gnome-terminal和nautilus,如果想在VNC连接后自动打开一个terminal和文件窗口的,可以把这2个item前面的“#”注释符去掉。

5.2.3 如果你刚才安装了ubuntu-gnome-desktop,请复制如下代码到xstartup文件并保存

#!/bin/sh
# Start Gnome 3 Desktop 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

也有人说用这个配置:

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
gnome-session &

有条件的朋友可以试一下,顺便留言告知一下结果哈。

5.3 给xstartup文件设置可执行权限

rd8@myserver:~$ sudo chmod u+x ~/.vnc/xstartup 

至此,startup文件修改完成。
我看到有很多人跟我遇到了同样的问题,就是连接VNC后屏幕上一片黑或者灰,其实就是桌面环境没有设置好。比如用Ubuntu18自带的Gnome就不行,或者没有安装gnome-session-flashback等就开始连接,或者安装了这些包,但是xstartup文件设置不对,都是这个结果。大家可以到~/.vnc/下面对应的log文件里找找,看下错误信息。
另外,大家发现有些xtartup文件里会有一行xsetroot -solid grey,就是设置底色为灰色。有没有这句都不影响使用。为什么桌面环境无法加载时是一片灰呢?就是这句话造成的。没有这句话,底色就是黑的。你也可以设置其他颜色。

6. 启动VNC

启动就不多讲了,网上有很多教程。就直接写下我的启动代码

rd8@myserver:~$ sudo vncserver :2 -localhost no
rd8@myserver:~$ sudo netstat -ntupl|grep vnc
tcp     0    0 0.0.0.0:5902    0.0.0.0:*    LISTEN    5187/Xtigervnc      
tcp6    0    0 :::5902         :::*         LISTEN    5187/Xtigervnc   

:2是用了5902端口,我的5901好像有点问题,小白一个,不去管它了。
-localhost no是为了让其他计算机可以访问,而不仅仅是本地。没有这个option的话就只能本地VNC连接。从下面vnc监听状态可以看出,监听地址是0.0.0.0,而不是默认的127.0.0.1。

记得不用VNC了之后把VNC Server关掉,vncserver -kill :2vncserver -kill :*是把所有VNC Server全部关掉。

7. 图赏

下图是我安装gnome-session-flashback,但是单独启动gnome-panel,gnome-terminal等的连接画面。
在没有安装gnome-session-flashback之前,连接的画面没有任务栏。
Ubuntu18.04LTS安装TigerVNC_第1张图片
下图是我安装了gnome-session-flashback,并启动gnome-session后远程连接的画面。这是为的成品啊。

最后感谢几位作者的文章以及论坛大神
https://blog.csdn.net/catshitone/article/details/103181202

https://www.linuxidc.com/Linux/2019-08/159849.htm

https://www.cyberciti.biz/faq/install-and-configure-tigervnc-server-on-ubuntu-18-04/

https://stackoverflow.com/questions/42296329/how-to-properly-configure-xstartup-file-for-tightvnc-with-ubuntu-vps-gnome-envir

你可能感兴趣的:(PC,ubuntu,vnc)