一、VNC简介
VNC (Virtual Network Console),即虚拟网络控制台,它是一款基于 UNIX 和 Linux 操作系统的优秀远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发,远程控制能力强大,高效实用,并且免费开源。
VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。在任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便地与安装了服务器端的应用程序(vncserver)的计算机相互连接
二、图形化界面
首先要保证目标服务器安装有图形化桌面环境,有的话直接到第四步。没有就安装图像界面(如果没有图形界面,远程后是黑屏)。可能几百MB的大小吧,是一个漫长的过程。
1、安装命令:
yum install gnome*
2、查看系统默认启动方式,设备为开机启动图形化界面:
systemctl get-default #查看默认启动界面方式
# 显示 graphical.target 表示开机启动图形化界面
# 显示 multi-user.target 表示开机启动命令行界面
systemctl set-default graphical.target #设置开机启动图形化界面
3、重启可验证
startx
三、安装或下载rpm包(linux可上互联网)
有些机器不能连接互联网,而需要软件的时候只能通过离线安装包来安装。这就需要从互联网的机器上下载安装包,然后再用到不能联网的机器上。如果是安装vnc的机器上有互联网,可以直接安装。
根据实际情况选择,我这是用的第二个,因为要去无互联网机器上安装:
sudo yum install tigervnc-server -y
# 安装命令
sudo yum -y install tigervnc-server --downloadonly --downloaddir /opt/temp
# 安装并下载rpm安装包命令
如果已经安装过了,那么
sudo yum -y reinstall tigervnc-server --downloadonly --downloaddir /opt/temp
如果下载正常,下载完成后就可以在本机下载目录中找到安装包。
四、VNC服务安装
1、将下载的安装包复制到无法上网的linux机器上,以放在/opt/VNC文件夹为例
2、执行离线安装命令
sudo rpm -Uvh *.rpm --force --nodeps
# -a 查询所有套件。
# -b<完成阶段><套件档>+或-t <完成阶段><套件档>+ 设置包装套件的完成阶段,并指定套件档的文件名称。
# -c 只列出组态配置文件,本参数需配合"-l"参数使用。
# -d 只列出文本文件,本参数需配合"-l"参数使用。
# -e<套件档>或--erase<套件档> 删除指定的套件。
# -f<文件>+ 查询拥有指定文件的套件。
# -h或--hash 套件安装时列出标记。
# -i 显示套件的相关信息。
# -i<套件档>或--install<套件档> 安装指定的套件档。
# -l 显示套件的文件列表。
# -p<套件档>+ 查询指定的RPM套件档。
# -q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
# -R 显示套件的关联性信息。
# -s 显示文件状态,本参数需配合"-l"参数使用。
# -U<套件档>或--upgrade<套件档> 升级指定的套件档。
# -v 显示指令执行过程。
# vv 详细显示指令执行过程,便于排错。
# --force 强行置换套件或文件。
# --nodeps 不验证套件档的相互关联性。
3、查看是否安装了vnc-server服务
rpm -q tigervnc tigervnc-server
五、配置VNC服务
1、切换到计划登录vnc服务的账户并运行vncserver命令
注意:你将会被提示输入并且确认一个密码,并且是否设置一个仅仅查看的密码。如果你选择设置一个仅仅查看的密码,这个用户将不能通过键盘和鼠标和 VNC 实例进行交互。因此我此处选择则“n”。
第一次运行vncserver
命令,它将会在~/.vnc
目录下创建并且存储密码文件(这是个隐藏文件,可通过 "ls -a"查看)。如果该文件夹没有被创建,那么首先会创建该文件夹。
# 随机生成桌面号
vncsever
# 生成固定的桌面号
vncserver :1
请留意上面主机名后面的:1
。则表示 正在运行的 VNC 服务器上的显示端口号。在我们的例子中,服务器运行在 TCP 端口5901
(5900+1)。如果你创建了第二个实例,他将会运行到下一个闲置的端口上,例如::2
,这意味着,服务器运行在端口号5902
(5900+2)上。
在和 VNC 服务器上工作的时候,最重要的一点就是,:X
就是显示端口号,即:5900+X
。
2、访问测试
注意:如果是临时连接,那现在通过防火墙开放5901端口,就可以在windows上用vnc工具进行访问了。
防火墙的使用在文档扩展篇部分。vnc viewer的使用方法在文档最后一步。
3、修改屏幕分辨率(直接启动与接下来介绍的配置文件启动更改分辨率都在此处)
# 修改.vnc目录先的config配置文件
vi ~/.vnc/config
重启vnc服务:
vncserver -kill :1
vncserver :1
4、创建服务文件,使此服务能够自启。
Unit files 允许你很容易地启动,停止,和重启服务。拷贝默认的 vncserver unit 文件,我们在新文件名中输入的“ 1”是将用于该特定服务实例的显示号。知道这一点很重要,因为它还会确定VNC服务器将侦听的TCP端口,即5900 +显示号:第一个是5901,然后是5902,依此类推:
sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
sudo vi /etc/systemd/system/vncserver@:1.service
sudo systemctl daemon-reload
# 重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载
5、启动服务
sudo systemctl restart vncserver@\:1.service
systemctl enable vncserver@:1.service
# 设置开机自启动
systemctl disable vncserver@:1.service
# 禁止开机自启动
服务常用的命令:
systemctl start vncserver@:1.service
# 开启服务
systemctl stop vncserver@:1.service
# 停止服务
systemctl status vncserver@:1.service
# 查看服务的状态
systemctl restart vncserver@:1.service
# 重启服务
扩展篇(可不操作,参考):
1、指定桌面号创建:
# 创建为1的桌面号
vncserver :1
# 查看vnc服务有哪些vnc桌面
vncserver -list
2、在继续下面的步骤之前,第一步通过使用vncserver
命令加上-kill
选项,停止 VNC 实例。在我们的例子中,服务器运行在端口号 5901(:1
),因此,停止它,运行:
vncserver -kill :1
3、注意:如果想默认时让桌面号从1开始,则需要kill掉进程并删除/tmp下的.X*文件和用户目录下的.vnc文件夹
ps -ef | grep Xvnc
kill -9 进程号
cd /tmp
sudo rm -rf .X*
4、首先要确保防火墙已开启,以下是防火墙相关命令,请参考:
systemctl start firewalld
# 打开防火墙
systemctl status firewalld
# 查看防火墙状态
systemctl stop firewalld
# 关闭防火墙
firewall-cmd --reload
# 刷新防火墙状态,立即生效
systemctl enable firewalld
# 开机启动防火墙
systemctl disable firewalld
# 禁止开机启动防火墙
5、开放端口,开放5901端口
firewall-cmd --zone=public --add-port=5901/tcp --permanent
# 开放5901端口
firewall-cmd --zone=public --list-ports
# 查看所有开放的端口
firewall-cmd --zone=public --remove-port=5901/tcp --permanent
# 关闭端口(关闭后需要要重启防火墙才生效)
六、vnc客户端在windows上安装使用
最终目的是:从windows系统上远程linux的图像化界面
1、vnc下载链接https://www.realvnc.com/en/connect/download/viewer/
2、安装vnc
选择语言,默认英文,没有中文。可以更改安装路径
选中安装组件中的 Desktop Shotcut,设置桌面快捷方式项,这里默认没有附带,可以单击该项,在弹出选项里选择 Will be installed on local hard drive,就可以在安装完成后自动在桌面创建对应快捷方式
安装好后,桌面会出现快捷方式
在windows上连接linux的图形化界面
密码是在vncpasswd中设置的密码
成功登录