免费甲骨文 vps

令人惊讶的是,这不是一个骗局,尽管标题听起来像标题诱饵,但事实上它不是!我们谈论的是Oracle 云免费套餐。不要问我他们是如何完全免费提供它的,尤其是在这样的规格下……有什么问题吗?有可能,但我看不到。也许唯一的原因是甲骨文是另一家渴望获得我们数据的大公司,而我们通过使用他们看似免费的服务将其提供给他们。每个人都必须自行决定是否使用此优惠。在这篇文章中,我将逐步描述如何获得这样的VPS(让我们提醒自己,这个缩写词代表Virtual Private Server)。

我从中得到什么?

我之前已经提到过这一点,但我会在这里重复一遍:像往常一样,我不会玩任何附属链接或合作伙伴计划,这意味着我不会因为向您推荐此解决方案而获得任何经济利益。我博客上的内容不受此类策略的影响,我创建博客的目的只是为了分享知识,以及从日常活动中获得创意。但是,亲爱的读者,如果您愿意在经济上支持我,我将不胜感激!您可以通过我在Patreon和/或Patronite上的帐户来执行此操作。

这是怎么回事?

回到免费VPS的主题,重点是Oracle有一个称为Free Tier计划的东西,可以在注册并通过附加信用卡或借记卡确认身份后访问该计划。您不需要做任何其他事情。一开始,您还可以获得 30 天的额外 300 美元(波兰货币为 1150PLN),可用于测试付费功能。我们不会使用它,因为我们将专注于免费套餐本身,这是一个提供免费(据称永远)VPS 的计划。当然,什么是免费的、什么不是免费的有一定的限制,但我倾向于这个解决方案,因为在我看来,你可以从中得到一台相当不错的机器。额外的好处是,Oracle还提供专用的公共 IPv4 地址,这是一个巨大的优势,甚至是其他提供商的一些付费 VPS 所不具备的。由于这个选项,我们将不必处理任何动态 DNS 配置。

这些限制是指较大的云解决方案提供商喜欢按小时收费。一方面,这对他们和用户来说都很方便,首先可以选择灵活地租用服务,其次可以轻松扩展服务。然而,另一方面,要计算一个月或一年后的实际成本确实很困难。Oracle 有两个主要转换器:OCPU 小时GB 小时OCPU代表Oracle计算单元,在这个转换器中,它是关于我们每月使用多少计算能力。在Oracle免费计划的情况下,我们可以选择使用最多4个配备ARM架构的Ampere A1处理器的虚拟机,每月最多3000个OCPU小时。这取决于您计划在 Oracle 云中运行什么结构,但我会将所有这些参数整合到一台机器中,因此我将创建一个具有 4x OCPU的VPS。GB小时转换器指的是我们使用的 RAM 量。在免费套餐中,我们每月获得 18000 GB 小时,除以一个月中的天数和一天中的小时数,得到每小时 25GB,因此我们可以运行一台或多台机器总共 24GB RAM。当然,我会将整个24GB RAM放入一台机器中。

Oracle免费套餐计划施加的另一个限制是可用磁盘空间量。我们总共有高达200GB 的内存可供数据使用。它可以在机器之间分成 50GB 的部分,也可以作为一个整体分配给一台机器,这正是我想要做的。

还有一个选项可以并行运行最多两个基于AMD处理器的实例,但它们没有与前面提到的规格相匹配的参数,因为它们是只有1/8 OCPU功率和 1GB RAM 的虚拟。因此,我们将坚持基于ARM架构的解决方案。ARM已经上市一段时间了,很难找到尚未移植到该架构且无法在其上运行的软件。提醒一下,整个Raspberry Pi平台及其替代品都在ARM上运行。

注册 Oracle 云

