惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
腾讯CDC
V
V2EX
Martin Fowler
Martin Fowler
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
博客园 - 【当耐特】
Cisco Talos Blog
Cisco Talos Blog
The Hacker News
The Hacker News
K
Kaspersky official blog
Security Latest
Security Latest
H
Help Net Security
博客园_首页
美团技术团队
Spread Privacy
Spread Privacy
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
G
Google Developers Blog
NISL@THU
NISL@THU
爱范儿
爱范儿
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
N
News and Events Feed by Topic
P
Privacy International News Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
P
Palo Alto Networks Blog
G
GRAHAM CLULEY
Hacker News: Ask HN
Hacker News: Ask HN
I
InfoQ
The Cloudflare Blog
F
Full Disclosure
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
N
Netflix TechBlog - Medium

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间 在docker中一键搭建IPSec/IKEv2 VPN | 泠泫凝的异次元空间
Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间
Lxn's Area · 2025-01-17 · via 泠泫凝的异次元空间

创建于2025-01-17

2026年6月11日更新

预计阅读14分钟

全文约4k字


从零开始部署一套生产环境可用的XenDesktop云桌面基础架构

环境介绍

服务器:Dell PowerEdge R410
CPU:2×Intel Xeon E5504(4 Cores 4 Threads Per CPU)
内存:4×8G non-ECC DDR3
存储:1×1TB Seagate HDD
网卡:板载BCM5716双口千兆电口网卡

Tips:真不是故意用这种电子垃圾,是手头真没有闲着的机器了。这里面唯一的一块硬盘甚至还重摔过…本次部署过程中也是难受的很,随机读写性能基本等同于没有,IO Wait最高的时候高达8772%…唉

XenServer版本:7.5(buildDate: 2018-05-21)
XenDesktop版本:3.15
域控服务器操作系统:Windows Server 2012 R2
SQL Server版本:2014.120.5000.0

需要注意的是本文所部署的方法在安全方面并非最佳实践,如需强安全性还需做各种用户权限和网络的隔离等,以及最新版本的软件更新。

主机分配

序号用途IP地址操作系统配置
1虚拟化192.168.50.101XenServer 7.52c4g
2授权服务器
(本文不涉及)
3域控服务器192.168.50.161Windows Server 2012 R22c4g
4DDC与数据库192.168.50.162Windows Server 2012 R22c4g
5客户机192.168.50.171-180Windows 10 LTSC2c4g

上述分配均为本次实验环境的分配,如果并发数量比较大环境比较多,建议将域控、SQL、DDC、授权服务、StoreFront等均分开部署。

本次部署中我对所有主机的IPv6功能均进行了关闭。

部署XenServer

详见Citrix XenServer 7.2 部署教程

其中激活服务器可以先不弄,XenServer默认拥有30天的试用期,激活服务器可以稍后和DDC做在一起(最佳实践也是如此),最后再激活即可。

部署Active Directory(域控)服务器

如果生产环境已经有了域控服务器则可以使用现成的域控制器。

  1. 新建Windows Server 2012 R2的虚拟机,命名为“AD Server”

    接下来就是正常安装Windows Server 2012,安装带GUI的Standard版本即可。

    正常进系统之后安装Guest-Tools,如果是Windows Server 2016及以上版本可能会要求重启1-2次。

    随后固定IP地址,禁用防火墙,随后重启。

    此时虚拟机应该已经可以切换到RDP模式了。
  2. 启用AD域控服务
    打开服务器管理器,选择右上角“管理”,选择“添加角色和功能”。
    勾选安装“Active Directory 域服务”,然后下一步。

    随后一直下一步等待直至安装完成。
  3. 配置域控
    点击服务器管理器右上角带叹号的小旗子,选择配置域控制器,然后在第一步选择“添加新林”。
    根域名随便输入,规则是尽量不要与实际存在的域名重合,但也不要太古怪。

    域控制器选项中设置还原模式的密码,其余选项保持默认。

    其余选项均保持默认,进入先决条件检查,通过后直接安装即可。

    直接点击安装,安装后会自动重启。

    重启后登录方式自动变为域登录,密码仍是一开始设置的Administrator账户的密码。
  4. 新建DDC服务器的用户
    打开Active Directory用户和计算机,展开自己的域,在Users下面创建一个新用户,该用户之后将用于DDC服务器和SQL服务器。

    在下一个设置密码的页面中勾选“用户不能更改密码”和“密码永不过期”

    下一步等待该用户创建好即可。
  5. 打开控制面板-Windows 防火墙,将“域网络”的防火墙也关闭。

