文章目录
- 前言
- 使用Vino方式
- 无显示器使用
- 使用TigerVNC方式
前言
在很多领域的生产开发工作中常常需要用到 Ubuntu Desktop 系统,但是在一些日常的工作交流中又离不开Windows系统,这种时候比较常用的解决方案就是在Windows系统上使用虚拟机安装Ubuntu。不过就我个人而言并不喜欢使用虚拟机,弄个小主机无显示使用起来更加舒服。有些特定的工作需要用到 Ubuntu Desktop 桌面环境,这个时候远程桌面就是一个非常好用的功能了。
这篇文章中以 Ubuntu 20.04 进行说明测试。
使用Vino方式
Ubuntu Desktop 是自带屏幕共享(远程桌面)功能的(Vino),但有可能需要安装下才会在菜单中显示。在终端中使用下面命令进行安装设置:
sudo apt update
sudo apt install vino
gsettings set org.gnome.Vino require-encryption false
安装完成后可以在 Settings 中启用 Sharing 后看到 Screen Sharing 选项:
在 Screen Sharing 选项中设置密码与网络即可开启屏幕共享:
开启屏幕共享后就可以在其它电脑上使用 VNC Viewer 等工具连接到此桌面。 VNC Viewer 可以在下面地址下载:
https://www.realvnc.com/en/connect/download/viewer/
默认端口号为5900,提示未加密的连接不必用管,直接 Continue 即可:
需要注意的是如果你之前开启过SSH服务(就是使用 sudo apt install openssh-server
安装启用的那个),那么可能在上述操作后SSH服务会被关闭,注意检查下相关设置:
上面 Remote Login 那个。
无显示器使用
启用屏幕共享后主机可以在角落一直挂机了,需要用的时候远程连上用就行。但是还有个问题,通常情况下主机的HDMI、DP等数字的视频输出口外面不接显示器的话,系统启动后也不会进入图形界面,这个时候用 VNC Viewer 等工具连接显示出的也只是一片黑屏。
这个时候就需要用一些方法来欺骗设备或系统了,主要可以使用两类方式(如果用下面的TigerVNC那么也可以跳过这个章节)。
硬件虚拟显示器
最简单的就是花点钱,假装有个显示器:
软件虚拟显示器
不想花钱或是不方便使用硬件伪装的话可以尝试软件形式的虚拟显示器,主要是使用 xserver-xorg-video-dummy
这个软件,具体的使用方式可以参考下面文章:
《How to run X server using xserver-xorg-video-dummy driver on Ubuntu》
《【LINUX】(Ubuntu)无显示器接入,使用虚拟显示器且远程控制》
使用TigerVNC方式
Vino用起来很方便,但是局限性也蛮大的,相对来说TigerVNC更加好用些。Vino相对来说偏向于屏幕共享,而TigerVNC就更加偏向于远程桌面了。TigerVNC可以方便的设置远程桌面的分辨率、色彩深度等。甚至TigerVNC还可以无显示器使用(当然有显示器和没显示器界面效果是有差异的)。
TigerVNC项目主页: https://tigervnc.org/
TigerVNC项目页面: https://github.com/TigerVNC/tigervnc
# 下面是Ubuntu中TigerVNC相关的一些包,使用 VNC server 功能只需要安装没有注释掉的部分即可
sudo apt install tigervnc-common
# sudo apt install tigervnc-scraping-server
sudo apt install tigervnc-standalone-server
# sudo apt install tigervnc-viewer
# sudo apt install tigervnc-xorg-extension
安装完成后需要进行一些设置,先设置远程连接的密码:
最后的选项选n。
然后配置远程连接显示的桌面:
上面 xstartup
中文本针对的是 Ubuntu Desktop 20.0.4 所用的Gnome3桌面设置的,文本如下:
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
接着就可以启动vncserver了,常用的比如 vncserver -localhost no -geometry 1280x720 :1
:
上面 -localhost no
是必选的,这样才能被远程访问;-geometry 1280x720
用于设置远程桌面分辨率;:1
指明服务开启的会话号为1,这个可以不写,不写程序也会自动分配一个可用的号。还有一个比较有用的参数是 -depth 24
,用来设置色彩位深,默认为24,可以设置8、16、24、32。通常来说分辨率和位深越小,远程桌面再使用时会越流畅些。
启动完成后就可以使用 VNC Viewer 等工具进行连接了,端口号为5900+会话号,刚连接上时可能色彩有问题,刷新下就好:
可以使用 vncserver -list
来查看当前启用的会话,使用 vncserver -kill :会话号
来关闭会话:
关于 vncserver
的更多内容可以使用 man vncserver
或者 vncserver -h
等来查看。
最后需要注意的是: vncserver
可能并不会开机启动,可以使用SSH登陆进行手动启动,或者参考 《Linux笔记:开机自动运行程序》 进行设置。