You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Google Cloud SSH浏览器不更改实例主机名?为何会自动更改?

解决Google Cloud实例主机名被SSH浏览器工具/升级重置的问题

我之前也碰到过一模一样的问题,折腾了好一会儿才搞清楚背后的原因和可行的解决办法,分享给你:

为什么主机名会被自动改回实例名称?

Google Cloud的VM实例默认依赖Cloud-init工具和Metadata Server来管理系统配置,包括主机名。每次发生以下情况时,系统会自动从Metadata Server同步主机名:

  • 使用Google SSH浏览器工具连接实例(这个工具会触发系统重新拉取Metadata配置)
  • 实例重启、升级或者维护重启
  • 手动刷新Metadata配置

默认情况下,Metadata里的主机名就是你的实例名称(比如my-instance-1),所以每次同步都会把你自定义的主机名覆盖回去。

如何配置避免主机名被修改?

1. 禁用Cloud-init的主机名自动同步

这是最核心的步骤,告诉系统不要用Metadata里的值覆盖自定义主机名:

  • Debian/Ubuntu系统:
    编辑/etc/cloud/cloud.cfg文件,找到preserve_hostname字段,将其值改为true。如果没有这个字段,直接在文件末尾添加一行:
    preserve_hostname: true
    
  • RHEL/CentOS/Fedora系统:
    同样编辑/etc/cloud/cloud.cfg,或者创建一个新的配置文件/etc/cloud/cloud.cfg.d/99-preserve-hostname.cfg,添加内容:
    preserve_hostname: true
    
    保存后重启Cloud-init服务(或者直接重启实例):
    sudo systemctl restart cloud-init
    

2. 设置永久自定义主机名

完成上面的配置后,手动设置你想要的主机名:

sudo hostnamectl set-hostname myhostname.mydomain.net

验证设置是否生效:

hostnamectl

输出里的Static hostname应该显示你自定义的域名。

3. (可选)同步Metadata中的主机名(如果需要保留同步机制)

如果你不想完全禁用Metadata同步,也可以直接修改实例的Metadata,让同步过来的就是你想要的主机名:

gcloud compute instances add-metadata my-instance-1 --metadata=hostname=myhostname.mydomain.net

这样系统同步时就会使用这个自定义值,而不是实例名称。

完成以上配置后,不管是用Google SSH浏览器工具连接,还是实例升级重启,你的主机名都不会再被自动改回实例名称了。

内容的提问来源于stack exchange,提问作者Saif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:26:06