文章详情

谷歌云认证账号 谷歌云服务器常用端口设置

谷歌云GCP2026-04-17 19:16:01国际云代开

你有没有试过:辛辛苦苦配好一个Web服务,浏览器死活打不开,F12一看Network全是ERR_CONNECTION_REFUSED?然后翻日志、查进程、重装Nginx……最后发现——哦,谷歌云防火墙根本没放80端口。

别笑,这事儿我干过三次。第一次以为是Apache没启动,第二次怀疑是SELinux作祟,第三次才恍然大悟:GCP的防火墙规则,跟本地iptables不是一回事,它压根不认你服务器上那套ufw或firewalld。它有自己的脾气,自己的语法,自己的“默认拒绝一切”祖训。

所以今天这篇,不聊高大上的架构图,也不甩一堆术语堆砌。咱们就当面锣对面鼓,把谷歌云服务器上那些真·常用端口怎么开、为什么这么开、不开会怎样、开了又怕什么,一条条掰开揉碎了说清楚。

一、先划重点:GCP防火墙 ≠ 服务器防火墙

这是90%新手栽跟头的第一块砖。你在Ubuntu里执行sudo ufw allow 3306,MySQL端口在系统层是通了;但GCP的网络防火墙(VPC Firewall Rules)像一道透明玻璃墙,横在你的实例和互联网之间——它不管你系统里开了啥,只看你有没有给它发“通行许可”。

换句话说:系统防火墙管进程间通信,GCP防火墙管进出实例的流量。两者必须同时点头,请求才能抵达你的应用。

二、最常打交道的5个端口,怎么开才不翻车?

✅ SSH(端口22):命门,但别裸奔

默认情况下,GCP新建实例会自动创建一条名为default-allow-ssh的防火墙规则,允许TCP 22从任意IP(0.0.0.0/0)接入。听着很爽?醒醒,这等于把家门钥匙挂小区公告栏上。

实操建议:
• 进入Networking → VPC network → Firewall,找到这条规则,点击编辑;
• 把Source IP ranges从0.0.0.0/0改成你办公室/家庭公网IP(比如203.123.45.67/32);
• 如果你用Cloud Shell或IAP(Identity-Aware Proxy)登录,干脆禁用该规则,改走更安全的隧道通道。

✅ HTTP(端口80) & HTTPS(端口443):网站的脸面

这两口子永远绑定出场。GCP默认不放行,所以哪怕Nginx跑得比兔子还欢,外网也看不见你首页的“Welcome to nginx!”。

两步到位:
1. 新建规则,名称比如allow-http-https;
2. 设置:
  • Direction: Ingress(进来的流量)
  • Targets: All instances in the network 或指定标签(推荐后者,更可控)
  • Source IP ranges: 0.0.0.0/0(网页必须对外)
  • Protocols and ports: 勾选TCP,填入80,443

⚠️ 注意:别手滑写成tcp:80,443——GCP不认这个格式,要直接写数字逗号分隔。

✅ MySQL/MariaDB(端口3306):别让它裸泳

开发时图省事,开3306给全世界?恭喜,你的数据库可能正被Bot扫描到第17次爆破尝试。

安全姿势:
• 绝对不要对0.0.0.0/0开放3306;
• 正确做法:只允许你的应用服务器IP(比如另一台GCP实例的内网IP10.128.0.5/32)或跳板机IP;
• 更进一步:用Cloud SQL替代自建MySQL——它自带加密连接、IP白名单、自动备份,省心还不贵。

✅ Redis(端口6379):缓存不是公共厕所

同理!Redis默认无密码,开在公网=送分题。某次我帮客户救火,发现Redis被用来挖矿,原因就是防火墙规则写着0.0.0.0/0 → 6379……

解法:仅允许应用服务器内网IP访问;或启用Redis密码+rename-command(重命名CONFIG指令);生产环境强烈建议走VPC Peering或Private Google Access。

✅ 自定义端口(比如Node.js的3000、Python Flask的5000)

本地调试没问题,一上云就404?八成是防火墙拦着呢。

操作同HTTP规则,只是把端口换成你的应用端口,例如TCP:3000。但请记住:别长期用3000/5000直接对外——上Nginx反向代理,既统一入口,又能加SSL、限流、日志。

三、两个神坑,踩中一个重启半小时

坑一:“我已经开了80,为啥还是连不上?”
→ 检查三点:① 实例是否打了http-server标签(防火墙规则Target tags必须匹配);② 实例所在网络是否选对(别在default网络开了规则,实例却在custom-vpc里);③ 应用是否监听0.0.0.0:80而非127.0.0.1:80(后者只接受本机访问)。

坑二:“gcloud命令怎么写?总报错!”
别背参数,记这个模板:
gcloud compute firewall-rules create RULE_NAME \ --direction=INGRESS \ --priority=1000 \ --network=default \ --action=ALLOW \ --rules=tcp:80,tcp:443 \ --source-ranges=0.0.0.0/0 \ --target-tags=web-server
替换RULE_NAME和target-tags即可,复制粘贴不手抖。

四、进阶建议:让端口管理优雅起来

  • 用网络标签(Network Tags)做最小权限:给Web服务器打web-server标签,数据库机打db-server,防火墙规则精准命中,避免“一刀切”;
  • 谷歌云认证账号 日志审计不能少:在防火墙规则里勾选“Enable logging”,出问题时翻Logging → Logs Explorer,看谁在扫你22端口;
  • 定期清理僵尸规则:半年前为临时测试开的allow-test-9999,早该删了——规则越多,越容易互相打架。

五、最后说句实在话

端口不是越多越好,安全不是越堵越强。真正靠谱的配置,是清楚每个开放的端口背后,都有明确的服务、受控的来源、定期的复核。与其花两小时研究“如何一键全开所有端口”,不如花十分钟,把22、80、443这仨口子管明白。

毕竟,云计算不是魔法——它只是把运维的复杂性,从物理机柜搬到了控制台里。而真正的高手,从不靠运气打通端口,只靠逻辑闭环守住边界。

(完)

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系