本文记录在 Google Cloud (GCP) 申请永久免费(Free Tier)e2-micro 实例,并通过配置 SSH 密钥与搭建 WireGuard 专有网络的极简实践流程。
一、GCP 免费实例创建与避坑要点
在 GCP Compute Engine 中创建 VM 时,严格按以下配置以防产生扣费:
- 机器配置:
- 区域(Region):仅限
us-west1(俄勒冈)、us-central1(爱荷华)、us-east1(南卡罗来纳)。 - 机器类型:
e2-micro(2 vCPU,1 GB 内存)。
- 区域(Region):仅限
- 启动磁盘:
- 磁盘类型:标准永久性磁盘(Standard persistent disk)(切勿选平衡或 SSD)。
- 大小:≤ 30 GB。
- 系统推荐:Debian 12 或 Ubuntu 24.04 LTS 或 Ubuntu 26.04 LTS 。
- 网络与防火墙:
- 网络服务层级:默认标准/优质均可(每月 200GB 免费出网流量,注意避开大陆及澳洲高费率流量出口)。
- 外部 IP:选择预留静态外部 IP 或默认附带的临时外部 IP(运行期间免费,关机释放前注意解绑以免闲置计费)。
二、SSH 密钥生成与元数据上传
1. 本地生成密钥对
在本地终端生成高强度 Ed25519 或 RSA 密钥:
1 | # 生成 ed25519 密钥(推荐),注意替换 username 为你期望在服务器上的登录用户名 |
2. 将公钥添加至 GCP 元数据
- 查看并复制公钥全文:
1
cat ~/.ssh/gcp_key.pub
- 打开 GCP 控制台:进入 Compute Engine -> 元数据 (Metadata) -> SSH 密钥。
- 点击 添加 SSH 密钥,粘贴公钥内容(格式为
ssh-ed25519 AAAA... username),点击保存。注:在元数据中添加为「项目级全局密钥」,后续创建的所有实例均可直接免密登录。
3. 连接验证
1 | ssh -i ~/.ssh/gcp_key username@<GCP_EXTERNAL_IP> |
三、GCP 防火墙规则放行
WireGuard 默认使用 UDP 端口,需在 GCP 网络中开放入站规则:
- 打开 VPC 网络 -> 防火墙 -> 创建防火墙规则。
- 配置参数:
- 名称:
allow-wireguard - 方向:入站(Ingress)
- 操作:允许
- 目标:网络中的所有实例(或指定目标标记)
- 来源 IPv4 范围:
0.0.0.0/0 - 协议与端口:指定的协议和端口 -> 勾选
UDP,输入51820。
- 名称:
- 保存规则。
四、WireGuard 专网搭建
1. 开启内核 IPv4 流量转发
登录 GCP 实例后执行:
1 | echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-wireguard.conf |
2. 自动化部署 WireGuard 服务端
使用主流开源脚本一键安装并初始化配置:
1 | curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh |
- 提示输入外部 IPv4 时,确认自动识别的 GCP 公网 IP。
- 端口保持默认
51820(UDP)。 - 客户端名称随意输入(如
client-pc),DNS 可设置为1.1.1.1或8.8.8.8。
3. 客户端连接
脚本执行完成后会在当前目录生成客户端 .conf 文件及终端 QR Code:
- 移动端:使用 WireGuard App 直接扫描终端生成的二维码添加。
- 桌面端:将生成的
.conf文件下载至本地并导入 WireGuard 客户端,激活后即可建立安全专网隧道。