最近在学习搭建云桌面系统,这里记录一下自己的搭建笔记
搭建的目标:
1、用户可以远程访问我创建的PC虚拟机。
2、创建的所有虚拟机系统都可以通过NAT实现访问外网。
搭建过程:
1、安装GIT
打开GIT官网安装https://git-scm.com/downloads/
安装完成后的效果:
2、下载对应镜像
a、系统镜像
b、VMware Workstation
创建虚拟机:
下载完系统镜像之后,我们需要在VM中创建虚拟机,并安装CentOS系统,根据提示进行安装,在安装过程中,我们需要设定ROOT密码,并且创建用户
配置网络
安装完成后,我们需要网络进行配置
开启网络服务
因为我们的虚拟机选择的是 NAT 网卡模式,进入系统后,系统应该是可以访问外网的,但在执行完 ping www.baidu.com
后,我们发现系统返回以下的错误。
这是因为 CentOS7 并未默认开启网络服务。为了开启网络服务,我们需要修改 /etc/sysconfig/network-scripts/
目录下的网卡配置 ONBOOT
条目。ls /etc/sysconfig/network-scripts/
执行 ls
命令,结果如上图,其中的 ifcfg-ens33
即为网卡配置文件,我们使用 vim
修改其中的 ONBOOT
条目为 yes
。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
原本是 ONBOOT=no ,将其修改为以下形式
ONBOOT=yes
修改完 ONBOOT
的值为 yes
后,我们重启网络服务,使更改生效。
service network restart
经过上述的设置,现在系统已可正常访问外网。
配置虚拟网卡
为实现云桌面服务,主机需要创建两张虚拟网卡,一张为 NAT 模式,一张为仅主机模式。NAT 模式的虚拟网卡使子网内的所有虚拟机可共享主机网络,即可访问外网;仅主机模式的虚拟网卡则作为局域网的 DHCP 服务器。
在 VMware 的 Edit -> Virtual Network Editor 窗口中,我们可以看到 VMware 已自动创建上述两张虚拟网卡,其中 VMnet1 为仅主机模式,VMnet8 为 NAT 模式。
仅仅设置了主机的虚拟网卡是不够的,我们还需要为虚拟机添加新的虚拟网卡(由于我们使用 NAT 模式创建了虚拟机,故虚拟机已经有一张连接 VMnet8 的 NAT 虚拟网卡),我们需要将新添加的虚拟网卡设置为仅主机模式,让其连接 VMnet1 。
我们可以在 VMware 的 VM -> Settings 中为虚拟机创建和配置虚拟网卡。
更新内核
在虚拟机能够正常访问外网的情况下,我们对操作系统内核尝试进行升级。
yum install wget
# 升级 OS 内核
yum update
更新 yum 源
CentOS
已内置 163 源 ,若要更新至其他源,可按照如下步骤操作:
- 首先备份
/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载对应
repo
文件,放置于/etc/yum.repos.d/
目录
mv ***.repo /etc/yum.repos.d/CentOS-Base.repo
- 生成
yum
缓存
yum clean all
yum makecache
SSH 登录
在配置完虚拟机的网络后,我们可以尝试在主机上使用 SSH
连接到虚拟机。首先,我们需要执行 ip addr
命令,获取虚拟机的 IP 地址,如下图所示,当前虚拟机的 IP 地址为 192.168.11.128
。随后,我们在主机的 Bash
上,执行 ssh root@192.168.11.128
命令,输入密码后,即可进入虚拟机的远程 CLI 中。
远程桌面登录
安装 GUI 界面,这里我们选择的是 GNOME
的桌面图形界面。
执行以下命令,安装 GNOME Desktop
。
yum groupinstall "GNOME Desktop"
安装完成之后,开始设置 GUI 界面开启自启动,然后重启生效。
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
shutdown -r now
重启完成后,点击 centos
的用户头像(由于我们设置其密码为空,故点击即进入系统桌面),即可进入系统桌面。
在安装完图形化界面后,我们需要进行远程桌面的相关配置。我们知道,Windows 自带的远程桌面协议是 RDP
协议,这种协议是 Linux 原生不支持的,因此我们需要使用第三方软件,xrdp
是一个很好的选择。
# 进入 root 模式:执行 su 命令,输入密码
yum install -y epel-release
# 这一步很关键!
yum -y install
https://archive.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/x/xorgxrdp-0.2.9-1.el7.x86_64.rpm
# 安装 xrdp 和 tigervnc-server
yum -y install xrdp tigervnc-server
安装完 xrdp
和 tigervnc-server
后,我们启动 xrdp
服务,并添加至开机自启动项。
# 启动 xrdp 服务
systemctl start xrdp
# 添加 xrdp 至开机自启
systemctl enable xrdp
随后,我们执行 netstat -antup | grep xrdp
命令查看 xrdp 服务的运行状态。
从上图可知,xrdp
服务监听了 3389
端口,这端口号其实也是 Windows 下的远程桌面监听端口号。
我们需要配置 firewall
防火墙以及 SELinux
安全上下文。
# 放通 3389 端口上的所有 TCP 请求
firewall-cmd --permanent --add-port=3389/tcp
# 重载防火墙,使规则生效
firewall-cmd --reload
# 设定 xrdp 和 xrdp-sesman 的目标安全环境
chcon --type=bin_t /usr/sbin/xrdp
chcon --type=bin_t /usr/sbin/xrdp-sesman
在执行完上述指令后,我们即可在 Windows 的远程桌面连接工具下,享受虚拟机所提供的远程桌面服务。
用户名输入 centos
,密码为空,点击 OK
后,即可进入虚拟机远程桌面,如下图。
文章评论