我将把这个过程简化到用截图来丰富的点,一步一步地描述整个过程。

 

  1. 访问oracle.com,找到右上角的“查看帐户”按钮 [1],然后单击它以弹出一个窗口。然后单击登录云按钮 [2]。
  2. 您将被重定向到登录面板。在“还不是 Oracle 云客户?”部分下 ,单击注册按钮 [3]。
  3. 该页面将带您进入注册表,您需要在其中提供基本信息,例如您的国家/地区 [4]、名字 [5]、姓氏 [6] 和电子邮件地址 [7]。您将在您提供的电子邮件地址中收到一封确认电子邮件,因此该电子邮件必须是有效的。请注意,在这些情况下,有些人喜欢使用临时电子邮件解决方案(例如 10 分钟的电子邮件)。最后,确认您不是机器人 [8] 并单击电子邮件验证按钮 [9]。
  4. 检查您的电子邮件收件箱中是否有来自Oracle 的电子邮件,其中包含一个确认您的电子邮件地址的按钮 [10]。就我而言,尽管网站声明电子邮件的有效期为 30 分钟,但电子邮件还是花了相当长的时间才到达。尽管如此,最终还是成功了。您可能需要耐心等待,因为Oracle注册系统似乎有很多错误……不过,您可以花时间完全做其他事情,甚至关闭Oracle Cloud注册表选项卡,因为您将被重定向回来单击电子邮件中的链接后即可。
  5. 确认电子邮件并返回表格后,其范围扩大。我们两次提供该帐户的密码[11]。在“客户类型”部分中,我们选择“个人” [12](有趣的是,这似乎是唯一尚未翻译成波兰语的内容)。在“云帐户名称”字段中,我们输入标识符 [13],我们将使用它来登录,需要注意的是,这不是登录,因为在登录过程中使用电子邮件地址作为登录名。不过这个名字在登录过程中同样重要,所以一定要记住。最后,我们需要设置我们的主要区域[14]。区域选择很重要,因为对于免费帐户,机器只能在我们注册时声明的区域注册。只有付费计划才能访问所有地区。我建议选择离我们居住地最近的地区,所以对于波兰来说,那就是德国法兰克福。购买过VPS的人都知道,在欧洲,最受欢迎的两个地区是赫尔辛基(芬兰)和法兰克福(德国)。
  6. 下一页涉及地址数据,因此我们提供居住地址 [15]、城市 [16]、邮政编码 [17] 和电话号码 [18]。之后,我们通过单击“继续”按钮进行确认 [19]。
  7. 有关地址的部分已折叠,并展开了通过支付卡进行的身份验证。这里,我不确定,因为我没有检查,但我假设卡上的卡信息必须与我们之前提供的一致。我写这篇文章是因为,如果未成年人阅读本文并在父母同意的情况下执行所有这些操作,并且还使用他们的卡,他们必须从一开始就提供父母的信息,而不仅仅是现在。点击“添加付款验证方式”按钮[20]后,会出现一个窗口,本来应该是一个选择窗口,但实际上,它只允许我们选择信用卡选项[ 21],我们也选择了该选项。此时,付款表格将打开,其中预先填写了之前提供的数据,在表格​​末尾,我们应该在一些字段中输入卡号、到期日期和 CVV 号。我们开始付款流程,每个银行的付款流程都会有所不同。我认为对于大多数人来说,我们必须通过电话或交易服务确认这笔交易。验证过程是标准的,Oracle向我们收取大约 1 美元的费用(我这样做时是 4.80 PLN),然后在一秒钟后返回相同的金额。在大多数银行,交易会立即被视为无效,并且根本不会出现在账单上。我还必须补充一点,Oracle在接受某些卡方面相当挑剔,这一点可以从互联网上找到的意见得到证实。虚拟卡或临时卡很可能会立即被拒绝。显然, Revolut也存在一个普遍问题。我尝试使用mBank的卡,但没有成功,所以第二次尝试时,我使用Citi Bank,并且成功了。验证成功后,我们将收到一个绿色窗口…
  8. 关闭上述窗口后,我们返回到注册表,我们的卡应该已添加到其中。我们向下滚动页面,选择激活免费试用版所需的同意 [23],然后使用“启动我的免费试用版”按钮 [24] 完成所有操作。
  9. 现在我们只需等待确认电子邮件,表明我们的帐户已成功创建,并且免费帐户的所有可用资源都已授予我们。

