本文介绍了在CentOS 8操作系统上安装和配置VNC服务器的步骤,同时还将向您展示如何通过SSH隧道安全地连接到VNC服务器。先决条件是:您需要以具有sudo特权的用户身份在远程CentOS计算机上登录。
安装桌面环境 通常,服务器没有安装桌面环境,如果您要连接的计算机没有GUI,则第一步是安装它,否则,请跳过此步骤。 运行以下命令在远程计算机上安装Gnome(CentOS 8中的默认桌面环境): sudo dnf groupinstall "Server with GUI" 根据您的系统,下载和安装Gnome软件包以及相关性可能会花费一些时间。
安装VNC服务器 TigerVNC是积极维护的高性能开源VNC服务器,在默认的CentOS存储库中可以找到它,进行安装: sudo dnf install tigervnc-server 安装VNC服务器后,运行vncserver命令以创建初始配置并设置密码,运行以下命令时请勿使用sudo: vncserver 系统将提示您输入并确认密码,以及是否将其设置为只读密码,如果选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互:
第一次运行vncserver命令时,它将创建密码文件并将其存储在~/.vnc目录中,如果不存在该目录,则会创建该文件。 注意上面输出中主机名后面的:1,这指示正在运行VNC服务器的显示端口号,在我们的例子中,服务器在TCP端口5901(5900+1)上运行,如果创建第二个实例,它将在下一个可用端口(即:2)上运行,这意味着服务器在端口5902(5900+2)上运行。 要记住的重要一点是,在使用VNC服务器时,:X是表示5900+X的显示端口。 在继续下一步之前,首先使用带有-kill选项和服务器编号作为参数的vncserver命令停止VNC实例,在我们的例子中,服务器在端口5901(:1)中运行,因此要停止它,请运行: vncserver -kill :1 输出: Killing Xvnc process ID 19681 参考:在Linux下使用Kill命令的技术点:包括重新加载进程和终止进程。
配置VNC服务器 现在,在远程CentOS计算机上都安装了Gnome和TigerVNC,下一步是配置TigerVNC以使用Gnome,创建新桌面时,VNC服务器使用~/.vnc/xstartup文件启动应用程序,打开文件: vim ~/.vnc/xstartup 并如下编辑它: #!/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 & 保存并关闭文件,每当您启动或重新启动TigerVNC服务器时,以上脚本都会自动执行。 如果要将其他选项传递给VNC服务器,请打开~/.vnc/config文件,并在每行添加一个选项,文件中列出了最常用的选项,取消注释并根据自己的喜好进行修改。 这是一个例子: # securitytypes=vncauth,tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared
创建一个Systemd单位文件 单位文件使您可以轻松启动、停止和重新启动服务,通常,存储用户单元文件的最佳位置是~/.config/systemd/user,创建目录: mkdir -p ~/.config/systemd/user 复制默认的vncserver单元文件: cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/ 通知systemd一个新的用户单元文件存在: systemctl --user daemon-reload 启动VNC服务并在启动时启用它: systemctl --user enable vncserver@:1.service --now @:后的数字1定义VNC服务将在其上侦听的显示端口,我们使用1,这意味着VNC服务器将在上一节中讨论的5901端口上进行侦听。 启用延迟,以便用户服务在启动时启动并在用户未登录时保持运行: loginctl enable-linger 验证服务是否成功启动: systemctl --user status vncserver@:1.service
连接到VNC服务器 VNC不是加密协议,可能会受到数据包嗅探的影响,推荐的方法是创建SSH隧道,以安全地将流量从5901端口上的本地计算机转发到同一端口上的远程服务器,参考安装与使用Mole在Linux CLI上创建SSH隧道的方法。 1、在Linux和macOS上设置SSH隧道 如果您在计算机上运行Linux、macOS或任何其他基于Unix的操作系统,则可以使用以下ssh命令轻松创建隧道: ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip 系统将提示您输入用户密码。 不要忘记用用户名和服务器的IP地址替换username和server_ip_address。 2、在Windows上设置SSH隧道 Windows用户可以使用PuTTY设置SSH隧道。 打开Putty,然后在主机名或IP地址字段中输入服务器的IP地址:
在连接菜单下,展开SSH,然后选择隧道,在源端口字段中输入VNC服务器端口(5901),在目标字段中输入server_ip_address:5901,然后单击添加按钮,如下图所示:
返回会话页面以保存设置,这样您无需每次都输入它们,要登录到远程服务器,请选择保存的会话,然后单击打开按钮。 3、使用Vncviewer连接 要连接到远程服务器,请打开VNC查看器,然后输入localhost:5901。 您可以将任何VNC查看器(例如TigerVNC、TightVNC、RealVNC、UltraVNC Vinagre和VNC查看器)用于Google Chrome。 我们正在使用TigerVNC:
在出现提示时输入密码,您应该会看到默认的Gnome桌面,它看起来应该像这样:
就是这样!现在,您可以使用键盘和鼠标从本地计算机开始在远程桌面上工作了。
相关主题 |