+86 189 8218 1436 周一至五 10:00-22:00

Compute Engine 开机教学:VM 启动入门

TL;DR:面向新手讲清 Compute Engine 开机教学:从建 VM、启动、SSH 登录到防火墙与费用检查,用控制台和 gcloud 一次跑通。

它是什么

Compute Engine 开机教学,说白了就是学怎么在 GCP 上「按需租一台电脑」(VM)。不用买实体服务器,点几下就有一台云上机器,不用了就停掉少算钱。整篇教学只走四步:创建实例 → 启动 → 登录 → 停止。

先别急着点「创建」。小白最常踩的坑,是每次想用都新建一台,账单里悄悄躺了好几台一样的机器。先复制这两行跑一下,看看当前在哪、有没有已经睡着的旧机器:

gcloud config list project
gcloud compute instances list

为什么先跑它?因为日常说的「开机」多半只是把旧机器叫醒,不是重新买。两行都能直接执行;若提示没登录或没选项目,先按提示补一下就好,千万别转头去点新建。

用「租房子」一次记住这几个词:

  • 项目:整栋公寓楼,机器和账单都挂这儿,选错楼就找不到自己的房间。
  • 区域:楼在哪个城市,离你越近越不卡。
  • 机型:房间多大(CPU / 内存),练手选 e2-micro 就够,别一上来挑大户型。
  • 镜像:交房预装的系统(如 Ubuntu),选了开机就能用。
  • 磁盘:屋里的柜子,停机了文件也还在;删实例时别顺手勾掉它,这是第二个坑。
  • 外部 IP:门牌号,登录靠它找门;默认重启可能换号,要固定得另留静态地址。
  • 实例状态:门上的灯,RUNNING 在用、STOPPED 睡着、TERMINATED 已退租。

最后把四个动作分清楚,这里最容易被绕晕:

  • 新建实例:真租一台新电脑,要选机型、镜像、挂新盘,只有第一次才做。
  • 停止后启动:叫醒睡着的旧电脑,配置和文件原样回来,这才是日常说的「开机」,不新增机器、不重新计费一台。
  • 重启:机器根本没睡,只是按了复位键,系统重新加载,门牌号可能变。
  • 删除:退租拆机,实例没了;柜子默认能留,勾了「随实例删除」就真找不回来了。

记一句就够了:列表里看到 STOPPED,直接启动它,别再点创建。后面的登录和停止,我们就从这台旧机器接着做。

解决什么问题

先别急着点「创建实例」。Compute Engine 开机,就是给你一台云上的 Linux 电脑。当你不想被受限面板绑住,想自己掌控 Linux 系统、端口、磁盘和常驻进程时,就该用它。常见场景:放网站、搭用完就删的测试环境、做跳板机连内网资源。

它主要解决本地电脑性能不够、临时测试环境难搭、业务变忙要按需扩容这三类麻烦:本地跑项目卡,就把服务搬到云上;测试完直接删除;访问量上来再加 CPU、内存和磁盘。代价是你要承担运维:账号、补丁、应用漏洞、日志和备份,云厂商不会替你全管。

开机后,你会得到一台可远程登录的服务器。先在自己电脑终端执行下面一句,只是检查本机有没有 SSH 客户端,不会连到云上,也不会创建资源:

ssh -V

如果提示找不到命令,别怀疑实例没开,通常是本机缺 SSH 客户端,也可先用控制台的浏览器 SSH 按钮。SSH 像远程钥匙,登录后可以管理应用、日志、补丁和安全设置。

登录到服务器窗口后,再整段复制下面命令,给机器做一次「体检」:看系统、磁盘、监听端口、常驻服务和最近日志。

uname -a
df -h
ss -tuln
systemctl --type=service --state=running
sudo journalctl -n 20 --no-pager

为什么这么做?因为小白最怕「实例显示运行中,网站却打不开」。这些结果能判断端口有没有起来、磁盘是否快满、服务是否报错。注意:第一条在本机跑,第二段必须登录服务器后跑,别混在一起。

  • 端口别乱开:只放行必要的 80、443 或指定来源,数据库和后台页不要暴露给全网。
  • 磁盘扩容不等于立刻可用:加容量后可能还要扩展分区和文件系统;动磁盘前先做快照。
  • 常驻进程别靠终端窗口:关掉 SSH 就可能退出,正式服务要交给系统服务管理。
  • 运维责任别忽略:定期更新补丁、检查日志、设置防火墙、备份数据;不用时关机或删除,避免一直计费。

