连接谷歌云主机(Compute Engine)的网络,主要涉及两个方向:虚拟机实例访问外部网络(如访问互联网、更新软件)和外部网络访问虚拟机实例(如通过 SSH 连接、部署网站)。
下面分场景说明关键配置步骤:
大多数情况下,只要虚拟机拥有外部 IP 地址,默认就能访问互联网。
检查外部 IP:在 GCP Console -> Compute Engine -> 虚拟机实例,找到你的实例,查看“外部 IP”列。
分配外部 IP:如果显示“无”,可以点击实例名称进入详情,点击“编辑”,在“网络接口”部分,将“外部 IP”改为“临时”或“静态”(静态 IP 会保留,即使关机)。
配置防火墙出站规则:GCP 默认允许所有出站流量,除非你自定义了严格的 VPC 防火墙规则(如只允许特定协议出站),否则无需额外操作。
特殊情况:没有外部 IP 如何访问互联网?
如果虚拟机没有外部 IP,可以通过Cloud NAT(网络地址转换)实现出站访问,步骤如下:
1、 在 GCP Console -> 网络服务 -> Cloud NAT。
2、 点击“创建 Cloud NAT 网关”,选择你需要上网的 VPC 网络和区域。
3、 选择哪些子网将通过该 NAT 访问互联网(通常选择默认子网或所有子网)。
4、 创建完成后,该 VPC 内的无外部 IP 虚拟机即可访问互联网。
2. 外部网络访问虚拟机实例(入站流量,如 SSH、HTTP)
这需要同时满足外部 IP 和防火墙规则两个条件。
必须拥有外部 IP:参考上一步,为实例分配临时或静态外部 IP。
配置防火墙规则(关键且易忽略):
- 在 GCP Console -> VPC 网络 -> 防火墙。
- GCP 默认已有规则如default-allow-ssh(允许 TCP 22 端口)、default-allow-icmp(允许 ping)。
如果需要其他端口(如 HTTP 80、HTTPS 443):点击“创建防火墙规则”。
- *名称*:例如allow-http
- *目标*:选择“网络中的所有实例”或“指定的目标标签”(更推荐,需在实例上设置网络标签)。
- *来源 IP 范围*:0.0.0.0/0(允许所有来源)或指定你的固定 IP。
- *协议和端口*:选择“指定的协议和端口”,如tcp:80。
确认实例使用了目标标签:如果使用标签,需在实例编辑页面添加该标签(如http-server)。
如果遇到无法连接网络的情况,按以下顺序检查:
检查状态:确保虚拟机实例正在运行。
检查公网 IP:确认实例有外部 IP,且你连接的是正确的 IP。
检查防火墙:在 GCP 防火墙页面确认入站规则的优先级(数字越小优先级越高)和目标标签是否正确,同时检查实例操作系统内部的本地防火墙(如iptables,ufw)是否放行了相应端口。
检查路由:确认 VPC 网络的默认路由(0.0.0.0/0 指向默认互联网网关)未被删除,在 VPC 网络 -> 路由页面查看。
检查 SSH 密钥:如果无法 SSH,确保公钥已正确添加到实例的元数据或项目元数据中。
想要联网,两个法宝:
1、出门上网(虚拟机访问互联网)→有公网 IP 或配 Cloud NAT。
2、回家串门(外界访问虚拟机)→有公网 IP +开防火墙规则。
多数新手的问题出在忘开防火墙规则(如忘记放行 80/443 端口),或者公网 IP 是临时(重启会变)但客户端连接时用了旧的 IP,建议对需要长期访问的 IP 申请静态 IP。
文章摘自:https://idc.huochengrm.cn/zj/25660.html
评论