实战指南:如何在 Azure 上从零创建并配置免费的 Windows 虚拟机

在日常的开发、测试或学习中,我们经常需要一台独立的服务器环境,但又不想消耗本地昂贵的硬件资源。这时,云端的虚拟机(VM)便成了我们的首选方案。然而,对于初学者或进行短期项目的开发者来说,云服务的费用往往是一个顾虑。你是否想过,其实我们可以完全利用云厂商提供的免费额度,来搭建一台功能完善的 Windows 虚拟机?

在今天的这篇文章中,我们将深入探讨如何利用 Microsoft Azure 的免费账户层级,从零开始部署一台 Windows 虚拟机。但与过去的教程不同,站在 2026 年的技术视角,我们不仅要创建机器,还要将其转化为一个符合现代开发标准、集成了 AI 辅助工作流的高效开发环境。我们将详细讲解每个配置选项背后的含义、如何通过远程桌面连接到这台云端机器,以及一些至关重要的安全配置和最佳实践。无论你是想搭建一个微服务测试环境,还是需要一个稳定的 Windows 开发沙盒,这篇指南都将为你提供详尽的实操路径。

什么是 Azure 虚拟机与 2026 年的云原生视角

在开始动手之前,让我们先明确一下概念。虚拟机,在云计算领域通常被称为“镜像”或“实例”。通俗来说,它就是一个运行在物理服务器上的虚拟化操作系统。与我们在本地电脑上使用的 VMware 或 VirtualBox 不同,Azure 中的虚拟机运行在微软全球分布的数据中心内,具备高可用性和弹性伸缩能力。

但在 2026 年,我们对 VM 的定义已经发生了变化。现在的 VM 不仅仅是计算资源的模拟,更是“AI 原生”应用的基石。当我们使用 Azure 免费账户创建 Windows 虚拟机时,我们实际上是在构建一个潜在的智能代理节点。我们在这台虚拟机上的操作体验——安装软件、配置网络、甚至重启系统——都与在专用硬件上的体验完全等效。这种隔离性使得它非常适合用于开发环境搭建、代码测试、低流量的 Web 应用托管,或者作为学习服务器架构的实验田。更重要的是,它可以是我们在云端运行自动化任务或托管轻量级 AI 服务的起点。

准备工作:Azure 免费账户与资源规划

要完成今天的实操,你需要拥有一个 Azure 账户。如果你还没有,可以注册一个 Azure 免费账户。通常情况下,微软会为新用户提供 12 个月的免费服务额度以及一定量的初始现金 credit(额度)。对于创建 Windows 虚拟机来说,我们需要重点关注的是“免费服务”列表中的 B1S 虚拟机实例。虽然 Windows Server 本身通常需要支付许可费用,但在某些免费促销活动或特定免费额度下,我们仍然可以零成本体验。

提示:在 2026 年,Azure 对免费额度的策略更加灵活,特别是针对学生和开源项目的开发者,经常会有针对 AI 推理的额外 GPU 资源赠送,虽然今天的 B1S 实例是 CPU 型的,但这是我们接触云生态的第一步。

步骤 1:登录 Azure Portal

首先,我们需要访问 Azure 的管理控制台。请在浏览器中打开 Azure Portal。在登录页面,输入你的 Microsoft Azure 账户凭证进行登录。

登录成功后,你会看到一个功能丰富的仪表板。这里是管理所有 Azure 资源的中心枢纽。对于我们来说,这意味着我们可以从这里监控我们的虚拟机状态、查看网络流量以及管理安全设置。现在的 Dashboard 支持 AI 驱动的搜索,你可以直接用自然语言询问“展示我过去 24 小时的资源消耗”,Azure 会自动生成图表。

步骤 2:定位免费服务与 AI 辅助创建

进入控制台后,界面上的资源非常多。为了快速找到我们可以免费使用的资源,请在顶部搜索栏中输入“Free services”(免费服务)。或者,你可以尝试使用新的 Copilot 侧边栏,直接输入“Help me create a free Windows VM for development”,AI 会自动为你填写大部分配置。

在搜索结果或推荐栏中,你会看到“Free services”页面。点击进入后,Azure 会列出所有在免费额度内可用的服务。在这个列表中,找到“Windows Virtual Machine”部分。这里是我们要创建实例的入口点。

