搭建简易的私有云
什么是「私有云」?
云服务一般有三种部署方式:
-
公有云(Public Cloud)
公有云由云服务提供商控制,对公共互联网开放。用户只需为其使用的资源(包括服务器、存储容量和应用等)付费,而无需担心具体的维护问题。
-
私有云(Private Cloud)
私有云是为单独的用户或组织构建的,可在公共互联网或内部网络中部署。用户可根据实际需求进行定制化的部署和管理。
-
混合云(Hybrid Cloud)
混合云是以上两种方式的组合,集合了公有云和私有云的优点。
![]()
(图片来源:Sam Johnston)
私有云的搭建过程
环境:macOS,VirtualBox。
-
创建 Linux 虚拟机(以 Ubuntu 为例)
在 Ubuntu 官网下载 Ubuntu 镜像文件,然后在 VirtualBox 中创建虚拟机(命名为 ubuntu-base,以区别其他虚拟机)。

-
配置虚拟机网络
查阅 VirtualBox 的文档可知,VirtualBox 一共提供了 7 种网络连接方式,其中较常用的几种连接方式如下:

查看 ubuntu-base 的网络设置,发现已经存在一块连接方式为 NAT 的网卡:

由上面的表格可知,虚拟机能通过该网卡访问到主机(进而访问到外网),而虚拟机之间不能通过该网卡相互访问。
接下来,在
菜单—>管理->主机网络管理器中创建一块名为 vboxnet0 的虚拟网卡,并将 IPv4 地址设置为192.168.100.1/24,作为主机的地址。
在终端中使用
ifconfig命令就可以找到该网卡:
此时可以在 ubuntu-base 中启用第二块网卡(接口就是刚才创建的虚拟网卡),并将连接方式设置为仅主机(Host-Only)网络。由上面的表格可知,主机能通过该网卡访问虚拟机,虚拟机之间也可以通过该网卡通讯。

启动 ubuntu-base,并在终端中输入
nmtui打开网络管理器。选择「编辑连接」后可看到两个以太网连接:有线连接 1(enp0s3)和有线连接 2(enp0s8),分别对应网卡 1 和网卡 2。
设置有线连接 2 的 IPv4 地址为
192.168.100.42/24(与主机地址192.168.100.1/24在同一网段),作为第二块网卡的地址。
在主机的终端中输入
ping 192.168.100.42能够 ping 通,说明主机可以访问虚拟机 ubuntu-base。
在虚拟机的终端中输入
ping 192.168.100.1能够 ping 通,说明虚拟机能够访问主机。
在虚拟机的终端中输入
ping whichxjy.com能够 ping 通,说明虚拟机能够访问外网。
-
通过 ssh 连接虚拟机
首先检查虚拟机中是否开启了 ssh 服务:在终端中输入
ps -e | grep ssh,如果结果中只有ssh-agent则说明 ssh 服务器未开启。此时可通过/etc/init.d/ssh start指令开启 ssh 服务器。如果结果显示「没有那个文件或目录」,则说明该虚拟机并未下载 sshd,需要通过sudo apt-get install openssh-server下载相应的安装包之后再开启 ssh 服务。如果想要进一步确认,可以输入service ssh status指令,如果显示为active则说明 ssh 服务器已正常开启。确认虚拟机开启 ssh 服务后,在主机终端上输入
ssh 192.168.100.42 -l whichxjy访问虚拟机,其中192.168.100.42是前面设置的第二块网卡的地址。
-
复制虚拟机
在 VirtualBox 中右击 ubuntu-base,选择复制,将新的虚拟机命名为 ubuntu-clone。注意需要选择「为所有网卡重新生成 MAC 地址」,并选择「链接复制」(关于完全复制和链接复制的区别可见文档:Cloning Virtual Machines)。

启动 ubuntu-clone,发现主机名和 ubuntu-base 一样。为了区分这两个虚拟机,可以通过
sudo vim /etc/hostname指令打开/etc/hostname来修改主机名。
与此同时,通过
sudo vim /etc/hosts指令打开/etc/hosts来修改 IP 地址与主机名之间的映射。
这次我们用另一种方式来配置网卡:通过
sudo vim /etc/network/interfaces指令打开/etc/network/interfaces文件并修改第二块网卡的 IP 地址为192.168.100.43/24。
重启该虚拟机,在终端中输入
ping 192.168.100.1能够 ping 通,说明虚拟机能够访问主机。
在该虚拟机的终端中输入
ping whichxjy.com能够 ping 通,说明该虚拟机能够访问外网。
在主机的终端中输入
ping 192.168.100.43能够 ping 通,说明主机可以访问虚拟机 ubuntu-clone。
在主机终端上输入
ssh 192.168.100.43 -l whichxjy访问虚拟机。
主机可通过 ssh 对 ubuntu-clone 进行一系列操作:

参考
Cloud Computing - Wikipedia
What is a private cloud computing? - CloudPro
What is a private cloud? - Microsoft Azure
Public Cloud vs Private Cloud vs Hybrid Cloud - IntelCanada
How to Create a Network of Machines in VirtualBox with SSH Access - Corey Schafer