版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42713970/article/details/86631519
- 简述:提供Window/Linux 远程连接到CentOS7 桌面的方案
目录
安装配置
- CentOS(VNC Server)
- 用root用户,安装VNC Server:yum install tigervnc-server
- 启动VNC服务器:vncserver
- 第一次启动时候,需要设置密码,并且会提示是否要创建view-only password
- Window(VNC Viewer)
- 下载和安装VNC Viewer
- 下载页面地址:https://www.realvnc.com/en/connect/download/viewer/
- window版直接下载地址:https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.18.625-Windows.exe
- 采用迅雷方式下载,出现任务失败的情况,则采用浏览器方式下载
- 不支持中文,语言选择 English
- File --> New connection
- VNC Server 值为 ip:port (例如:192.168.98.102:5901 或者 192.168.92.102:1)
- 建议CentOS设置成静态IP,以免每次都要执行ifconfig,然后改变这个值
- 端口,为 5900+窗口号 图2 有提示 New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1 则 端口号为5901
- 端口也可以是窗口号,VNC Viewer会自动映射为5900+窗口号
- VNCServer 可以同时开多个,不同的窗口,窗口号也是不同,端口也不同
- Name 值为 连接名,可随意命名
- Options-->Scaling 可选Scale to fit height 就可以看到CentOS全屏。可按照个人需要调整。连接成功之后,也可以点击菜单中的设置进行修改。
- Centos(tigervnc) 连接到CentOS上
- 安装:yum install tigervnc
- Centos(vinagre 远程桌面查看器) 连接到CentOS上
- 安装:yum install vinagre
- 应用程序-->工具 --> 远程桌面查看器
- 主机地址 值设置与window上一致。
问题处理
- 虚拟机上的CentOS 连接不上
- 虚拟机上的VNC设置 打勾
- CentOS 防火墙,按照需要,对防火墙进行设置
- 关闭当前防火墙:systemctl stop firewalld.service
- 关闭开机启动防火墙:systemctl disable firewalld.service
- 防护墙管理,开启对应端口:firewall-cmd --zone=public --add-port=5901/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
- 服务器的CentOS,不建议直接关闭防火墙,应采用开启端口方式
- 客户端黑屏 CentOS 执行:chmod 755 /root/.vnc/xstartup
优化
- 静态IP设置
- 执行 ifconfig 查看网络接口名称
- 编辑配置文件,vim /etc/sysconfig/network-scripts/ifcfg-网络接口名称
-
修改 BOOTPROTO=static ONBOOT=yes,配置IP、网管、子网掩码、DNS(根据自己网络情况调整) IPADDR=192.168.1.104 GATEWAY=192.168.1.2 NETMASK=255.255.255.0 DNS1=192.168.1.2
-
- 重启网络服务:service network restart
- 关闭 vncserver命令 启动的 vncserver
- vncserver本身提供的命令:vncserver -kill :[number] (number 为 VNC Server窗口号)
- 采用kill进程方式(不建议)
- 查看vnc进程:ps -ef|grep -i vnc 或 vncserver -list
- 关闭进程(先关闭vncserver上的应用,直接关闭进程,vncserver不会自动关闭):kill -9 进程号
- 删除对应lock文件: rm -f /tmp/.X[VNC Server窗口号]-lock 和 rm -f /tmp/.X11-unix/X[VNC Server窗口号]
- 采用kill进程方式(不建议)
- 设置密码:vncpasswd root
- 启动特定的服务器号的VNC Server:vncserver :[number]
- 开启自启动
- 配置service文件:cp /lib/systemd/system/[email protected] /lib/systemd/system/vncserver@:1.service
- vi /lib/systemd/system/vncserver@:1.service
- <USER>改为root(或者其他用户),如果没有/home/root 目录,将/home/<USER> 改为/root
- 启用vnc的1号窗口;systemctl start vncserver@:1.service 或者 vncserver :1
- 关闭vnc的1号窗口:systemctl stop vncserver@:1.service 或者 vncserver -kill :1
- 开机启动vnc的1号窗口:systemctl enable vncserver@:1.service
- 开机禁用vnc的1号窗口:systemctl disable vncserver@:1.service
- 多个窗口,改变对应的窗口号
- 查看vnserver的所有窗口:vncserver -list
简介
- 控制原理:VNC是把被控制端的屏幕做成图像,经过压缩后传送到控制端,控制端的控制信息(如鼠标信息)传送到被控制端后进入消息队列。
- 其控制是基于tcp/ip的,其中vnc server扮演了双重角色,vnc protocal是基于RFB protocal的。
- 数据的进行再server上,viewer只是作为一个显示终端,类似于windows下的mstsc。
客户端 X服务器 应用程序
vnc viewer<----------------------->Xvnc(vnc server)<------------------------>applications
(vnc protocal) (X protocal)
- 截屏方式
- VNC使用的截屏方式比较独特,它有两种方式:第一种是使用钩子自动报告需要截屏的区域;第二种是轮询某一个区域(如前景窗口)。截屏后使用某种压缩算法压缩后发送。
- 传输方式
- RFB协议传输:在控之端不能直接改变显示大小,只能进行缩放,如缩放为原大小的几倍。原理是在远程机器上运行一个额外的X服务器,X服务器和客户机器都在远程跑。然后通过RFB协议用自己的客户端显示到本地。
- X协议:X 视窗系统提供了一个公开协议,由其客户程序可以查询和更新 X 服务器上的信息。X 视窗系统(X 协议)允许网络中不同计算机上的进程在其它网络显示器上显示内容。
- 特点
- 同样可能远程连入UNIX、Linux进行图形化操作的还有流行的Xmanager,VNC与之相比——两者工作原理不一样。
- 前者(VNC)是远程连入操作系统,所有操作在UNIX、Linux主机服务端进行,即使操作过程中“本地电脑与操作主机网络断开”,也不影响操作的顺利进行;
- 而后者(Xmanager)是通过端口将主机服务器的UI界面引导到本地电脑进行展现,如操作过程出现“本地电脑与操作主机网络断开”,操作将中断失败!如果操作中进行的工作任务非常重要,不能中断,如ORACLE RAC实施,结果是灾难性的!
- 更重要的是,VNC是免费的、开源的,Xmanager你可能用的是破解注册版的。
待优化
- 暂不支持文件传输