步骤 3:初始化向导与配置基础信息

在“Windows Virtual Machine”卡片上,点击 Create(创建)按钮。这将启动虚拟机创建向导。现在的向导界面相比几年前更加简洁,很多复杂的网络配置已经被 Azure 的“默认安全策略”自动处理了。

现在,我们进入了最核心的配置环节。向导会要求我们填写一系列信息来定义这台虚拟机的规格。这些配置不仅决定了机器的性能,也直接影响我们的费用(即使在免费额度内,我们也需要合理配置以避免意外扣费)。

我们需要添加以下详细信息:

  • Resource Group(资源组):这是一个逻辑容器,用于存放 Azure 中相关的资源。为了方便管理,我们可以新建一个资源组,例如命名为 rg-geeksforgeeks-dev。这种命名规范(前缀+用途)有助于在未来的自动化脚本中快速定位资源。
  • Virtual Machine name(虚拟机名称):给你的这台机器起一个容易识别的名字。例如 vm-win-dev-01。尽量避免使用包含特殊字符的名称,以免与未来的 DNS 解析冲突。
  • Region(区域):选择离你最近或者最适合你的数据中心位置。区域的选择直接关系到网络延迟。对于国内用户,如果可选,通常建议选择东亚(East Asia)或香港区域;如果是国际版账户,则选择距离你最近的节点。注意:某些区域可能不提供免费 B1S 实例,如果下拉列表中没有,记得切换区域。
  • Image(镜像):这里选择你要安装的操作系统版本。在我们的示例中,为了兼容性和广泛性,选择 Windows Server 2022 Datacenter: Azure Edition。虽然旧版(如 2012)也能用,但在 2026 年,我们应该坚持使用受支持的安全基线版本。Azure Edition 是专门针对云环境优化的,包含了更好的安全补丁和热补丁支持。

步骤 4:架构选型与性能考量

在“Size”(大小)选项卡中,确保你选择了“See all sizes”(查看所有大小)。在搜索栏输入“B1s”。这是 Azure 免费账户最常使用的实例类型(1 vCPU,1GB 内存)。

技术深度解析:你可能会问,1GB 内存够用吗?对于纯净的 Windows Server 来说确实非常紧张。但在我们的配置中,我们会禁用不必要的 GUI 特性(如桌面体验),利用 Windows Server Core 来降低内存占用,从而腾出宝贵的 RAM 给我们的应用程序。这不仅是性能优化的手段,也是“Serverless First”思维的体现——只运行必要的进程。

步骤 5:管理员账户与网络安全组(NSG)

接下来,我们需要设置管理员凭据。这是非常重要的一步,请务必牢记。

  • Authentication type(身份验证类型):在 2026 年,我们强烈建议使用 SSH Public Key,即使是在 Windows 上。这比传统的密码更安全。但为了照顾初学者的习惯,这里我们仍可以选择“Password”。如果你选择了密码,请确保它不仅是随机的,而且只在 Keychain 中存储,不要明文记录。
  • Username(用户名):默认是 Administrator,但为了符合最小权限原则,我们可以创建一个自定义用户,例如 azureadmin

关于网络安全,请务必检查 Public inbound ports(公用入站端口)。默认情况下,Azure 可能会设置为“Allow selected ports”。请手动选择 RDP (3389),并且仅限于你的 IP 地址。现在的 Azure Portal 有一个“Source”下拉菜单,你可以选择“My IP”或者输入具体的 CIDR 块。不要把 3389 端口向全世界开放,这是你的虚拟机被暴力破解的首要原因。

配置完成后,点击页面底部的 Review + create(查看并创建)。

步骤 6:自动化部署与验证

在“Review + create”页面,Azure 会对我们的配置进行最终验证。如果验证通过,你会看到绿色的提示 “Validation passed”。

在这个阶段,让我们做一个高级操作:点击底部的 Download template and automate(下载模板并自动化)。这会生成一个 ARM 模板(Azure Resource Manager)。这不仅仅是创建一个 VM,它是“Infrastructure as Code”(IaC)的体现。通过保存这个 JSON 文件,我们可以在未来的一秒钟内重建完全相同的环境,或者将其集成到 CI/CD 流水线中。

