• 从零开始部署小型企业级虚拟桌面 -- Vmware Horizon View 6 For Linux VDI


    环境说明

    注,本套环境所用机器全部是64位的。

    管理服务器载体:安装win7操作系统,通过VMware Workstation安装4台虚拟机,用作vCenter,Connection Server,Domain Control三台管理服务器,以及一台模板服务器。

    虚拟桌面载体:安装ESXi操作系统,用来存放虚拟机。

    终端机若干:安装Win7操作系统,用来安装View Client软件,连接服务器上的虚拟桌面。

    网络说明:由于本环境仅限内网访问,故为保证整套环境网络拓扑简单,所有设备、系统均为单网卡,且都在同一网段内。

    拓扑图

    蓝色图形为实际机器,绿色图形为虚拟机,黄色图形为软件。

    名词解释


    DC服务器:安装了Windows Server 2008 R2 SP1系统,并安装了Domain Control的服务器。

    VC服务器:安装了Windows Server 2008 R2 SP1系统,并安装了vCenter的服务器。

    CS服务器:安装了Windows Server 2008 R2 SP1系统,并安装了Connection Server的服务器。

    模板服务器:安装了ESXi5.5系统,并在上面部署了Rhel6.6系统模板虚拟机的服务器。

    管理服务器载体:普通Win7系统,通过VMware Workstation搭建了上面四台服务器的物理主机。

    虚拟桌面载体:安装了ESXi5.5系统,并在上面部署了很多台Rhel6.6系统虚拟机的服务器。


     ESXi5.5:VMware公司的产品,完全可以理解为操作系统,版本为5.5。安装这种系统后,界面类似一个文字终端,可以利用vSphere Client连接过去进行图形化管理,如建立、删除虚拟机,更改配置,增删硬件等。但一个vSphere Client同一时间只能连接一台ESXi主机,如果想实现批量管理,可以搭建一台vCenter服务器,由vSphere Client连接到vCenter服务器上后,同时管理多台ESXi主机。

    这样做的好处,使得原来的“硬件-->操作系统-->虚拟化软件-->虚拟机”这种结构,变成了“硬件-->虚拟化软件-->虚拟机”,虚拟化软件直接分配硬件资源给虚拟机,省去了操作系统这一层的占用。

    ESXi的格式为iso,大小仅330M,利用老毛桃、U大师等软件,将本镜像拷贝到U盘里并制作成启动盘,就可以此操作系统安装在服务器上。但是官方发布的安装包只支持服务器,如果要安装的PC机上面,需要自己手工注入对应的vib格式的驱动包。本教程中,卓克已制作了全驱动包(25个vib文件)的整合版,各位看客可直接下载使用。

    vSphere Client:VMware公司的软件,安装在windows操作系统上的一个小软件,主要的作用是用来连接ESXi服务器,并管理其中的虚拟机。或者连接到vCenter服务器,同时管理多台ESXi主机。

    VMware vCenter:VMware公司的软件,用来同时管理多台ESXi主机,可以通过vSphere Client连接到vCenter服务器上,同时对多台ESXi主机进行图形化管理。vCenter也提供网页方式来进行访问。

    Domain Control:微软的产品,即著名的域控制器。域的一个作用就是用户管理,比方说你有10台电脑,你想在10台电脑上分别建立5个相同的账户,那你是不是要每个电脑都要重复的建立5个用户?但如果有一台服务器建立了一个域,10台电脑都加入了这个域,那么只要在域服务器上建立5个用户,并赋予相关的权限,就能拿着这5个账号登陆任何一个有权限的电脑了。嗯……有点像统一密码管理器的作用。当然域的作用远不止于此,但这样方便从未接触过的人理解。


    Connection Server:VMware公司的软件,属于Horizon View中的一块内容,用于处理云终端到虚拟机的连接。可以理解为虚拟机到云终端之间的一个桥梁。

    vComposer:VMware公司的软件,即View Composer,和vCenter可以安装在同一台服务器上,用来管理虚拟镜像,节约磁盘资源。

    View Agent:安装在虚拟机上(Linux或者Windows)的小软件,作用不用多说也都懂。

    View Client:用于连接虚拟桌面的软件,可以安装在Linux、Windows、Android、IOS等操作系统上。


    云终端:叫法不一,零终端、云终端、瘦终端、瘦客户机等等。其实就是用于连接虚拟桌面的小设备,一般在上面装个操作系统,然后装个View Client,就能像平常电脑一样连接虚拟机了。市面上的云终端,细细分来,大约有三种。

    1,ARM架构云终端:有的厂商又叫其零终端。这种云终端使用ARM架构,由于是精简指令集,所以功耗小,硬件也比较小巧,且价格较低。使用也是View Client For ARM的软件,当然一般厂商会同时安装主流四大平台的软件。

    优点:几箱小(长宽均在15cm左右),便携(可以挂载屏幕后面),功耗小,价格低(400~800)左右,可以连接多种平台的桌面,概念篇中提到的主流四种桌面虚拟化解决方案,基本上都可以支持。

    缺点:低功耗带来的较低的显示性能,并且由于是ARM系统,除了用来连接虚拟桌面,也没有办法干别的事情。另外虽然能支持多种平台,但Client的版本更新一般较慢。例如教程中,由于支持Linux虚拟桌面的Horizon View是最新的6.1.1版本,对应的Client版本为3.4.0,而几家厂商ARM架构的云终端最高只到3.2.0。

    2,x86架构云终端:这种云终端,基本上可以称为瘦客户机了,只不过大家都随便叫罢了。除了几箱小、配置低。和普通PC机比起来也没啥区别。虽然CPU、内存、硬盘的配置都要差很多,但依然可以完整的撑起一个操作系统来。一般在上面装Linux或者Windows,至于连什么虚拟桌面……操作系统能装什么就能连什么。当然如果用View Client,一般还是推荐Windows,要比Linux上稳定一些。

    优点:机箱小(长宽均在在20cm左右),便携(可以挂载屏幕后面),功耗小(25W左右),价格居中(800~1500),除了可以任意连接任何平台的桌面,不用时还可以干些其他的事情,比如下载东西啊、挂QQ啊之类的,反正就一个低配的操作系统,随你怎么玩咯。

    缺点:嗯……还真没怎么有,一般企业也都是用这种的。

    3,芯片云终端:真正的零终端。这种云终端是专门用来连接Horizon View虚拟桌面的,因为它不像上面的靠软件连接,而是靠VMware和Teradici公司合作生产的硬件连接。这种终端在视频处理性能上是前两种无法比的,一般对显示性能有要求的(如多媒体处理,就是视频处理、3维建模等)公司才会考虑。

    优点:机箱小,便携,功耗小,显示性能较高

    缺点:贵(2000+了都,因为需从国外进口芯片,且只有那一家公司生产),只支持Horizon View的PCoIP协议,且不方便升级。


    VMware workstation:部署虚拟机用的。为了节省资源,3台管理服务器和一台模板服务器都在一台主机的虚拟机上安装。值得注意的是,部署这套环境,最少需要三台管理服务器。一台DC,一台vCenter,一台Connection Server。如果想把他们任何两个装在一起,VMware都会提示“不可以安装在同一台服务器上”。

    Rhel6.6:即红帽6.6企业版,要是红帽都不知道……那还是别看了。

    软件下载

    用到的软件共有以下内容:笔者已在文件上做了详细的标注,链接在最后面。最后的“自定义ESXi5.5镜像”文件夹,适合那些想尝试自己注入驱动的人,里面有详细的步骤说明。至于云终端厂家,是当时自己为采购设备搜集的资料,为避免广告之嫌,还是不上传了。

     

    软件下载地址在这。

    话说……要几个积分……不算过分吧……


    正式的搭建工作开始啦

    一,基础服务器的搭建与安装

    要和大家说一声道歉,接下来的搭建安装应该是篇幅最长的内容,但是我时间实在太少(工作+信仰聚会+陪爱人+偶尔朋友有约+自己一堆俗事),抽出时间来写已是不易。所以文中只提及大体步骤,不演示详细操作。
    我会非常详细认真负责的把每一件要做的事,比如“关闭防火墙”、“安装Win7系统”之类的都写下来,但是没有精力手把手的截图、叙述每个操作应该如何做。所以,可能有些操作需要大家从网上找资料来照着做。为表歉意,提供一个免费上谷歌的方法,方便大家查资料。详情请搜索关键词“谷歌访问助手”,非广告哦。

    1,规划:真正的搭建,少不了第一步的规划。

    在规划中,要把主机名、IP、架构、内存、磁盘空间、CPU等信息都做好规划。因为这套系统,往往会涉及到成百上千台机器的资源分配。一个不小心,可能资源就不够了。本例的规划,可以参考前面的《结构规划》一章,此处不再赘述。

    2,安装操作系统并破解:

    规划好后,就是安装操作系统。

    1. 在管理服务器载体上,安装Win7系统并破解(推荐使用Windows Loader来破解)。
    2. 在虚拟桌面载体上,安装ESXi5.5操作系统。

    在这一步,需要注意的是ESXi5.5默认只支持服务器,而对于PC中的很多驱动并不支持。所以要在PC上面安装,则需要非常麻烦的自己找到相关的驱动包整合到镜像中。不过不用担心,为方便大家使用,我已经制作了包含全部驱动的ESXi5.5镜像包。
    “Windows_loader”以及“ESXi5.5 全驱动包”的详情及下载均有在《结构规划》一章中提到。

    3,配置载体服务器:

    接下来,是按照规划,开始配置两台载体主机的相关内容。其中包括

    1. 更改为对应的IP
    2. 关闭防火墙
    3. 关闭无用的网卡(蓝牙、无线WIFI、virtualbox虚拟网卡等无用网卡,只保留本地网卡,避免网络管理混乱)
    4. 关闭服务器的自动休眠
    5. 更改主机名。

    更改完两台机器的主机名后,重启机器。确认并重启后,检查两个内容:

    1. 查看服务器的主机名是否正确
    2. 相互ping一下,确保可以正常连通

    4,向管理服务器载体中,上传以下几个包

    • workstation安装包
    • Windows Server 2008 R2 SP1的镜像包
    • wampServer的安装包(Windows Apache MySQL PHP Server,主要利用其Apache服务来回传文件)
    • windows_loader的使用包(破解windows用)

    5,在管理载体服务器中,安装workstation

    安装完WorkStation后,还要做以下几个操作:

    1. 输入破解码破解WorkStation(破解码在文件名上,注意,破解版只适合做实验用,正式环境请使用正版)
    2. 编辑虚拟网络,添加本地网卡的桥接网卡
    3. 编辑首选项,默认虚拟机的位置为D:vmboxs,或者E:vmboxs,避免默认在C盘存储虚拟机,否则会占用大量系统盘的空间

    6,利用刚才安装的WorkStation,建立3台虚拟机

    这三台虚拟机,就是用来防止管理服务器的,分别用来作为DC服务器,VC服务器和CS服务器。

    如果你要想虚拟机上可以连接桌面,那这三台服务器一台都不能少。如果只用ssh连过去,那就不需要这么复杂,只需要vSphere Client和EXSi即可。

    新建虚拟机时,主要要执行以下操作:

    1. 选择典型虚拟机
    2. 选择安装WS2008 R2 SP1镜像
    3. 继续时,可能让你填产品密钥,不要填
    4. 继续安装,选择Windows版本为Datacenter
    5. 设置密码为Admin123
    6. 设置虚拟机名为对应的主机名,如DC或Domain Control等。
    7. 建立虚拟磁盘时,大小设置为100个G,并分为多个文件存储,不要一个文件好几十个G
    8. 按照规划,自定义硬件中的CPU、内存等配置
    9. 自定义硬件中,注意修改网卡为桥接模式!

    7,安装wampServer,方便来回传文件

    路径推荐安装在D:wamp路径下,总之要确保两点:

    • 确保英文路径,不能包含中文路径
    • 确保和各种软件、镜像包等处在一个磁盘分区上(利用其上传下载文件时,需要将文件拷贝到其文件夹下,如果不在同一个磁盘分区,拷大文件会非常慢)

    安装完成后启动WampServer,点击右键打开HTML文件路径,做两件事:

    • 新建down文件夹,用来存放供别人下载的文件
    • 将windows_loader放入down文件夹

    接下来,修改apache配置文件。配置文件的路径为%wamp%/bin/apache/apachex.x.x/conf/httpd.conf(%wamp%是你安装wampServer的根路径)

    使用写字板打开配置文件后,

    • 将中的Require all denied改为Allow from all
    • 将<Directory “D:/wamp/www/”/>中的Require local改为Allow from all

    将wamp的所有服务重启(右键点击小图标,重启所有)

    8,配置刚才安装的3台管理服务器

    首先是基础配置

    1. 更改IP地址为规划好的地址
    2. 关闭IPv6功能
    3. 关闭防火墙
    4. 修改主机名(稍后重新启动)

    然后是破解windows,步骤如下

    1. 打开浏览器,访问wampServer所在的IP地址,记得在ip地址后面加一个/down路径
    2. 下载windows_loader,如果需要配置可信站点,则点击添加配置即可
    3. 将文件下载至默认的download文件夹下
    4. 解压缩(即全部提取)下载的文件
    5. 打开软件,点击install,提示重启时,点击restart,此时说明已破解完成并开始重启生效了

    待重启机器成功后,确认一下几点:

    1. 计算机名已改变
    2. 虚拟机之间的IP地址可以相互ping通
    3. windows状态变为已激活,说明破解成功

    二,模板服务器的搭建

    1,向管理服务器载体中上传文件

    需要上传的文件如下:

    • ESXi5.5的镜像包
    • vSphere Client的安装包
    • win7的镜像包
    • View agent的安装包
    • rhel6.6的镜像包
    • windows_loader的使用包(破解windows用)
    • ESXi5.5的crack包

    2,建立模板管理服务器(即MODEL服务器)

    新建虚拟机,并执行如下步骤:

    1. 选择典型虚拟机
    2. 选择安装ESXi5.5镜像
    3. 设置虚拟机名为对应的主机名
    4. 磁盘为300个G并分为多个文件
    5. 自定义硬件中的CPU、内存
    6. 自定义硬件中注意修改网卡为桥接模式的网卡

    3,安装完成后,更改ESXi5.5虚拟机服务器,即MODEL服务器

    1. 用户root的密码为rootroot
    2. 更改IP地址
    3. 更改HOSTNAME
    4. 关闭IPv6

    4,在管理服务器载体上安装vSphere client

    安装完成后,做两件事:

    1. 使用vSphere Client连到刚才建立的ESXi5.5上,然后用此建立模板机器
    2. 运行注册机获得注册码后,配置许可证

    5,建立Windows机器的模板,步骤如下:

    1. 新建虚拟机,名称为Win7-a
    2. 注意显卡内存在40M左右(大分辨率屏幕)
    3. 改IP
    4. 禁用IPv6
    5. 改DNS
    6. 改主机名
    7. 防火墙
    8. 破解windows
    9. 安装vmware tools
    10. 重启
    11. 安装view agent
    12. 重启
    13. 对虚拟机做快照

    6,建立RedHat机器的目标,步骤如下:

    1. 新建虚拟机,名称为RHEL66-a
    2. rhel可以使用rhel6.6(推荐),也可以使用6.5
    3. 注意显卡内存在40M左右(大分辨率屏幕)
    4. 改IP
    5. 禁用IPv6
    6. 改DNS
    7. 改主机名
    8. 改/etc/hosts
    9. 防火墙
    10. 安装jre-7u79-linux-x64.rpm
    11. 安装tools
    12. 关闭SSH登录的DNS验证
    13. 对虚拟机做快照

    快照做完后,还要在服务器root用户的Desktop路径下,添加如下脚本,脚本名称随意。

    #!/bin/bash
    rm -rf /etc/vmware/*
    cd /root/Desktop/VMware-viewagent-linux-x86_64-6.1.1-2772438 && ./install_viewagent.sh -b cs.vmware.com -d vmware.com -u Administrator - p Admin123
    service viewagent restart 

    建立后,不要忘记对该脚本赋予执行权限。

    三,上传搭建管理服务器所需的文件

    模板服务器需要的文件如下:

    • ESXi5.5镜像
    • View Agent 6.1.1 for linux 的安装包
    • View Agent 6.1.1 for windows 的安装包

    VC服务器需要的文件如下:

    • VMware vCenter Server U1 的安装包
    • View Composer 6.1.1 的安装包
    • SqlServer 2008 R2 的安装包
    • Sqlserver 2008 R2 SP1 升级包

    CS服务器需要的文件如下:

    • View Connection Server 6.1.1 的安装包

    四,域服务器的搭建

    1,配置域服务器的DNS

    将域服务器的DNS设置为127.0.0.1

    2,开启服务器的域服务功能

    使用快捷键Win + R调出运行界面,在里面输入dcpromo命令,然后建立域。参考网址

    注意事项如下:

    • 不使用高级模式安装
    • 在新林中新建域
    • 根级域的FQDN填写vmware.com
    • 林功能级别为SqlServer2008r2
    • 勾选DNS服务器
    • 提示“无法创建该dns服务器的委派”时点“是”
    • 目录服务还原模式的管理员密码为Dc123

    3,安装完成后,按照提示重启机器并进行后续配置

    1. 在vmware.com下创建4个OU
    2. View Group下包含View UsersVM ComputerPhysical Group
    3. 创建View用户和组,注意事项如下:
      • 用户组为STU-Users
      • 用户为stu01、stu02、stu03、stu04
      • 用户密码为Student123
      • 用户密码下次无需更改
      • 用户密码永不过期
      • 新建的几个用户包含在STU-Users用户组里面

    4,设置所有机器的DNS

    • 配置三台载体服务器的DNS唯一为DC服务器的IP地址
    • 配置VC/CS/MODEL服务器的DNS唯一为DC服务器的IP地址
    • 配置好后,全部ping一下dc.vmware.com,能pint通则配置成功

    5,配置可逆加密存储密码

    1. 参考网址:https://pubs.vmware.com/horizon-61-view/index.jsp#com.vmware.horizon-view.linuxdesktops.doc/GUID-0E3E3C7F-620B-496F-8C20-BAE6F93B817C.html
    2. 在 AD 服务器上,打开 AD 用户和计算机。
    3. 右键单击 View connections Server的Admin帐户,或创建新的 Linux View Agent 帐户,然后选择属性。
    4. 选择“帐户”选项卡。
    5. 在“帐户”选项中,选中使用可逆加密存储密码设置。
    6. 重置 View Admin 密码。

    6,将相关服务器加入域

    1. 将VC、CS服务器加入域并重启
    2. 使用域管理员用户登录VC、CS服务器
    3. 关闭DC、VC、CS三个服务器的域防火墙
    4. 相互ping一下各自的完整域名,实验是否能相互ping通。
      • dc.vmware.com
      • vc.vmware.com
      • cs.vmware.com

    7,对DC服务器做快照

    使用VMWare WorkStation,对DC服务器做快照。

    8,将载体服务器也加入域?

    抱歉,这一步记不清到底需不需要加入了。

    五,VC服务器的搭建

    1,安装sqlserver 2008 r2

    1. 这是参考网址
    2. 选择功能时全选
    3. 服务账户统一使用 NT AUTHORITYSYSTEM
    4. sa密码为SqlServer123
    5. 管理员为当前用户
    6. analysis services的账户为当前用户
    7. 安装本机模式默认配置
    8. 其他的按默认配置即可

    2,使用sa账户登录,测试是否正常

    1. 打开Microsoft SQL Server Management Studio
    2. 服务器类型为“数据库引擎”
    3. 服务器名称为(local),注意有括号
    4. 身份验证填SQL Server 身份验证
    5. 登录名填sa
    6. 密码为SqlServer123
    7. 记住密码

    3,测试可以连接后,打sp1补丁包

    1. 打开安装包,无脑下一步,然后等着他跑
    2. 更新完成后,再次使用sa账户,测试是否正常登陆

    4,新建ODBC

    1. 这是参考网址
    2. 使用sa登录数据库后,新建两个数据库“vcenter”和“vcomposer”
    3. 在ODBC中新建两个系统DSN
      • 数据源的驱动程序为:SQL Server Native Client
      • 名称同样为“vcenter”和“vcomposer”
      • 服务器为“(local)”
      • 登录方式为sa用户
      • 注意更改默认的数据库为对应的“vcenter”和“vcomposer”

    5,安装VC

    1. 这是参考网址
    2. 挂载VC5.5安装盘,并安装
    3. 密码设置为Admin123!@#
    4. 选择对应的vcenter数据库的DSN
    5. 如果80端口占用,则可能是SQL Server report这个服务在占用,将这个服务停掉即可

    6,安装vComposer

    1. 参考网址
    2. 打开安装文件,若需重启机器,则重启VC服务器
    3. 安装
    4. 按照提示,重启机器

    7,搭建完成后,对服务器做快照

    使用VMWare WorkStation,对VC服务器做快照。

    六,CS服务器的搭建

    1,安装connection Server

    注意,将数据恢复密码设置为Admin123!@#

    2,配置connection Server

    这是参考网址

    首先,使用注册机破解

    然后,添加VC服务器和vcomposer,注意事项如下:

    1. VC服务器的用户名密码分别为administrator@vsphere.local;Admin123!@#
    2. vcomposer服务器的用户名密码分别为administrator;Admin123
    3. View Storage Accelerator启用并且回收
    4. 如果View Storage Accelerator无法显示,或用户名密码错误,则使用浏览器登陆vCenter,查看是否可以正常登陆或报错,或查找相关日志

    3,对服务器做快照

    使用VMWare WorkStation,对CS服务器做快照。

    七,虚拟桌面池的创建

    1,创建windows手动桌面池,然后

    1. 将其加入域
    2. 安装view agent
    3. 在CS中建立手动桌面池,选择vCenter中的机器,选中windows机器
    4. 对桌面池授权

    2,创建Linux桌面池

    1. 利用view agent for linux注册RH6.6虚拟机
    2. 注意注册时的-u输入用户名时,是大写的Administrator
    3. 若注册成功,则在CS中的“已注册的机器”中的“其他”中可以看到机器状态为可用
    4. 注册成功后注销用户
    5. 在CS中建立手动桌面池,选择其他机器
    6. 对桌面池授权

    3,创建大量Linux桌面

    首先要操作的是:

    1. 在新的ESXi服务器中克隆模板Linux机器,并打开机器
    2. 如果机器此前在CS中注册过,则需要在CS中将其移除

    其次要做的是:

    1. 删掉旧网卡,配置新网络IP,DNS
    2. 更改hostname,以及/etc/sysconfig/network中的hostname
    3. /etc/hosts中的IP和name
    4. 重启网络服务
    5. 更改时区等

    然后:

    1. 运行脚本把/etc/vmware/下的所有内容删除
    2. 重新运行install_viewagent.sh注册
    3. 重启viewagent进程
    4. 退出(log out)当前的用户

    注意:如果在CS中不可用,或有其他问题,可以看/var/log/vmware下的日志

    八,配置瘦客户端

    打开小终端,进行如下配置:

    1. 更改系统时间
    2. 更改IP
    3. 更改hostname
    4. 更改DNS解析

    配置好后,在相关的瘦客户端上,安装相应的view client,注意:

    • 对于Linux桌面,agent是6.1.1时,Client for windows 3.4.0可以,3.3.0可以,3.2.0不可以,网页版转不出来。
    • 对于Windows桌面,agent是6.1.1时,Client for windows 3.4.0可以,3.3.0可以,3.2.0可以。网页版转不出来。

    开始使用

    配置好后,就可以尽情的使用,享受桌面云带来的方便了。

    不过我承认这个搭建的过程非常痛苦就是了……

    结语

    花了这么长时间,拖了这么久,总算是搞完了这篇文档。虽然时间关系,搭建部分没有具体的截图和操作步骤,但我已经把关键操作都写了下来,有些操作可以具体再参考其他资料。

    说实话,后台VIM统计的字符数是3w左右,如果真写全的话,加上配图加上命令,加上步骤的详细介绍和原理分析,虽然我已经写了好几天了,但还得再写一星期。

    这些东西,个人感觉让读者搭一套桌面云是足够的。文中还有很多配图和链接,以及做每一步时不要忘记的关键点,当成一篇搭建指导,或者参考手册也是可以的。

    总之,希望对大家能够有帮助。

    最后,我的博客已经迁移了,以后的重点会慢慢放在自己的个人网站上:http://blog.oraant.cc,欢迎踩踩,我觉得排版还是挺漂亮的。

  • 相关阅读:
    [转]让IIS支持FLEX的MXML格式
    将图片上传到数据库 因File.Open遭遇System.UnauthorizedAccessException
    WinForm Control 命名规范
    生成随机但又有规律可循的一组问答数 以提供远程授权服务
    [转]winform 安装部署
    silverlight相关
    [转]对WinForm的App.config文件进行加密
    [转]项目经理是这样当的
    CSS
    SQLServer下 存储过程内 包含事务 及 返回处理是否成功
  • 原文地址:https://www.cnblogs.com/coderzhuoke/p/4828726.html
Copyright © 2020-2023  润新知