准备工作

在开始之前,请确保你拥有一个有效的 Google Cloud 帐号和已经创建好的项目。如果你还没有,可以前往 Google Cloud 官网 注册一个免费试用帐号。

第一步:创建支持双栈的 VPC 网络和子网

GCP 的默认 VPC 网络可能没有启用 IPv6。因此,我们需要创建一个新的自定义 VPC 网络,并为其配置一个启用双栈的子网。

1.导航至 VPC 网络页面。 在 Google Cloud 控制台中,通过左上角的导航菜单,找到 “VPC 网络” -> “VPC 网络”。

2.创建新的 VPC 网络。

  • 点击页面顶部的 “创建 VPC 网络”。
  • 名称: 为你的网络命名,例如 dual-stack-vpc
  • 子网创建模式: 选择 “自定义”。

3.配置双栈子网。

  • 在 “新子网” 部分,填写以下信息:
    • 名称: 为子网命名,例如 taiwan
    • 区域: 选择一个你偏好的区域,例如 asia-east1
    • IPv4 范围: 输入一个私有 IPv4 CIDR 地址范围,例如 10.140.0.0/20。(如果不知道怎么填可以,可以参照default对应区域子网的主要 IPv4 范围)
    • IPv6 子网类型: 这是关键一步!选择 “外部”。这会为你的子网分配一个 Google 提供的 /64 IPv6 地址范围,并允许子网内的虚拟机获取可公开路由的 IPv6 地址。
  • 防火墙规则: 为了方便起见,你可以勾选所有预设的防火墙规则(如 allow-ssh, allow-icmp 等)。我们稍后会进一步配置。
  • 点击 “创建”。

等待几秒钟,你的台湾区域双栈网络和子网就准备就绪了。

第二步:创建双栈虚拟机 (VM)

  1. 导航至 VM 实例页面。 通过导航菜单,找到 “Compute Engine” -> “VM 实例”。
  2. 创建新的 VM 实例。
    • 点击页面顶部的 “创建实例”。
    • 名称: 为你的虚拟机命名,例如 my-dual-stack-vm
    • 区域和可用区: 选择与你之前创建的子网相同的区域(例如 us-central1)以及该区域下的一个可用区。
    • 机器配置: 根据你的需求选择合适的机器类型(例如 e2-microe2-small)。
    • 启动磁盘: 选择你熟悉的操作系统,例如 “Debian 12” 或 “Ubuntu 22.04 LTS”。
  3. 配置网络接口 (Networking)。
    • 展开 “高级选项” -> “网络”。
    • 在 “网络接口” 下,默认会有一个 nic0。点击编辑图标(铅笔 모양)。
    • 网络: 选择我们第一步创建的 dual-stack-vpc
    • 子网: 会自动填充为你创建的 dual-stack-subnet-us-central1
    • 主要内部 IPv4 地址: 可以保持默认的 “临时” 或自定义。
    • 外部 IPv4 地址: 选择 “临时” 或 “创建静态 IP 地址” 以获得一个固定的公网 IPv4 地址。
    • IP 转发: 保持关闭,除非你有特殊需求。
    • 网络服务层级: 保持默认的 “优质层”。
    • IPv6 分配: 这是另一个关键步骤!在 “IP 堆栈类型” 中,选择 “IPv4 和 IPv6 (双栈)”。这会为你的虚拟机分配一个外部 IPv6 地址。
    • 点击 “完成”。
  4. 创建虚拟机。 检查所有配置无误后,点击底部的 “创建” 按钮。

4【重要】添加 SSH 密钥。 在创建实例的过程中直接添加密钥是最方便的方式。

  • 展开 “高级选项” -> “安全” -> “管理访问权限”。
  • 在 “SSH 密钥” 部分,点击 “添加条目”。
  • 生成你的 SSH 密钥对: 如果你还没有 SSH 密钥,可以在你的本地计算机(Linux, macOS 或 Windows WSL)上打开终端,运行以下命令:
ssh-keygen -t rsa -b 4096 -C "root"

复制id_ras.pub 公钥的内容到SSH密钥框内

点击创建,几分钟后,你的双栈 VM 就创建完成了。在 VM 实例列表中,你将看到这台机器同时拥有一个外部 IPv4 地址和一个外部 IPv6 地址。

第三步:验证网络连接和 SSH 密钥登录

  1. 验证 IPv6 连接。
    • 点击你新创建的 VM 实例名称,进入详情页面。复制其外部 IPv6 地址。
    • 在你的本地计算机上(如果你的本地网络支持 IPv6),打开终端并执行:Bashping -6 [你的VM的外部IPv6地址] 如果你能收到回复,说明 IPv6 连通性正常。
  2. 通过 SSH 密钥登录。
    • 在你的本地计算机终端中,使用以下命令登录。请确保你的私钥 (~/.ssh/id_rsa) 在默认位置。Bash# 使用 IPv4 地址登录 ssh [你在GCP中设置的用户名]@[你的VM的外部IPv4地址] # 或者,使用 IPv6 地址登录 (需要用方括号括起来) ssh [你在GCP中设置的用户名]@[[你的VM的外部IPv6地址]]
    • 第一次连接时,系统会询问你是否信任该主机的指纹,输入 yes 即可。
    • 如果一切顺利,你将无需输入密码,直接成功登录到你的云端虚拟机!

第四步:提升安全性 – 禁用密码登录(可选但强烈推荐)

为了最大化安全性,我们应该禁用 SSH 的密码登录功能,强制所有人都必须使用密钥。

  1. 登录到你的 VM。 使用上一步的 SSH 密钥方式登录。
  2. 编辑 SSH 配置文件。 使用你喜欢的文本编辑器(如 nanovim)打开 SSHD 配置文件。Bashsudo nano /etc/ssh/sshd_config
  3. 修改配置。 在文件中找到以下几行,并确保它们的值如下所示(如果前面有 # 注释符,请删掉):Ini, TOML# 禁用密码登录 PasswordAuthentication no # 允许公钥认证 PubkeyAuthentication yes # 禁止通过 SSH 以 root 用户身份登录 PermitRootLogin no
  4. 重启 SSH 服务。 保存文件并退出编辑器,然后重启 SSH 服务以使更改生效。Bashsudo systemctl restart sshd