如何在CentOS 7上安装和配置VNC
在本教程中,我们将引导您完成在CentOS 7系统上安装和配置VNC服务器的步骤。我们还将向您展示如何通过SSH隧道安全地连接到VNC服务器。
VNC是一个图形桌面共享系统,可让您使用键盘和鼠标远程控制另一台计算机。
先决条件
在继续学习本教程之前,请确保您以个具有sudo特权的用户身份登录。我们假定您以名为myfreax
的用户身份登录。
安装Xfce桌面环境
CentOS服务器安装通常没有安装桌面环境,因此我们将从安装轻量级桌面环境开始。
在本指南中,我们将安装 Xfce 。它快速,稳定且系统资源少,非常适合在远程服务器上使用。
Xfce软件包可在EPEL存储库中获得。如果您未在服务器上启用 EPEL信息库,则可以输入以下内容来实现:
sudo yum install epel-release
添加存储库后,请使用以下方法在CentOS上安装Xfce:
sudo yum groupinstall xfce
根据您的系统,下载和安装Xfce软件包以及相关性可能会花费一些时间。
安装VNC服务器
我们将使用TigerVNC作为我们的VNC服务器。 TigerVNC 是积极维护的高性能开源VNC服务器。
键入以下命令以在您的CentOS服务器上安装TigerVNC:
yum install tigervnc-server
现在已安装VNC服务器,下一步是运行vncserver
命令,该命令将创建初始配置并设置密码。运行以下命令时请勿使用sudo:
vncserver
系统将提示您输入并确认密码,以及是否将其设置为仅供查看的密码。如果您选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互。
You will require a password to access your desktops.Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth: file /home/myfreax/.Xauthority does not exist
New 'server2.myfreax.com:1 (myfreax)' desktop at :1 on machine server2.myfreax.com
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/myfreax/.vnc/server2.myfreax.com:1.log
第一次运行vncserver
命令时,它将创建密码文件并将其存储在~/.vnc
目录中;如果不存在,则会创建该文件。
请注意上面输出中主机名后的:1
。这表示正在运行vnc服务器的显示端口号。在我们的例子中,服务器在TCP端口5901
(5900 + 1)上运行。如果使用vncserver
创建第二个实例,它将在下一个可用端口上运行,即:2
,这意味着服务器在端口5902
(5900 + 2)上运行。
要记住的重要一点是,在使用VNC服务器时,:X
是表示5900+X
的显示端口。
在继续下一步之前,请先使用vncserver
命令(带-kill
选项)和服务器编号作为参数来停止VNC实例。在我们的例子中,服务器在端口5901(:1
)上运行,因此我们将使用以下命令将其停止:
vncserver -kill :1
Killing Xvnc process ID 2432
配置VNC服务器
现在Xfce和TigerVNC都安装在我们的CentOS服务器上,下一步是将TigerVNC配置为使用Xfce。为此,请打开以下文件:
nano ~/.vnc/xstartup
并将最后一行从exec /etc/X11/xinit/xinitrc
更改为exec startxfce4
:
〜/.vnc/xstartup
#!/bin/shunset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
保存并关闭文件。每当您启动或重新启动TigerVNC服务器时,以上脚本都会自动执行。
如果您需要将附加选项传递给VNC服务器,则可以打开~/.vnc/config
文件并在每行添加一个选项。文件中列出了最常用的选项。取消评论并根据自己的喜好进行修改。
以下是示例:
〜/.vnc/config
# securitytypes=vncauth,tlsvnc# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared
dpi=96
创建一个Systemd服务文件
我们将创建一个systemd单位文件,使我们能够根据需要轻松地启动,停止和重新启动VNC服务,就像其他任何systemd服务一样。
使用 cp
命令复制vncserver单元文件:
sudo cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]:1.service
使用文本编辑器打开文件,然后将<USER>
替换为您的实际用户名。
sudo nano /etc/systemd/system/[email protected]\:1.service
/etc/systemd/system/[email protected]:1.service
[Unit]Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l myfreax -c "/usr/bin/vncserver %i"
PIDFile=/home/myfreax/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
保存并关闭文件。通知systemd我们用以下方法创建了一个新的单位文件:
sudo systemctl daemon-reload
下一步是使用以下命令启用单位文件:
sudo systemctl enable [email protected]:1.service
符号@
后的数字1
定义了VNC服务将在其上运行的显示端口,在我们的示例中,这是默认端口1
,VNC服务器将监听端口5901
,如我们在上一节。
通过执行以下操作来启动VNC服务:
sudo systemctl start [email protected]:1.service
验证服务是否成功启动:
sudo systemctl status [email protected]:1.service
● [email protected]:1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/[email protected]:1.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2018-09-16 09:59:53 UTC; 4s ago
Process: 6391 ExecStart=/usr/sbin/runuser -l myfreax -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 6413 (Xvnc)
CGroup: /system.slice/system-vncserver.slice/[email protected]:1.service
‣ 6413 /usr/bin/Xvnc :1 -auth /home/myfreax/.Xauthority -desktop server2.myfreax.com:1 (myfreax) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/myfreax/.vnc/passwd -rfbport ...
连接到VNC服务器
VNC不是加密协议,可能会受到数据包嗅探。推荐的方法是创建 SSH隧道,该隧道将安全地将流量从端口5901上的本地计算机转发到同一端口上的服务器。
在Linux和macOS上设置SSH隧道
如果您在计算机上运行Linux,macOS或任何其他基于Unix的操作系统,则可以使用以下命令轻松创建SSH隧道:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
系统将提示您输入用户密码。
不要忘记用您的用户名和服务器的IP地址替换username
和server_ip_address
。
在Windows上设置SSH隧道
如果您运行Windows,则可以使用 PuTTY SSH客户端设置SSH隧道。
打开Putty,然后在Host name or IP address
字段中输入您的服务器IP地址。
在Connection
菜单下,展开SSH
并选择Tunnels
。在Source Port
字段中输入VNC服务器端口(5901
),在Destination
字段中输入server_ip_address:5901
,然后单击Add
按钮,如下图所示:
返回Session
页面以保存设置,因此您无需每次都输入它们。现在,您需要做的就是选择保存的会话并通过单击Open
按钮登录到远程服务器。
使用Vncviewer连接
现在,您已设置SSH隧道,是时候在localhost:5901
上打开Vncviewer并连接到VNC服务器了。
您可以为 Google Chrome 使用任何VNC查看器,例如TigerVNC,TightVNC,RealVNC,UltraVNC Vinagre和VNC查看器。
在此示例中,我们将使用TigerVNC。打开您的VNC查看器,输入localhost:5901
,然后单击Connect
按钮。
出现提示时输入密码,您应该会看到默认的Xfce桌面。它应该看起来像这样:
您现在可以使用键盘和鼠标从本地计算机开始与远程XFCE桌面进行交互。
结论
到现在,您应该已经启动并运行了VNC服务器,并且可以使用图形界面轻松管理CentOS 7服务器。
要配置您的VNC服务器以为一个以上的用户启动显示,请创建初始配置并使用vncserver
命令设置密码,并使用其他端口创建新的服务文件。
如有任何疑问,请随时发表评论。
以上是 如何在CentOS 7上安装和配置VNC 的全部内容, 来源链接: utcz.com/z/507193.html