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

开启FirewallD未放行自定义SSH端口,GCP CentOS虚拟机无法SSH登录如何解决

GCP CentOS虚拟机FirewallD阻断SSH连接的解决方案

以下是可直接落地的操作方案:

  • 方案1:通过GCP串行控制台直接登录操作

    1. 进入GCP云控制台的目标虚拟机详情页,下滑找到「串行端口」配置区域,勾选「启用连接到串行端口」保存配置
    2. 编辑虚拟机配置,在「自定义元数据」中添加键为startup-script的条目,值填写echo "root:自定义的临时强密码" | chpasswd,保存后重启虚拟机
    3. 回到虚拟机详情页,点击「连接到串行控制台」,在弹出的终端窗口中用root账号+刚才设置的临时密码登录
    4. 登录后执行以下命令放通自定义SSH端口(将下方12345替换为你实际使用的自定义SSH端口):
      firewall-cmd --permanent --add-port=12345/tcp
      firewall-cmd --reload
      
    5. 确认可正常SSH登录后,删除之前添加的startup-script元数据,关闭串行端口访问权限,避免安全隐患。
  • 方案2:通过启动脚本自动修复规则,无需登录虚拟机

    1. 编辑目标虚拟机配置,在「自定义元数据」中添加键为startup-script的条目,值根据需求二选一:
      • 仅放通对应SSH端口:将12345替换为实际自定义端口,填写firewall-cmd --permanent --add-port=12345/tcp && firewall-cmd --reload
      • 暂时关闭FirewallD:填写systemctl stop firewalld && systemctl disable firewalld
    2. 保存配置后重启虚拟机,等待2-3分钟启动完成后即可正常通过SSH连接
    3. 登录确认业务正常后,删除临时添加的startup-script元数据,按需调整FirewallD规则即可。
  • 方案3:挂载系统盘到其他实例修改配置

    如果上述两种方案均无法生效,可通过磁盘挂载的方式修复:
    1. 停止故障虚拟机,卸载其系统磁盘
    2. 在同一可用区创建一台正常运行的CentOS临时虚拟机,将刚卸载的故障系统盘挂载为数据盘
    3. 登录临时虚拟机,挂载磁盘分区后执行chroot进入故障系统的根目录,直接修改FirewallD规则或关闭FirewallD开机自启
    4. 配置完成后卸载磁盘,将磁盘重新挂载回原故障虚拟机作为系统盘,启动后即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:06:05