域控服务器的部署到这里先告一段落。

部署DDC服务器基础环境

另起一台Windows Server服务器,我这里仍然使用虚拟机和Windows Server 2012 R2,Windows安装过程不再赘述,详见上一节第一步。

  1. 修改网络配置,固定IP,将域控服务器的IP作为DNS。
  2. 加入域

    出现“欢迎加入xxxx域。”的提示即成功,然后重启。
  3. 禁用原账户并将域账户加入管理员
    在重启后,登录时会让你登录到域账户,此时不要登录,选择返回箭头(Windows Server 2016及以上版本是左下角登录到其他账户),然后选择其他用户,在用户名处输入“计算机名\Administrator”,密码输入一开始设置的密码,随后点击登录。

    登录进桌面之后右键开始按钮,选择“计算机管理”,找到“本地用户和组”,“组”,然后双击右侧“Administrator”组,下方添加,输入对象名称处输入刚才在域控服务器上创建的用户名,然后点击“检查”补全。中间可能会要求输入域账户的密码,输入刚才在域控服务器上创建的用户名密码即可。

    随后注销Administrator账户,使用域账户登录:

    重复上述登录后操作,禁用Administrator账户
  4. 禁用防火墙
  5. 禁用UAC
    启用UAC的状态下在安装DDC时有概率失败,这里提前禁用掉。
  6. 启用.NET 3.5功能
    这一步是SQL Server Studio需要的,如果不安装Studio此步可以跳过。
    打开服务器管理器,右上角管理,添加角色和功能,勾选“.NET Framework 3.5”

    此时在确认页面先停留,在XenCenter中挂载Windows Server的ISO镜像文件,然后添加备用源

    添加好后等待安装完成即可,这一步无需重启。

部署SQL Server

SQL服务器我们这一步安装在DDC服务器上,如果环境比较庞大建议单独部署。

  1. 首先在虚拟机上挂载XA和XD的iso镜像,我们使用镜像中的SQL Server版本。
    如果需要自行下载或需要额外下载SQL Server 2014 Management Studio可以到Download Microsoft® SQL Server® 2014 Express from Official Microsoft Download Center下载。
  2. 选择全新安装
  3. 前面步骤都保持默认选项即可,在Feature Selection部分把右侧所有组件都勾选,其余保持不变,下一步即可
  4. 选择实例名称的时候选择默认实例
  5. 更改服务账户
  6. 修改验证模式为混合模式,然后输入默认的sa账户的密码。如果下面SQL Server Administrator里面是空的的话再点一下Add Current User。
  7. 下一步等待安装完成

  8. 在开始菜单中找到SQL Server 2014 Configuration Manager

    找到Network Configuration,将TCP/IP启用

以下部分为安装SQL Server 2014 Management Studio,不需要可以跳过。

  1. 将安装文件复制到虚拟机中,双击打开,默认是个自解压文件,点击确定提取,然后会自动启动SQL Server的安装向导
  2. 选择向已有实例中添加功能
  3. 勾选Management Tools,然后下一步
  4. 等待安装完成即可

安装好后重启虚拟机

部署DDC

这一步部署Critix XenDesktop的Desktop Delivery Controller(DDC)。