怎么上手

第一次用 Compute Engine 开机,别急着点「创建」,按顺序走能少踩很多坑。第一步先开通结算(Billing)并启用 Compute Engine API。为什么?没绑付款方式 GCP 根本不给开机器,API 没启用控制台会一直转圈或提示服务未就绪,小白常卡在这儿以为是自己网不好。

  1. 选项目:顶部下拉框选刚建好的那个项目。坑:机器建到旧项目里,回头翻遍列表都找不到。
  2. 创建 VM:左侧「Compute Engine」→「虚拟机实例」→「创建实例」,先起个好记的名字,比如 my-vm。
  3. 选区域与机型:区域挑离访客近的(如 asia-east1-b),新手选 e2-micro 就够,便宜还常带免费额度。坑:区域建完不能原地改,只能删了重来。
  4. 设置镜像和磁盘:镜像默认 Debian 或 Ubuntu 就行,干净、教程多;启动磁盘 10~20 GB 平衡型足够,别一上来拉到 500 GB 白花钱。

开机前先确认防火墙放行 SSH:创建页勾「允许 HTTP/HTTPS」只管网页,SSH 走的是默认规则 default-allow-ssh(TCP 22)。为什么提前讲?很多人建完点 SSH 一直黑屏转圈,就是自己新建了自定义网络把 22 挡了。没改过网络就保持默认 VPC,别手痒去关规则。

点「创建」后别猛刷新,回列表等状态从「正在配置」变成绿色「运行中」再动手。最省事是直接点该行右侧「SSH → 在浏览器窗口中打开」;想用自己电脑,装好 gcloud 后复制下面这行(把项目名换成你自己的,这一步不能照抄,是最常见的报错来源):

gcloud compute ssh my-vm --zone=asia-east1-b --project=my-first-project

以后若点了「停止」,实例不会自己回来。回列表勾选再点「启动」,或者直接跑:

gcloud compute instances start my-vm --zone=asia-east1-b --project=my-first-project

怎么确认真的开机了?看三处:控制台状态是「运行中」;点「日志 → 串行端口 1」能刷到 systemd 走到 login:;连进去再敲一句不用改的命令:

uptime && systemctl is-system-running

看到 up 和 running 就稳了。为什么要多此一举?状态变绿有时只是宿主机好了,系统还卡在磁盘检查里。

最后提醒最容易懵的一点:开机 ≠ 网站能打开。机器亮了不代表 Nginx 跑了、80 端口有人听、防火墙放行了。接着检查服务和端口:

sudo systemctl status nginx
sudo ss -tlnp | grep ':80'

再去「VPC 网络 → 防火墙」确认有允许 TCP 80 的入站规则。服务、端口、规则三样齐了,浏览器才不会给你白屏,这才算真正开好机。

与替代方案对比

先把话说明白:开机不是越多越好。App Engine 和 Cloud Run 属于「托管派」,你把代码或镜像交上去,系统补丁、机器起不来、扩容这些事平台兜着,几乎不用管「开机」;Compute Engine 是「自己管派」,给你一台真 VM,内核、磁盘、SSH、防火墙都归你,自由度高,维护也全归你。小白最容易一上来就开 VM,其实很多需求根本用不到。

gcloud auth login
gcloud run services list --platform managed
gcloud app instances list
gcloud compute instances list --format="table(name,zone,status)"

为什么先跑这几条:先看看项目里是不是已经有服务在跑了,别重复开一台吃钱。第一条的 --platform managed 别漏,漏了命令行会追问你要不要选集群模式,小白常在这里卡住;第二条如果提示「没有 App Engine 应用」,不是命令写错,只是你还没部署过;第三条看到 RUNNING 才代表机器真开着。若提示是否启用 API,输入 y 就行。

