Warning:此教程仅适用于Ubuntu 18.04和Ubuntu 20.04,请勿使用此教程在Ubuntu 22.04上配置VNC,22.04上VNC的配置逻辑和参数集都发生了变化,比如启动VNC变为:tigervncserver -xstartup /usr/bin/xterm :1 #(1为端口号)
排坑:
1、启动VNC: vncserver :1 -localhost no ##:1是用了5901端口,-localhost no是为了让其他计算机可以访问,而不仅仅是本地(不设置这个,测试机用wifi连接,一直连接失败)
2、执行“1、启动VNC: vncserver :1 -localhost no”,注意一定要退出Conda虚拟环境,使用系统环境,否则会出现无panel、toolbar以及灰屏、黑屏等各种问题 。
3、开机启动所有用户VNC,需要编写脚本开机运行(网上很多将待执行脚本增加执行权限等配置在"/etc/init.d/"目录下的方式,在>=18.04的系统版本下均已经失效),见:.
Introduction
实现室某台服务器系统过旧、使用过久,经常崩溃,本人接手后开始进行升级。
一开始下载并打算直接安装Ubuntu 20.04 Server版本,奈何服务器以太端口不能直连外网(需要登录),代理设置又麻烦,指不定中间有需要联网安装的支持库。最终选择Ubuntu 20.04 Desktop LTS版本进行安装。安装过程省略(选择不安装第三方及媒体包等、安装完成后卸载服务器运行不必要组件和程序即可;另外,后期可按需安装切换服务器运行内核等)。——已安装OpenSSH-Server、remote端口已打开。
以下是介绍如何在Ubuntu20.04LTS上安装配置VNC,使其桌面能被其他局域网内的电脑连接访问。
btw:以下操作相当于默认系统已经有多用户,创建多个用户:
Setup
1. 安装服务器所需但桌面版缺少的组建和支持库
综上所述,我们要再安装一个桌面管理器环境,能够配合VNC正常运行,实现用户UI远程访问服务器。
- xface4: 轻量级桌面环境,适合远程桌面(中文输入、界面体验等方面的考虑,实验室其他平台正常使用(14.04~18.04),这里没有使用);
- gnome-session-flashback: Gnome经典桌面环境(基于Ubuntu默认自带的Gonme 3.36.4,20.04上成功配置并使用。以下将以此为例,);
- ubuntu-gnome-desktop: 当前最新版本的Ubuntu Gnome桌面环境(系统安装时默认自带,2017年,Ubuntu弃Unity,转而默认搭载Gnome,20.04安装上配置失败,即便多次尝试,无法连接、灰屏、仅有文件浏览器等各种问题,每次相同安装配置还出现过问题不同的情况,遂放弃)。
安装gnome-session-flashback:
server:~$ sudo apt-get install gnome-session-flashback
注:我的系统本来就是有桌面的。若安装的是server版本,可能还要安装:gnome-terminal、nautilus和gnome-settings-daemon等。另外,根据提示,可能还需要安装gdm3。
2. 关闭防火墙或者开放端口(20.04不关也行,只要ssh远程remote端口可访问即可)
##由于实验室服务器属于多人多账号使用,每个端口都分别设置防火墙端口开放就很麻烦
server:~$ sudo ufw disable #关闭防火墙
server:~$ sudo ufw status #查看防火墙状态
3. 安装VNC Server
server:~$ sudo apt-get install tigervnc-standalone-server #安装tigervnc-server ##若有提示安装:sudo apt-get install tigervnc-xorg-extension
4. 设置VNC密码
其他终端用VNC Viewer连接VNC Server时,需要密码(密码长度最大为6位)。跟系统用户密码无关。
server:~$ vncpasswd #每次终端输入该指令都会重置密码(不需要验证旧密码),忘记直接重置即可
Password: #密码
Verify: # 再次输入密码
Would you like to enter a view-only password (y/n)? n #这里设置no就行了
server:~$ ls ~/.vnc #目录在/home/username/.vnc ,有passwd文件则说明设置成功
5. 为VNC设置桌面环境
即配置xstartup文件(每个用户目录下都要执行)。
5.1 打开/新建xstartup文件,
server:~$ vim ~/.vnc/xstartup
5.2 修改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 &
增加xstartup文件执行权限:
server:~$ sudo chmod +x ~/.vnc/xstartup
至此,xstartup文件修改完成。
6. 启动VNC
终端输入:
server:~$ vncserver :2 -localhost no #2为端口号,no表示非局域网内账户也可访问,每个用户目录下都要执行一次(开机运行参见开机脚本设置:https://www.cnblogs.com/Deskew/p/13798595.html,root下直接su username即可切换,无需验证秘密)
server:~$ ps -ef|grep vnc #查看已运行vnc端口号和对应账号,想要关掉可以查看对应pid号,直接kill即可,或者:vncserver -kill 端口号
7. 测试