安装DDC

  1. 首先在虚拟机挂载XenDesktop的ISO镜像,然后启动安装。
  2. 选择安装Delivery Controller
  3. 全选核心组件,我这里提前额外单独起了License Manager所以这里就不安装了
  4. 功能保持默认安装Windows远程协助
  5. 因为我这里已经提前禁用了防火墙所以这里选择哪个都不重要,建议选择自动将规则添加到防火墙,以便后续再开启防火墙时保持端口是放通的
  6. 检查安装配置,没有问题就直接安装即可

    中间可能会要求重启1-2次,重启后安装会自动继续,中间不要卸载ISO镜像
  7. 安装成功后选择不连接到Citrix
  8. 最后安装成功,勾选启动Studio进入初始化设置

初步配置DDC

  1. 在Citrix Studio中,选择“向用户交付应用程序和桌面”
  2. 选择“完整配置”并填入站点名称,站点名称可以随意填写
  3. 数据库配置中选择在Studio中创建和设置数据库,然后将本机IP加一个反斜杠填入“位置”处。由于我们安装SQL数据库时使用了默认实例,因此斜杠后留空。然后点击下一步,然后稍等片刻。
  4. 连接到许可服务器,因为我这里许可服务器单独部署了,所以会额外询问;不清楚跟随DDC一起安装的话会不会询问。
  5. 连接服务器位置选择服务器类型,我这里是XenServer;连接地址输入XenServer管理IP;用户名和密码填入XenServer的用户名和密码;连接名称随便写;其余保持默认。
  6. 存储部分我们选择本地存储,如果有共享存储则选择共享存储。
  7. 选择数据存储位置的部分按照自己实际情况选择,一般来说是系统放在固态硬盘,个人数据放在机械硬盘。我这里就一块盘所以保持默认了。
  8. 选择出口网卡,我这里选择了eth1作为出口网卡,也是按照实际情况选择即可。
  9. 附加功能是否启用对实际使用关系不大,如果需要用就启用,我这里就跳过了。
  10. 最后检查摘要,没问题确认安装等待安装完成即可,安装过程相对漫长,可以稍等片刻。

部署客户虚拟机模板

按正常流程新建虚拟机然后安装操作系统,此处略过。

  1. 安装好操作系统后先安装Guest Tools

    中间可能会有1-2次重启。
  2. 修改网卡IP,DNS修改为域控制器的IP
  3. 回到AD域控制器,新建一个用户,该用户仅用于模板机
  4. 将模板机加域,使用刚才创建的账户登录,然后重启
  5. 重启后仍使用原账户登录,打开计算机管理-本地用户和组-组,将刚才在域控上新建用于模板机的账户加入Administrators组
  6. 注销原账户,使用刚才在域控上新建用于模板机的账户登录
  7. 使用域账户登录后禁用原机账户防止误登录到原账户
  8. 禁用防火墙
  9. 挂载XenDesktop的ISO镜像,选择XenDesktop启动,安装代理(VDA)
  10. 选择创建主映像
  11. 核心组件保持默认
  12. 附加组件全选就行
  13. 输入DDC的地址,仅接受域名,不支持IP地址
  14. 客户端功能根据实际情况选择
  15. 防火墙规则自动添加或者手动添加无所谓,因为我们前面已经禁用防火墙了
  16. 检查摘要没问题直接下一步安装即可,最后Smart Tools不连接到Citrix,安装完成后重启即可。
  17. 重启完成后进入模板机,正常安装软件和个性化配置,完成后关闭虚拟机。

虚拟云桌面交付

创建DHCP服务

该步骤仅用于没有DHCP的网络环境,如果你的网络环境中已经有了能够自动下发DHCP地址的DHCP服务器,请跳过此步。