创建 Oracle 云实例

Oracle虚拟机称为实例。在本章中,我们将创建一个如本文标题和上述章节中所述的实例。

  1. 就像上一章一样,我们进入oracle.com,找到右上角的“查看账户”按钮,点击后会弹出一个窗口,我们点击“登录云”按钮。
  2. 我们将被重定向到登录面板,这次我们根据注册时在云帐户名称字段中输入的内容填写云帐户名称[1] 字段(这是我之前写过的重要标识符)。我们使用“下一步”按钮 [2] 进行确认。
  3. 我们进入标准登录页面,在其中输入电子邮件地址作为登录名 [3] 和密码 [4],然后使用登录按钮 [5] 进行确认。
  4. 我们在我们的控制中心。我们通过单击左上角带有三条水平线的按钮来激活主菜单[6]。然后转到计算选项卡 [7],并在其中选择实例[8]。
  5. 我们将被带到管理我们的实例虚拟机)的中心。首先,如果尚未选择,我们需要选择隔间[9],我们只有一个选择,即[我们的帐户名] (root)。在我制作的屏幕截图中,您可以看到已经有一个实例,在您的情况下,它不会在那里,因为我们正要创建它。我们单击“创建实例”按钮 [10]。
  6. 我们将看到一个新的实例创建者。第一步是给它一个名称 [11],它可以是任何名称,并且可能不需要在全局上下文中唯一,只需在我们的实例中唯一。下一步是通过单击编辑[12] 展开“放置”部分。
  7. 放置部分,我们决定在哪个域中创建我们的机器[13]。如果我们之前选择法兰克福作为我们的区域,我们将有三个域可供选择。在我看来,我们选择哪一个并不重要。但是,我们有可能稍后必须回到这个地方并更改域,因为在完成创建实例的过程中我们可能会遇到一个错误,即没有可用的机器具有我们在实例中选择的参数。我们刚刚选择的一个。然后我们从 AD-2 切换到 AD-3,然后重试。
  8. 我们继续进行图像和形状部分并将其展开,就像前一个部分一样 [14]。展开后,我们可以选择操作系统和实例参数我们使用“更改图像”按钮 [15]从操作系统开始。在出现的窗口中,我建议选择Ubuntu [16],向下滚动,选择版本22.04 [17],然后使用“选择图像”按钮进行确认 [18]。现在我们单击“更改形状”按钮 [19],这将打开机器参数配置器。我们选择虚拟机[20],安培[21],检查VM.Standard.A1.Flex [22],将OCPU数量更改为4[23],检查内存量(GB)是否设置为24GB[ 24],然后使用选择形状按钮 [25] 进行确认。
  9. 我们感兴趣的下一部分是网络,我们当然会扩展它[26]。在本节中,我们需要设置三件事。第一个是主网络,可以将其可视化为包含我们所有设备的家庭 Wi-Fi 网络。我们才刚刚开始,所以让我们通过选择创建新的虚拟云网络[27] 并为其命名 [28] 来创建一个新的虚拟云网络。第二件事是子网,它是我们主网络的子集。这就像在家庭路由器上设置地址范围为 192.168.0.1 到 192.168.0.255 的子网一样。在这里,我们还通过选择创建新的公共子网[29] 并为其命名 [30] 来创建一个新子网。我们在网络设置中需要做的最后一件事是确保我们选择了分配公共 IPv4 地址[31],这意味着为我们的实例请求专用的公共IPv4地址。我想再次强调,这是一个很好的选择,但许多付费VPS都没有。
  10. 下一部分是添加 SSH 密钥,您可以猜到,这是关于我们将在SSH通信期间用于身份验证的密钥。Oracle(正确地)不允许仅使用用户名和密码登录服务器,而是要求使用SSH 密钥。创建新实例时,我建议只需选择选项为我生成密钥对,允许Oracle为我们生成一对密钥并下载密钥 –私有[33] 和公共[34]。重要的是不要丢失这些密钥,因为没有它们我们将无法访问我们的服务器。
  11. 最后一部分是引导卷,我们可以在其中增加分配给该实例的磁盘空间。这是通过选择选项指定自定义启动卷大小[35] 并在启动卷大小 (GB)字段 [36]中输入 50 到 200 之间的值来完成的。默认情况下,它是 50GB,但在免费套餐范围内,我们可以使用 200GB,我建议输入该值。我还建议选择本节下部的“使用传输中加密”选项 [37],因为在传输过程中加密数据始终是一个不错的选择。
  12. 就是这样。现在您所要做的就是通过单击创建[38] 按钮确认上述设置,从而在Oracle云中创建您的第一个虚拟机。此时,我们可能仍然会看到我在上面第 7 点中写的消息。在这种情况下,只需选择不同的域并重试即可。

