CentOS7下将本地虚拟机映射服务器,并且实现VNC连接和RDP连接

网络上的博客关于这方面的博客确实很多,但我也未曾通过一篇博客解决我的问题,因为要么是系统版本不一样,要么是无法连接仓库(repository)或者没有具体的下载地址,或者就是没有实质性的截图,文字的描述无法解决遇到的问题等等,而我确实也参考了众多人的博客,但是亲自配置好了才会这样写出来的

众所周知,有以下三种远程连接linux系统的方式
1. SSH连接,这是比较主流的连接方式,不过只能通过命令行操作
2. VNC连接,使用的是RFB协议来做屏幕分享和远程操作的软件,由著名的AT&T欧洲研究实验室开发,缺点就是使用时安装客户端
3. RDP(Remote Desktop Protocol)远程桌面协议,大部分Windows都默认支持此协议,可以远程接入操作桌面,所以如果通过windows控制服务器的话就不需要额外安装客户端了,缺点就是在linux上配置服务器略微麻烦一点
从我平时的使用上也可以发现,windows的RDP协议传输图像质量好,速度快,操作图形界面没有压力,而VNC的话相对就差一点

VNC

  • 有很多VNC协议的软件,比如tigervnc,realvnc,因为在这次实验中觉得https://centos.pkgs.org这个网站还比较棒!(强烈推荐这个网站下载一些linux中的软件包,尤其是centos直接用yum的话出现的无法连接到…..google.com/….实在太讨厌了)
  • 所以就用了里面的一个tigervncserver
    (url: https://centos.pkgs.org/7/centos-x86_64/tigervnc-server-1.8.0-5.el7.x86_64.rpm.html)
  • 这里给出的网址都是软件详情,而不是直接下载,进去之后下点击里面的二进制文件链接下载
    这里写图片描述
  • 进入下载的文件目录,命令行中输入
yum install [你下载的文件名]

(这里有个小插曲,之前我下载错了,下载成了tigervnc的客户端而不是服务端,当时安装客户端的时候有软件依赖问题,如下图)
这里写图片描述
所以要下载tigervnc-icons(url:https://centos.pkgs.org/7/centos-x86_64/tigervnc-icons-1.8.0-5.el7.noarch.rpm.html
这里写图片描述
安装的时候又有软件依赖问题
所以又要下载libfltk(url:https://pkgs.org/download/libfltk.so.1.3()(64bit)

如果不需要的话就最好啦!

好了,安装好服务端之后

vncpasswd root //为root用户设置vnc密码,如果需要其他用户vnc登入,
               //也可以为其设置密码 passwd user
vim /etc/xrdp/xrdp.ini //把max_bpp=32, 改为max_bpp=24
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target//还有把图形界面设置为默认启动界面
vncsever//新建会话桌面

这里写图片描述
这里写图片描述

  • 在另一个系统上安装vnc客户端,不用局限种类,支持vnc协议就行,我下载的是VNC Viewer

需要注意的是通过VNC连接的话要在后面添加端口号

(端口号就是使用命令vnserver创建的桌面编号,每个远程桌面互不干扰)
这里写图片描述

连接成功!
这里写图片描述

RDP

  • 因为RDP一般都是windows系统才有的,而且微软似乎并没有把它做成单独的一个软件发行,但是在Linux下,我们也是可以找到开源的rdp server的,这就是xrdp
  • 在安装rdp之前需要安装epel软件源,因为官方源中不带这个软件(url:https://centos.pkgs.org/6/epel-i386/epel-release-6-8.noarch.rpm.html
  • 下载之后进入其目录,输入命令
rpm -Uvh [文件名]
yum install [文件名]

这里写图片描述

  • 然后还要导入key才能使用(直接搬运来的)
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
或
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5
 yum install [文件名]

这里写图片描述

 yum install [文件名]

这里写图片描述

  • 比如我下载的就是这三个文件
    这里写图片描述
  • 剩下的一些简单设置
chcon -t bin_t /usr/sbin/xrdp//配置SELinux , 否则可能无法启动xrdp服务,或者启动出错
chcon -t bin_t /usr/sbin/xrdp-sesman
systemctl start xrdp//启动服务
systemctl enable xrdp
systemctl status xrdp.service //如果看到Active则说明正常
firewall-cmd --permanent --zone=public --add-port=3389/tcp //开放3389端口
firewall-cmd --reload

systemctl stop firewalld.service//或者也可以直接关闭防火墙
netstat -antup|grep xrdp //看xrdp是否正常启动

如下图
这里写图片描述

  • 那么怎么连接呢?
    输入命令ifconfig 找到能连接外网的那个网卡,我这里是网卡ens33
    可以看到我的虚拟机ip v4地址为

192.168.171.129

这里写图片描述

  • 然后打开windows中的远程桌面连接(这里用上面的win32应用,win10版本好像用不了)
    这里写图片描述
  • 输入刚刚得到的ip地址,然后再输入连接的账号和密码
    这里写图片描述

    最后大功告成!

    这里写图片描述

需要注意的点:

  1. CentOS 7以下 和 7 的命令有很大不同,尤其是开启防火墙,启动服务这些系统级操作对此实验有很大影响
  2. 当我配置好之后写博客的时候再次连接发现又连接不上了,在我犹豫这篇博客是不是太失败了的时候,认真重新看了一遍,发现我的虚拟机IP地址改变了,换个ip重新连接就好了
  3. 有时候用VNC连接会出现连接上但是黑屏的情况,解决办法:https://www.linuxidc.com/Linux/2017-01/139995.htm

参考资料
https://blog.csdn.net/yasi_xi/article/details/11746255
https://www.aliyun.com/jiaocheng/186598.html
http://www.cnblogs.com/kerrycode/p/3315793.html
https://blog.csdn.net/txz317/article/details/51734222

猜你喜欢

转载自blog.csdn.net/jankingmeaning/article/details/82533679