简介
TigerVNC是VNC的一种高性能、平台中立实现(虚拟网络计算),一种客户端/服务器应用程序,允许用户启动远程图形应用程序并与之交互机器。TigerVNC提供运行所需的性能级别3D和视频应用程序,并尝试保持普通外观并尽可能在各种它支持的平台。TigerVNC还提供了其他扩展高级身份验证方法和TLS加密。
下载
tigervnc提供了二进制和软件包两种方式可供选择,对于我们日常使用来说,选择打包好的程序,使用yum或apt管理更加方便,也更加友好。
下载地址:https://sourceforge.net/projects/tigervnc/files/stable/
rhel,fedora,ubuntu等发行版本,可以通过软件源直接下载安装。
对于每个版本的安装包,都提供不同系统的支持,具体的选择,根据你的系统版本来定;对于Linux的server来说,需要按系统版本来选择对应的包,我这里选择的是rhel8。
如何使用
对于一款跨平台的vnc连接软件,通常由两部分组成,我这里用Client和Server来区分。
例如,我现在需要用我的windows去访问一台Linux服务器,那么,我的windows就是Client端,被访问的Linux服务器就是Server端。
client
下载windows适用的vncview软件,并安装。
在这里输入server端对应的IP和端口,格式为IP:port
例如:
192.169.6.10:11
VNC服务器的默认端口为5900。要访问远程桌面的端口,请将默认端口和用户分配的显示号相加。例如,对于第二个端口:2+5900=5902。
关于vncserver的连接端口,测试发现,直接使用vncserver -list查到的端口也是可以连接的。回车或者点击ok,输入密码,即可连接。
server
下载Linux端适用的软件包并安装。对于rhel来说,理论上只需要tigervnc-license,tigervnc-server和tigervnc-server-minimal这几个包,如果有其他安装依赖问题,根据提示下载对应的包即可。
如果您配置的yum源中有tigervnc软件,也可以直接使用yum来安装。
yum install -y tigervnc*
配置文件
1.配置文件是/etc/systemd/system/ vncserver@.service。可以通过复制 /lib/systemd/system/ vncserver@.service来创建。
# cp /lib/systemd/system/ vncserver@.service /etc/systemd/system/ vncserver@.service
没有必要在文件名中包括显示设备编号,SYSTEMD会自动建立正确的实例(把%i自动替换)。对单个用户来讲没有必要对文件改名。对多个用户来讲,每个用户都需要一个唯一的服务文件,这样就需要把用户名字加到文件名里了。
2.修改/etc/systemd/system/ vncserver@.service文件,把USER改成实际用户的名字,其它地方不用改。-geometry参数会指定VNC桌面的大小,默认为1024*768。
ExecStart=/sbin/runuser -l USER -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/USER/.vnc/%H%i.pid
3.保存更改。
4.为了使更改生效,应使用以下命令:
# systemctl daemon-reload
服务管理
#启动服务
systemctl start vncserver
# 查看vncserver端口
vncserver -list
#设定密码(先切换成对应的用户):
# su - USER
vncpasswd
Password:
Verify:
重要:密码没有加密,有权限查看密码文件的用户可以看到密码。配置多用户的VNC
如果你想配置多个用户远程登陆,则需要为每个用户都创建一个文件。
创建多个服务文件
比如 vncserver-USER_1@.service和vncserver-USER_2@.service,USER需要替换成实际的用户。分别设定密码:
# su - USER_1
# vncpasswd
Password:
Verify:
#su - USER_2
#vncpasswd
Password:
Verify:
tigervnc连接排错
(1)vnc密码错误
使用ssh登录到server端所在的主机,使用vncpasswd修改密码Password。
(2)vncserver端口忘记了
使用vncserver -list命令查看即可
(3)连接很卡,或者画面没有反应
可以使用vncserver -kill命令来杀掉当前的vncserver进程,并使用vncserver命令重新启用一个进程
(4)服务报错
请检查配置文件,一般来说,都是/etc/systemd/system/ vncserver@.service文件有问题。