与实例的 SSH 连接

现在看这篇文章,我可以看到它已经变得巨大,而且只会变得更大,因为我想把它变成关于Oracle Free Tier的大型指南。我选择的形式是尽可能明确地书写,但这也无助于这篇文章变得简洁。对不起!

回到主题。在这篇文章中,我已经讨论了如何在Oracle Cloud中创建帐户以及如何创建第一个虚拟机,从而充分利用免费计划的功能。现在是时候描述如何连接到该机器了。

我在这篇文章中描述了如何通过SSH连接到服务器。同时,在这篇文章中,我解释了如何使用 SSH 密钥。我不会再描述这一切。我们将只关注特定案例中不明显的内容。要通过 SSH 连接,我们基本上需要四件事:

  1. 服务器的IP地址,
  2. 我们将登录的用户名,
  3. 公共SSH密钥,
  4. SSH私钥。

前两个步骤可以通过访问实例管理中心来实现(正如我们在创建实例章节的第 4 点中所做的那样)。成功创建实例后,我们应该在实例列表中看到它,所以让我们转到它的属性 [1]。

我们要查找的信息(服务器 IP 地址 [2] 和用户名 [3])可以在右侧实例访问部分下的实例信息选项卡中找到。

创建实例时,我们已经将必要的SSH密钥下载到磁盘上。我们已经拥有了所需的一切,所以现在我们只需要把它们全部放入Termius(或使用其他方法)并连接到我们全新的VPS即可。通过SSH连接后,我建议更改(设置)当前 root 和 ubuntu 用户的密码。

sudo su
passwd
   [enter root password twice]
sudo passwd ubuntu
   [enter ubuntu user password twice]
exit

对了,我还提醒你一下我的帖子家庭服务器-基本配置。

打开端口

必须承认,Oracle积极关注其客户的基本安全。除了我们可以在虚拟机上配置的防火墙(基于 iptables)之外,还有一个额外的防火墙,它是父基础设施的一部分。亲爱的读者,假设您已经计划好了要在服务器上运行哪些服务,以便从外部访问它们,则需要在服务器上打开端口。默认情况下,Oracle仅为每个虚拟机打开端口22,用于 SSH 通信。其余端口均已关闭。因此,我在这篇文章中要传达的最后一件事是如何打开虚拟机的其他端口。我将在端口80 (HTTP) 和443 (HTTPS)的示例中展示这一点,例如,这些端口是运行网站所必需的。

首先,让我们打开前面提到的父防火墙中的端口。这是通过网络界面完成的,我之前通俗地将其称为控制中心。