确认无误后,点击 Create(创建)。部署通常需要几分钟。

步骤 7:连接与初始化配置 (PowerShell 自动化)

一旦部署完成,我们就进入了激动人心的环节——连接这台机器。虽然我们可以使用图形界面的 RDP 客户端,但让我们来看看现代开发者是如何做的:直接在 Portal 点击“Connect”,你会看到一行 RDP 命令或者可以直接下载 .rdp 文件。

连接成功后,你看到的桌面可能非常简洁。为了把这台机器变成一个高效的开发环境,我们首先要进行系统更新和优化。打开 PowerShell ISE(或者直接用 Terminal),让我们运行一段脚本来自动化基础配置。

代码示例 1:系统初始化与性能优化脚本

# 管理员运行 PowerShell
# 我们将执行一系列优化,以确保在 1GB 内存下系统依然流畅

Write-Host "正在初始化开发环境配置..." -ForegroundColor Green

# 1. 设置 PowerShell 执行策略以允许本地脚本
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

# 2. 禁用不必要的 Windows 功能以节省内存 (例如 Windows Defender 实时扫描,仅限隔离环境)
# 注意:在生产环境中请谨慎操作,这仅用于快速开发沙盒
Set-MpPreference -DisableRealtimeMonitoring $true
Write-Host "已禁用实时监控以提升低配 VM 性能。" -ForegroundColor Yellow

# 3. 安装 Chocolatey 包管理器 (现代 Windows 开发的必备工具)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1‘))

# 4. 安装基础开发工具 (VS Code, Git, Node.js)
# 我们使用 -y 参数来静默安装
choco install vscode git nodejs-lts python3 -y

Write-Host "基础开发工具安装完成。请重启 Shell 以生效。" -ForegroundColor Cyan

代码解析:在这段脚本中,我们不仅是在安装软件,更是在建立一种“可复制”的环境配置逻辑。通过 Chocolatey,我们摆脱了手动下载安装包的繁琐过程。这在团队协作中尤为重要,如果你的同事需要一台一模一样的机器,他们只需要运行这段脚本即可。

步骤 8:配置现代开发环境 —— "Vibe Coding" 实践

在 2026 年,单纯的文本编辑器已经过时了。我们将在这台机器上配置一个集成了 AI Copilot 的环境,也就是所谓的“氛围编程”。

  • 安装 VS Code 扩展:在你的远程桌面中打开刚刚安装好的 VS Code。点击扩展图标,搜索并安装 GitHub CopilotGitHub Copilot Chat
  • 环境准备:由于我们在云端,你需要登录你的 GitHub 账户并授权 Copilot。
  • 创建新项目:让我们尝试让 AI 帮我们写代码。在 VS Code 中新建一个文件 app.py,然后输入以下提示词:

> "Create a simple Python Flask web server that listens on port 8080 and returns ‘Hello from Azure 2026‘ with system uptime details."

你会惊讶地发现,Copilot 几乎瞬间就为你生成了完整的代码。

代码示例 2:AI 生成的 Flask Web 服务

from flask import Flask
import psutil # 需要运行 pip install flask psutil
import platform
from datetime import datetime

app = Flask(__name__)

@app.route(‘/‘)
def hello_azure():
    # 获取系统启动时间
    boot_time = psutil.boot_time()
    uptime = datetime.now() - datetime.fromtimestamp(boot_time)
    
    return f"""
    

Hello from Azure 2026!

System: {platform.system()} {platform.release()}

Uptime: {str(uptime).split(‘.‘)[0]}

Node: Intelligent VM Worker

""" if __name__ == ‘__main__‘: # 监听所有公共接口,端口 8080 app.run(host=‘0.0.0.0‘, port=8080)

步骤 9:开放端口与安全最佳实践

现在我们有一个 Web 服务运行在 8080 端口,但外部依然无法访问。还记得我们之前提到的 NSG(网络安全组)吗?我们需要回 Azure Portal 去修改它。

  • 在 Azure Portal 搜索栏输入“Network Security Groups”。
  • 找到与你 VM 关联的那个 NSG(通常名称后缀是 -nsg)。
  • 点击“Settings”下的“Inbound security rules”(入站安全规则)。
  • 点击“Add”。添加一个规则:

* Destination port ranges: 8080

* Protocol: TCP

* Action: Allow

* Name: FlaskApp

安全提示:为什么我们不直接开放 80 端口?这是因为使用非标准端口(如 8080)可以减少大量的自动脚本扫描和日志噪音,这是“Security by Obscurity”的一种应用,虽然在深度防御中不是主要的手段,但作为额外的噪音过滤层非常有用。

进阶故障排查:当环境出错时

在云环境中,网络连接是最容易出问题的地方。让我们思考一下这个场景:你明明开放了端口,但依然无法访问网站。

代码示例 3:诊断网络连接状态的脚本

在 VM 内部的 PowerShell 中运行以下命令,帮助我们确认服务状态。

# 1. 检查端口 8080 是否正在被 Python 进程监听
Get-NetTCPConnection -State Listen | Where-Object {$_.LocalPort -eq 8080}

# 2. 如果上述命令没有返回结果,检查 Windows 防火墙是否阻止了入站连接
# 显示所有阻止入站的规则
Get-NetFirewallRule | Where-Object {$_.Enabled -eq ‘True‘ -and $_.Direction -eq ‘Inbound‘ -and $_.Action -eq ‘Block‘} | Select-Object DisplayName, Profile

# 3. 如果是防火墙问题,我们可以临时添加一条允许规则(仅用于调试)
New-NetFirewallRule -DisplayName "Allow Flask 8080" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow

通过这种诊断式的命令,我们不仅能解决问题,还能理解流量在操作系统内核层面的流动路径。

成本监控与清理:避免账单危机

最后,这是一个至关重要但常被忽视的环节。Azure 免费账户虽然包含 12 个月的服务,但它是基于 750 小时/月 的计算的。如果你不慎同时开启了两台 B1s 实例,或者忘记关机,超出额度就会开始扣费。

让我们通过 Azure CLI 设置一个自动关机策略。

代码示例 4:通过 PowerShell 设置自动关机

# 假设你已经在本地安装了 Az 模块或使用 Cloud Shell
# 这将设置 VM 在每天 18:00 (UTC) 自动关机

$vmName = "vm-win-dev-01"
$resourceGroup = "rg-geeksforgeeks-dev"
$location = "East Asia" # 你的区域

# 创建每日关机计划
# 注意:DevTest Lab 功能通常需要使用特定的 SKU,但我们可以利用 Azure Automation 或者简单的逻辑应用来实现
# 这是一个简化版的示意,实际操作中可以通过 Portal 的 "Auto-shutdown" 按钮直接勾选

建议:直接在 VM 的“Operation”选项卡中,找到“Auto-shutdown”(自动关机),设置一个你确定不会使用的时间点(比如晚上 10 点)。这能保证你在忘记关闭虚拟机时,钱包依然是安全的。

结语:迈向云端专家

通过以上步骤,我们不仅成功在 Azure 上建立了一个功能完备的免费 Windows 虚拟机环境,更深入到了网络配置、自动化脚本编写以及现代 AI 辅助开发的领域。在 2026 年,掌握这些技能不再仅仅是运维人员的职责,而是每一位开发者的必备素养。

我们创建的不仅仅是一台服务器,而是一个可控的、可复制的、智能化的开发节点。关键要点回顾:

  • 虚拟机是云中的计算机,体验等同于本地硬件,但具备云端弹性。
  • Infrastructure as Code (IaC) 是未来的趋势,尽可能使用脚本和模板,而不是手动点击。
  • 安全组(NSG)配置至关重要,永远不要向全球开放敏感端口如 RDP 或 SSH。
  • 务必在不使用时停止 VM,利用自动关机策略控制成本。
  • 拥抱 AI 工具,让 Copilot 帮助你编写代码和排查错误,这将极大地提升你的生产力。

接下来的步骤,你可以尝试在这台机器上部署一个微服务架构,或者结合 Azure Functions 进行无服务器架构的实验。祝你在云端探索愉快!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/20591.html
点赞
0.00 平均评分 (0% 分数) - 0