1. 项目缘起:为什么选择Azure免费虚拟机?
最近在折腾一些个人项目,比如搭建个测试环境、跑个脚本,或者学习容器化部署,总需要一个稳定、能随时访问的服务器。直接买云服务器吧,对于个人学习和轻度使用来说,成本是个问题;用一些不知名的小厂商,又担心跑路或者网络不稳定。这时候,大厂提供的免费额度就成了一个非常香的选择。
微软Azure就提供了这样一个“羊毛”:新用户可以享受为期12个月的免费服务,其中就包括每月750小时的B1s系列虚拟机使用权。简单算一下,750小时除以24小时,大约是31天,这意味着你可以开一台虚拟机并让它整整运行一个月,刚好覆盖免费额度。这个“免费一年”的吸引力就在这里——它不是一个噱头,而是实打实能让你免费用上一整年的计算资源。
但为什么是“两步”创建,还要“完美避坑”呢?因为在实际申请和创建过程中,Azure的门槛和“坑点”其实不少。从账号注册的验证,到服务开通的地域选择,再到虚拟机配置的细微差别,任何一个环节没处理好,轻则无法成功创建,重则可能产生计划外的费用。网上很多教程只讲了“点这里、点那里”的步骤,但背后的逻辑和容易踩的雷区却鲜有提及。我前后帮朋友和自己折腾过好几次,把常见的坑都踩了一遍,这才梳理出这个最精简、最安全的流程。今天分享出来,就是希望能让你用最短的时间、最省心的方式,把这个免费的“开发利器”拿到手。
2. 核心准备:账号、信用卡与区域选择的门道
在点击“创建虚拟机”按钮之前,有三件事必须提前搞定,它们直接决定了你能否成功“薅到羊毛”,以及后续使用是否安心。很多新手卡在第一步,就是因为忽略了这些准备工作。
2.1 账号注册与验证:不只是邮箱和密码
首先,你需要一个微软账号。这个很简单,用你的Outlook、Hotmail或者任意邮箱注册一个即可。关键在于接下来的“升级为Azure账户”。
当你登录Azure官网,尝试使用免费服务时,系统会引导你进行账户验证。这个过程的核心是信用卡验证。是的,即使你申请的是免费套餐,微软也需要你绑定一张有效的国际信用卡(Visa、MasterCard等)。这里很多人会担心被扣费,我详细解释一下这个机制的“安全边界”:
微软绑定信用卡的目的主要有两个:一是验证你的真实身份,防止滥用;二是作为“信用锚点”,以防你使用了超出免费额度的付费服务。在免费套餐有效期内,只要你使用的资源严格控制在免费额度内,微软不会从你的信用卡扣取任何费用。系统会有明确的额度使用情况仪表盘。
注意:绑卡时,部分地区可能会尝试扣取1美元(或等值当地货币)作为预授权验证,这笔款项通常会在几分钟内退还。这是国际通行的验证方式,不必惊慌。确保你的卡片支持小额预授权扣款即可。
验证完成后,你的账户就具备了试用资格,会获得200美元的信用额度和12个月的免费服务。这个200美元信用是额外的,可以在头30天内用于体验任何付费服务,但我们的目标是用好那12个月的免费虚拟机,所以尽量不要动它。
2.2 区域选择:决定速度与稳定性的关键
创建资源时,第一个重要选择就是“区域”。区域决定了你的虚拟机物理上存放在哪个数据中心,这会直接影响你连接服务器的网络延迟、速度,甚至影响到免费套餐的可用性。
对于国内用户,追求低延迟的话,优先考虑以下区域(通常延迟在50-150ms之间):
- 东亚 (East Asia):数据中心在中国香港。这是距离大陆最近、网络质量相对最好的区域,也是大多数人的首选。
- 东南亚 (Southeast Asia):数据中心在新加坡。网络也非常不错,是备选方案。
避坑要点一:免费套餐的可用性并非所有区域都支持“免费套餐”。如果你在创建时选择了不支持免费套餐的区域(例如美国西部),那么即使你创建的是B1s规格的虚拟机,也会按标准付费费率计费。所以,务必在创建时,确认你选择的区域支持免费套餐。一个简单的判断方法是:在虚拟机创建页面的“基本信息”标签下,当你选择了“B1s”等符合条件的规格后,如果看到“您有 12 个月免费试用期。了解详情”的提示,并且预估价格显示为“0.00 美元/月”,就说明该区域支持。
避坑要点二:IP地址的地理位置如果你需要虚拟机有一个特定地区的IP(例如用于某些地区限定的服务测试),那么区域选择就直接决定了你获得的公网IP的地理位置。选择“东亚”,你得到的就是香港IP。
2.3 理解免费套餐的“资源配额”
Azure免费套餐不是“无限畅用”,它有明确的配额限制。对于虚拟机,核心限制如下:
- 计算时长:每月750小时B1s虚拟机时长。一台B1s虚拟机连续运行一个月刚好消耗约720小时,所以理论上你可以同时运行两台,只要它们的总运行时间每月不超过750小时。但最省心的做法是只开一台,让它一直运行。
- 虚拟机规格:仅限于B1s系列。这个“s”代表可突增(burstable),它是一种基准性能较低,但可以短期爆发高性能的机型,非常适合开发测试、小型网站等间歇性有负载的场景。
- 磁盘:包括64GB*2的托管磁盘存储(P6 SSD)。创建虚拟机时,系统盘会占用其中一个64GB配额。
- 网络:包括15GB的公网出站数据流量。入站流量(数据传入虚拟机)是免费的。这意味着你从虚拟机下载文件、访问外部API产生的流量会计算在这15GB内,而外部访问你的虚拟机网站则不计费。对于轻度使用,15GB通常足够。
清楚这些配额,你就能在框架内安心使用,避免触发计费。
3. 第一步:精准配置虚拟机核心参数
准备工作就绪,现在可以开始创建了。在Azure门户中点击“创建资源” -> “虚拟机”,就进入了配置页面。这一步的每个选项都至关重要。
3.1 基础配置:命名、镜像与认证
- 资源组:可以新建一个,例如命名为“MyFreeVM-RG”。资源组是Azure中用于管理一组相关资源的逻辑容器,方便以后统一查看成本或删除。
- 虚拟机名称:起一个你喜欢的名字,比如“my-dev-server”。
- 区域:如前所述,选择“东亚”或“东南亚”。
- 映像:这是虚拟机的操作系统模板。对于免费套餐,选择Ubuntu Server是最通用、最推荐的选择。版本选择最新的LTS(长期支持)版本,例如“Ubuntu Server 22.04 LTS”。Linux系统资源占用更少,也更适合服务器环境。如果你必须使用Windows,请注意Windows Server镜像是不包含在免费套餐中的,选择它会立即产生许可费用。
- 大小:点击“更改大小”,在筛选器中勾选“仅显示免费合格的大小”,列表中应该只有“B1s- 1 vcpu, 1 GiB 内存”可选。直接选择它。
- 身份验证类型:强烈建议选择“SSH公钥”。
- 用户名:设置一个登录名,如“azureuser”。
- SSH公钥源:选择“生成新密钥对”。
- 密钥对名称:为你生成的密钥对起个名,如“myvm-key”。 点击“创建”后,Azure会自动生成一对RSA密钥(公钥和私钥),并立即将私钥(.pem文件)下载到你的本地电脑。这个文件是你登录虚拟机的唯一凭证,务必妥善保存,丢失后将无法通过SSH登录。公钥会自动部署到虚拟机中。
实操心得:为什么不用密码?使用SSH密钥认证比密码安全得多,几乎可以杜绝暴力破解。这也是云服务器的最佳实践。下载的.pem文件权限很严格,在Linux/Mac上使用前,可能需要执行
chmod 400 myvm-key.pem来修改权限。
3.2 磁盘配置:避开性能与成本的陷阱
在“磁盘”标签页,需要关注两个地方:
- OS磁盘类型:默认可能是“标准SSD”。对于B1s这种性能受限的机型,磁盘IO(输入输出)可能成为瓶颈。虽然免费套餐包含的是P6 SSD(性能层级较低的高级SSD),但在创建时,我们可以选择“高级 SSD”,然后在下方的“大小”处,系统会自动选择符合免费资格的64GB P6 SSD。高级SSD能提供更稳定和稍好的IO性能,对于系统响应有好处。
- 删除选项:务必勾选“删除虚拟机时同时删除OS磁盘”。这是一个极其重要的设置!如果不勾选,当你删除虚拟机后,磁盘会作为独立资源保留下来,而独立托管磁盘是收费的!很多人忘记这一步,导致虚拟机删了,但每月仍产生几美元的磁盘存储费。
3.3 网络配置:公网IP、安全组与流量控制
在“网络”标签页,配置决定了你的虚拟机如何被访问以及安全性。
- 虚拟网络:可以新建一个,使用默认配置即可。
- 公共IP:选择“新建”,并给它起个名字。关键点来了:点击“公共IP地址”旁边的“创建新”,在打开的边栏中,找到“SKU”选项。务必选择“基本”。因为免费套餐只覆盖“基本”SKU的公网IP。“标准”SKU的IP是付费服务。
- 公共入站端口:选择“允许所选端口”,然后在下方端口列表中选择“SSH (22)”。如果你计划搭建Web服务,还需要额外勾选“HTTP (80)”和“HTTPS (443)”。但初期为了安全,可以只开SSH,后续通过修改网络安全组来开放其他端口。
- 网络安全组:选择“新建”,这相当于虚拟机的防火墙。默认规则会包含你上一步选择的入站端口。
避坑要点三:出站流量与IP地址创建的公网IP是动态的,虚拟机重启后可能会变化。如果你需要一个固定IP,可以在创建后,到该公共IP资源的配置里,将“分配”方法从“动态”改为“静态”。但请注意,静态IP在虚拟机解除分配(停止)后仍然保留,而保留未关联的静态IP会产生少量费用(每小时几美分)。对于免费用户,除非必要,建议使用动态IP,需要时通过DDNS(动态域名解析)来解决IP变化的问题。
4. 第二步:创建后管理、连接与成本监控
点击“审阅 + 创建”,系统会验证配置。通过后,点击“创建”。部署过程大约需要3-5分钟。部署成功后,真正的使用才刚刚开始。
4.1 获取连接信息并首次登录
在虚拟机资源页面,找到“概述”部分,你会看到“公共IP地址”。这就是你服务器的地址。 在本地终端(Linux/Mac的终端,或Windows的PowerShell/WSL)中,使用下载的私钥文件进行连接:
ssh -i /path/to/your/myvm-key.pem azureuser@你的公共IP地址例如:
ssh -i ~/Downloads/myvm-key.pem azureuser@20.123.456.789首次连接会提示你确认主机密钥,输入yes即可。成功后,你就进入了你的免费Ubuntu服务器。
4.2 基础安全与更新
登录后第一件事不是急着部署应用,而是做好基础安全:
- 更新系统:
sudo apt update && sudo apt upgrade -y - 创建新用户并禁用root SSH登录(可选但推荐):
然后,编辑SSH配置文件:sudo adduser newusername sudo usermod -aG sudo newusername
找到sudo nano /etc/ssh/sshd_configPermitRootLogin,将其改为no。找到PasswordAuthentication,也改为no(强制使用密钥登录)。保存退出后,重启SSH服务:sudo systemctl restart sshd。务必确保你已经用新用户配置好了SSH密钥并测试可以登录,再进行此操作。
4.3 至关重要的成本管理与监控
这是确保“免费”不变成“收费”的核心环节。
- 访问“成本管理 + 计费”:在Azure门户左侧菜单中找到此服务。
- 设置“预算”:这是最重要的警报机制。点击“预算”->“添加”:
- 范围:选择你的订阅。
- 预算名称:例如“Free-Tier-Monitor”。
- 重置周期:每月。
- 开始日期:当月1号。
- 预算金额:设置为 1 美元。是的,只设1美元。我们的目标不是花1美元,而是任何超过0美元的消费都会立刻触发警报。
- 预警条件:添加一个预警,当“实际成本”大于“预算金额”的0%时(即大于0美元)就触发。通知可以发送到你的邮箱。
- 查看“成本分析”:在这里,你可以按“服务名称”筛选,查看“Microsoft.Compute/virtualMachines”(虚拟机)和“Microsoft.Storage/storageAccounts”(存储)等资源的累计成本。在免费期内,它们应该显示为0美元或极低的摊销成本(几分钱,可忽略)。
避坑要点四:最容易被忽略的隐形费用——快照与磁盘除了独立磁盘,另一个隐形杀手是磁盘快照。如果你手动为系统磁盘创建了快照作为备份,这些快照占用的存储空间是单独计费的,且不在免费额度内。除非必要,不要轻易创建快照。如果创建了,用完后记得及时删除。
4.4 免费期结束前的操作
当12个月免费期临近结束时,你有几个选择:
- 继续付费使用:如果觉得不错,可以转为付费订阅继续使用这台虚拟机。注意提前关注定价,B1s实例的月费在不同区域大约在10-15美元左右。
- 导出数据并删除资源:这是最彻底避免费用的方法。将你需要的数据备份到本地或其他免费存储(如GitHub),然后执行以下操作:
- 在Azure门户中,停止(解除分配)虚拟机。
- 确保所有相关资源(虚拟机、网络接口、公共IP、磁盘、网络安全组)都被选中,然后一次性删除。最稳妥的方法是删除整个“资源组”,这样组内所有资源都会被清理干净。
- 寻找新的免费替代品:其他云厂商如Google Cloud Platform (GCP)、Oracle Cloud也提供长期免费套餐,可以“迁徙”过去。
整个流程走下来,核心就是“谨慎配置,严密监控”。Azure的免费套餐是学习云计算、部署个人项目的绝佳跳板,只要理解了它的规则并避开那些设计上的“坑”,就能让它真正成为一个零成本、高可用的开发助手。我的体会是,把成本监控的预算设置好,就相当于给这个免费资源上了一道保险,可以放心大胆地去探索和实验了。