1 / 8
  1. 要访问防火墙设置,请首先转到实例管理中心(正如我们在创建实例章节的步骤 4 中所做的那样)。
  2. 接下来,输入实例的属性[1]。
  3. 实例详细信息部分,有一个指向虚拟云网络[2]的链接,这是指向我们实例所在的虚拟云网络的链接。在它的设置中,我们可以找到我们正在寻找的内容,即网络防火墙规则。
  4. 在左侧面板的网络设置中,选择安全列表[3]。
  5. 在列表上,应该有一个名称以默认安全列表开头的项目… [4]。输入其属性,因为这是父防火墙的设置。
  6. 防火墙设置分为传入流量的规则Ingress Rules和传出流量的Egress Rules使用添加入口规则按钮 [5]添加新规则。
  7. 源 CIDR字段 [6] 中,输入值0.0.0.0/0,这意味着连接地址并不重要。然后在目标端口范围字段 [7] 中输入值80,并使用添加入口规则按钮 [8] 确认。此规则打开端口 80。
  8. 我们对端口443执行相同的操作。在源 CIDR字段 [9] 中,输入值0.0.0.0/0,然后在目标端口范围字段 [10] 中输入值443,并使用添加入口规则按钮 [11] 确认。

从主防火墙的层面来说,80443端口已经开放,所以我们还需要打开最后一扇门,也就是运行在服务器上的防火墙。这是通过修改iptables来完成的,它是内置的 Ubuntu 防火墙。让我们从 80 端口开始:

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo netfilter-persistent save

我们对端口 443 (HTTPS) 执行相同的操作:

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save

如您所见,要打开任何其他端口,您只需更改上述第一个命令中代表端口号的数字即可。

现在让我们检查上述所有操作是否都成功。当我自己做的时候,我的第一个想法是使用在线端口扫描仪(例如这个),但结果发现除了22之外的所有端口仍然关闭……我想嘲笑自己,因为我浪费了将近一个小时才想到扫描仪显示该端口已关闭,因为没有服务在其上运行。我写这篇文章是为了节省您的时间,亲爱的读者。

那么我们如何检查80端口是否正确打开呢?我们将使用Python运行一个简单的HTTP服务器。下面我准备了一套现成的命令:

mkdir /tmp/port80
echo 'Port 80 is open!' > /tmp/port80/index.html
sudo python3 -m http.server 80 --directory /tmp/port80/

简而言之:我们创建一个临时文件夹,在其中放置一个index.html文件,并在端口80上运行HTTP服务器。现在,我们在浏览器的地址栏中输入VPSIP 地址,然后按ENTER确认。如果我们看到消息“端口 80 已打开!” ,这意味着一切都已按其应有的方式进行。我们返回终端并使用 CTRL+C 组合键停止HTTP服务器并清理其文件,以免在我们的新虚拟机上留下任何垃圾。

rm -rf /tmp/port80

IPv6支持

