网络上的博客关于这方面的博客确实很多,但我也未曾通过一篇博客解决我的问题,因为要么是系统版本不一样,要么是无法连接仓库(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
- 发现然后还需要安装xorgxrdp(rul:https://centos.pkgs.org/7/epel-x86_64/xorgxrdp-0.2.7-1.el7.x86_64.rpm.html)
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地址,然后再输入连接的账号和密码
最后大功告成!
需要注意的点:
- CentOS 7以下 和 7 的命令有很大不同,尤其是开启防火墙,启动服务这些系统级操作对此实验有很大影响
- 当我配置好之后写博客的时候再次连接发现又连接不上了,在我犹豫这篇博客是不是太失败了的时候,认真重新看了一遍,发现我的虚拟机IP地址改变了,换个ip重新连接就好了
- 有时候用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