本节将在当前网络环境中创建一个基于Windows Server的DHCP服务器。Citrix虚拟机云桌面下发时依靠DHCP分配地址,连接时依靠网络进行连接。

  1. 在任意具备与客户虚拟机在同一网络平面的网卡的服务器(我这里使用域控服务器)上打开“服务器管理器”,右上角管理-添加角色和功能,在“服务器角色”页面找到“DHCP服务器”,勾选并完成安装。
  2. 随后在服务器管理器-左侧栏找到DHCP,默认状态下要求配置安全组

    默认情况下使用默认配置即可
  3. 打开服务器管理器-右上角工具-DHCP,可见如下界面

    右键IPv4,新建作用域,下一步之后输入作用域名称和说明,随便写就可以

    随后配置IP分配范围和子网掩码

    配置排除范围,一般不需要配置

    设置租期,一般按照云桌面的使用频次和轮换次数确定

    现在配置网关和DNS,这个建议选择现在配置以便将网关和DNS都分发下去,一个是方便加域,一个是方便上网

    配置网关,就一个网关的话就写一个就行

    域名和DNS会继承本机网卡的值,一般没有问题的话用默认获取的就行,直接下一步

    WINS服务器一般用不到也没有,直接全留空下一步

    配置好后激活作用域就开始分发地址了
  4. 开始分发后即可在对应作用域下面的“地址租用”部分查看已经分配的IP地址和计算机信息

调整权限

这一步主要是解决后面可能无法创建虚拟机,提示“没有权限在默认OU或者指定OU创建计算机”的问题。

在域控服务器上打开“Active Directory用户和计算机”,将刚才创建的ddc用户加入Domain Admins组,然后确定保存,最后重启DDC服务器

创建计算机目录

  1. 在DDC服务器上打开Citrix Studio,创建计算机目录,操作系统选择桌面操作系统
  2. 选择“进行电源管理的计算机”和Citrix MCS
  3. 桌面体验按照实际需求选择
  4. 主映像选择刚才创建的模板机
  5. 创建多少台虚拟机按照自己的需求填写,我这里物理机性能不太行,就先创建两台测试了
  6. 计算机账户位置保持默认即可,账户命名方案按提示输入
  7. 最后检查摘要,填写计算机目录名称

    然后等待虚拟机创建完成

创建交付组

  1. 在Citrix Studio中右键点击左侧“交付组”,“创建交付组”,选择刚才创建好的计算机目录
  2. 选择“交付桌面”
  3. 用户部分根据实际情况选择OU,因为我这里的AD域专用于云桌面所以选择了允许全部用户
  4. 分配规则按照实际情况选择分配给哪个用户或者所有可登录的用户都能得到分配
  5. 检查摘要,没问题直接点击完成

检查StoreFront设置

在DDC服务器上,打开Citrix Studio,左侧栏选择“Citrix StoreFront”,右侧应该默认已经配置好了一个Store Service,然后在下面详细信息中可以查看Receiver for Web站点,下面的http://xxxxx/Citrix/StoreWeb就是云桌面的入口。

在浏览器打开它就可以看到Receiver for Web的页面。

创建用户

云桌面交付的最后一步是创建最终用户的账户,在AD域控服务器上新建账号,用于登录云桌面。

至此,部署完成。

其他问题

客户机上无管理员权限

确实是没有,我的解决办法是在制作模板机的时候把Domain Users组加入模板机的Administrators组,这样客户机自己也有管理员权限了。不过如此操作是否有安全风险还有待考虑

USB重定向

打开DDC服务器上的Citrix Studio,转到策略,编辑右侧默认策略(Unfiltered),找到“客户端USB设备重定向”,编辑为“启用”。

随后重新连接云桌面,此时在Desktop Viewer上即可看到设备重定向及设备管理选项。

Citrix Receiver 无法添加 HTTP 商店

打开Citrix Receiver后添加http连接的StoreFront提示无法添加,需要额外操作。

那么额外操作是什么呢?

这里分两种情况,客户机是32位还是64位。

  1. 打开注册表编辑器,定位到如下路径:
    x86
    1
    HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Dazzle
    x64
    1
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle
    其中AllowAddStore值更改为AAllowSavePwd值更改为A
  2. 再定位到如下路径:
    x86
    1
    HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\AuthManager
    x64
    1
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\AuthManager
    然后新建字符串ConnectionSecurityMode,值设定为Any

最后重启Citrix Receiver即可。

 上一篇

XenServer VDI