发表这篇文章后,我想起我还应该讨论另一个主题,即启用IPv6支持。如果没有它,机器将正常运行,但对于我们可能想要在其上运行的某些服务,建议支持IPv6 。此类服务的一个示例是Mastodon实例,它仅在IPv4上工作,但如果没有IPv6,它将无法与基于此寻址运行的其他实例进行通信。Oracle为我们提供了启用 IPv6 并为我们的实例分配地址的能力,所以这就是我们要做的。

  1. 我们按照有关打开端口的章节的第 1-3 点中的操作,进入实例的虚拟云网络的设置。
  2. 在左侧部分中,我们在列表中找到CIDR 块/前缀[1]。
  3. 我们单击“添加 CIDR 块/IPv6 前缀”按钮 [2]。
  4. 在右侧滑出的窗口中,我们向下滚动,选择分配 Oracle 分配的 IPv6 /56 前缀选项 [3],并使用添加 CIDR 块/前缀按钮 [4]进行确认。
  5. 一段时间后,在右上角,我们将看到一个工具提示,确认已将 IPv6 地址分配给我们的实例 [5]。
  6. 现在我们需要将创建的 IPv6 地址分配给我们的实例所在的子网。在左侧部分中,我们转到子网[6]。我们在列表中找到适当的子网 [7] 并进入其属性。
  7. 我们单击“编辑”按钮 [8]。
  8. 在右侧滑出的窗口中的IPv6 前缀部分中,我们选择分配 Oracle 分配的 IPv6 /64 前缀选项 [9],当我们这样做时,将出现一个附加文本字段 [10],其中我们必须输入00FF之间的任何两位十六进制值。我们在这里输入什么并不重要,所以我们假设它是69 (😎)。我们只需使用保存更改按钮 [11] 进行确认。
  9. 现在我们需要正确配置防火墙。为此,我们返回虚拟云网络设置,在左侧,我们在列表中找到安全列表[12]。在显示的列表中,我们找到我们感兴趣的条目并进入其属性[13]。
  10. 此时,任务是在Ingress Rules中为传入流量打开适当的端口(就像我们在打开端口的章节中所做的那样),但这次我们为IPv6而不是IPv4执行此操作,因此我们输入:: /0 0.0.0.0/0作为源CIDR [14]。就像与IPv4相关的规则一样,我们为要打开的所有端口(80443)添加它们。
  11. 在防火墙设置中,我们仍然需要转到入口规则[15] 并使用添加出口规则[16] 按钮添加一条规则,该规则将通过IPv6打开所有传出流量,就像我们为IPv4所做的那样。
  12. 作为目标 CIDR [17],我们输入::/0,从IP 协议下拉列表中选择所有协议[18] 并使用添加出口规则[19] 按钮进行确认。
  13. 配置完防火墙后,我们还需要设置路由。我们返回云网络设置并在左侧列表中找到路由表[20] 部分。从显示的列表中,我们找到以… [21] 的默认路由表开头的条目,然后进入其属性。
  14. 正如我们所看到的,我们已经有了IPv4的正确路由,但对于IPv6,我们需要创建它。我们单击添加路由规则[22] 按钮。
  15. 在从右侧滑出的窗口中,在协议版本[23] 中,我们选择IPv6,从目标类型下拉列表中选择 [24],我们选择Internet 网关,在目标 CIDR 块文本字段中 [25 ],我们输入::/0,从目标 Internet 网关下拉列表 [26],选择我们的云网络并使用添加路由规则[27] 按钮确认所有内容。
  16. 最后,我们需要为我们的实例分配一个IPv6地址。为此,我们转到实例设置(左上角的三个水平条 ->计算->实例->从列表中选择我们的实例)。
  17. 在左侧部分,我们找到附加的 VNIC [28],从将显示的列表中,我们选择将显示的唯一VNIC虚拟网络接口卡)[29],然后进入其属性。
  18. 在左侧部分,我们找到IPv6 地址[30] 并单击分配 IPv6 地址[31] 按钮。
  19. 在右侧出现的窗口中,从前缀[32] 下拉列表中选择之前创建的前缀(应该只有一个选项可供选择)。下面,我建议保留IPv6 地址分配的默认选择[33],即从前缀自动分配 IPv6 地址,这意味着将自动选择我们实例的地址。当然,如果需要,我们可以随时将此设置更改为手动并自己定义特定的地址。单击分配[34] 按钮进行确认。

总结

唷,我必须承认写这篇文章对我来说并不容易。我花了很多时间来准备逐步显示所有内容的屏幕截图。尽管如此,我对最终的结果还是非常满意的。我认为在这篇文章中,我成功地以清晰的方式解释了如何使用这个无疑有趣的Oracle产品。而且,我从头到尾都在指导你,没有任何含糊之处。我认为这样的VPS对于学习等来说是一个很好的解决方案,因为它的参数足够合理,可以在上面运行许多服务