![为学生设置 VPS](https://linux22.com/image/1291712/%E4%B8%BA%E5%AD%A6%E7%94%9F%E8%AE%BE%E7%BD%AE%20VPS.png)
我是社区大学的信息技术讲师。我正在寻找一种解决方案,为学生提供一个虚拟专用服务器,让他们可以在整个学期内使用自己的 Linux/其他设备。
我们没有很多公共 IP,因此解决方案最好使用一个公共 IP。IBM?VMware?Virtuozzo?OpenVZ?还有什么?您有什么建议?
免费为佳。
答案1
为什么您的学生需要公共 IP 地址——他们的 VPS 需要在校园网络之外可见吗?为什么不让学生安装自己的 VM(这可能很有教育意义),而不是使用预先生成的 VPS?如果您使用 VirtualBox 或 KVM 或 QEMU 等免费软件,他们甚至可以复制他们的 VM 并将其放在便携式驱动器上带回家玩。
来自商业玩家的低带宽 VPS 托管黍属和瑞木托管(列举两项我使用过并取得巨大成功的服务)如果您的学生决定他们想要公开展示,费用可以低至每月 15 美元。您甚至可以询问他们是否提供教育折扣。您不一定需要在课程中提供公共 IP(这需要实际成本)。
鼓励学生使用真实托管网站的好处:他们可以在课程结束时保留自己的个人服务器。
答案2
有许多免费/免费选项,但任何建议都很大程度上取决于您希望用户能够使用虚拟机做什么以及您自己拥有或本地可用的现有操作系统和虚拟化体验,因此您需要提供更多详细信息才能获得真正有用的答案。例如,虚拟机需要运行哪些操作系统是至关重要的信息。
关于 IP 地址,虚拟机是否需要公开寻址?如果不是,您根本不需要任何公共地址,只需使用您的私有范围即可。如果您的私有范围已满,请考虑扩展它 - 如果您的网络使用 DHCP 配置每个主机地址,这应该很容易做到(但如果一切都有静态配置,这将是一项漫长的工作)。
如果学生的机器确实需要公开访问,那么就取决于需要从公共互联网访问什么。HTTP?SSH?对于 HTTP,您可以为每台机器分配一个子域(即 student0001.somedomain.tld),并让一台机器(可能是 VM 主机)运行类似 nginx 的程序作为反向代理,以将正确的请求传递给每台 VM - 这只需要一个 IP 地址(以及子域的 DNS 条目和反向代理上的几行配置)。
答案3
首先,这绝非易事。我建议你最好去咨询一下,如果你在英国,我很乐意为你提供帮助!
话虽如此,我会通过以下方式来解决这个问题:
人们为什么需要自己的 VPS?他们需要互联网访问吗?您是否需要人们能够从网络外部访问他们?这将决定对公共 IP 还是私有 IP 的需求。
您需要根据使用情况和学生数量来选择要提供的资源。测试可能需要 256-512MB 的 RAM 和 20GB 的硬盘 - 开发或更多可能需要 1-2GB 的 RAM 和 60+GB 的硬盘...
在此之后,您是否希望同时打开它们,或者在人们需要它们之前进行大量工作并仅打开所需的功能。
如果您想要在任意时间运行某些虚拟机,您可能需要使用更少的设备和一些额外的硬盘,启动和停止虚拟机会非常耗费工作量,但是,这样可以节省数千美元的硬件成本,这并非不可能。
如果你想一次性完成所有事情,那么根据学生的数量,这可能意味着需要大量的硬件设备。
在大多数情况下,我会为该项目创建一个新的 IP 范围,您要么希望在子网中为机器本身的虚拟机管理程序保留一些地址,要么为不同的子网保留一些地址。
至于虚拟机管理程序本身,对于付费解决方案,ESX/VSphere 是最佳解决方案 - 您可以将其加载到每台机器上,并在所有可用的机器上使用功能和负载平衡。它是迄今为止最完整的解决方案……但也是最昂贵的到目前为止。
接下来,我个人会选择免费的 Microsoft Hyper-V Server。Hyper-V 服务器与 Powershell 结合使用时,非常适合编写脚本。如果您已设置好硬件和环境,则只需很少的工作即可设置所有机器 - 话虽如此,Hyper-V 上的 *nix 性能可能会有问题(取决于您与谁交谈)。
老实说,这没有简单的答案,我们需要了解更多信息才能给您一个严肃的答案,但我希望这能让您走上正确的道路。