跟本地服务器或其他云的 VM 比,GCP 的舒服之处是:按分钟计费(不足一分钟按一分钟算),临时练手开十分钟也就十分钟的机器钱;区域丰富,选离访客近的 asia-east1-b 这类可用区延迟更低;Cloud Monitoring(云监控)和 IAM 是原生连好的,CPU 曲线直接能看,给同事看机器不用发私钥,在 IAM 里给个 Compute Viewer 就行。坑是:区域开机后再换通常要重建,先想好再点。

把下面当成一张选择表,从上往下对号入座:

  • 只跑容器、普通网站或 API → 先看 Cloud Run;想连服务器概念都躲开就看 App Engine。不用选系统、不用开机,没请求时更省。
  • 要改内核参数、挂指定磁盘、自己 SSH 进去装东西、常驻端口 → 选 Compute Engine,也就是这篇开机教学的主角。
  • 拿不准 → 先用托管方案跑一版,真卡在「需要 root / SSH」再开 VM。

最后一个大坑:关掉浏览器标签不等于关机,状态还是 RUNNING 就继续计费;在控制台点「停止」之后,系统盘仍会收一点点存储费,彻底不玩了要先做快照再删实例。另外别图省事给全员 Owner,也别把密钥发群里。

最佳实践

刚学会给 Compute Engine 开机,先别急着跑正式服务。养成下面几个习惯,能帮你少交学费、少熬夜。

开机前先「抠门」一点

新手最爱一上来选 8 核 32G,月底账单直接傻眼。点创建前先做四件事:在「结算」里开预算提醒;机型选 e2-micro 练手足够;用 ping 测区域延迟(国内一般 asia-east1 更稳);系统盘 10GB 别手滑拉到 100GB。容易踩的坑是:磁盘和机型按秒计费,就算关机,盘照样收钱。下面这条命令一次配齐,直接复制就能跑:

gcloud compute instances create my-first-vm 
  --machine-type=e2-micro 
  --zone=asia-east1-b 
  --boot-disk-size=10GB 
  --image-family=debian-12 
  --image-project=debian-cloud

别把 SSH 大门敞着

给账号塞 Owner、防火墙写 0.0.0.0/0 全端口,是小白最常见的安全坑。改成最小权限 IAM(只给 roles/compute.instanceAdmin.v1)、只开 22 和真正要用的端口并限制来源 IP。进机器先更新系统,再打个快照当后悔药:

sudo apt update && sudo apt upgrade -y
gcloud compute disks snapshot my-first-vm 
  --snapshot-names=backup-$(date +%F) 
  --zone=asia-east1-b

为啥?公网 22 端口天天被全网扫,有快照才敢动手改配置。

不用了要「断干净」

点「停止」只停了 CPU,静态 IP、快照、磁盘仍在计费。练完删实例、释放闲置 IP、清掉旧快照,每周顺手看一眼费用报表和日志:

gcloud compute instances delete my-first-vm --zone=asia-east1-b
gcloud compute addresses list --filter="status:RESERVED"
gcloud compute snapshots list --filter="name~backup-"

坑提示:一个没挂上的静态 IP,放一个月也能悄悄扣掉几块钱。

把命令攒成运维清单

别每次都翻聊天记录找命令。把启动、登录、查状态写进 vm-ops.sh,复盘和交接都省心:

gcloud compute instances start my-first-vm --zone=asia-east1-b
gcloud compute ssh my-first-vm --zone=asia-east1-b
gcloud compute instances describe my-first-vm 
  --zone=asia-east1-b --format="get(status)"

下次一条 bash vm-ops.sh 就心里有底,零基础也能照着做。

常见问题(FAQ)

Compute Engine 开机后连不上 SSH 怎么办?

先查实例状态、防火墙规则、账号权限和区域,再用浏览器 SSH 或串口日志排错。

停止实例后还会产生费用吗?

一般不再按 vCPU 和内存计费,但磁盘、静态 IP 和快照仍可能产生费用。

新手该用控制台还是 gcloud?

先用控制台理解流程,熟练后用 gcloud 批量启动、停止和排错,更适合长期运维。

Compute Engine 和 Cloud Run 怎么选?

要自己管系统、端口和开机选 Compute Engine;只跑网站服务可先看 Cloud Run。

不想自己折腾 GCP?我们提供云平台代维护、上云迁移与账单代付服务,一对一技术支持。

查看代维服务 →

发表评论