You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于在Google Cloud Run上设置custom ingress port及部署SMTP Server公开监听25端口的咨询

在Google Cloud Run上设置自定义入站端口及部署SMTP Server公开监听25端口的咨询

嘿,我来帮你捋清楚这个问题——Cloud Run本身确实带有些网络限制,默认只支持HTTP/HTTPS的入站请求(对应端口80、443),直接让它监听25端口是行不通的,但咱们有靠谱的变通方案,借助谷歌云的其他组件就能实现需求。

先说说核心限制

Cloud Run是无服务器容器平台,原生不支持直接暴露TCP/UDP协议的端口,而且谷歌云本身对端口25的出站流量有严格限制(主要是防垃圾邮件),不过入站流量咱们可以通过负载均衡绕开这个限制。

可行的解决方案:TCP代理负载均衡 + Serverless NEG

这是目前最靠谱的实现方式,步骤大概是这样:

  • 第一步,创建Serverless Network Endpoint Group (NEG),把你的Cloud Run服务关联进去。这里要注意,得把Cloud Run服务的访问配置改成「允许内部流量或来自负载均衡器的流量」,而不是默认的仅允许HTTPS外部访问。
  • 第二步,搭建一个TCP代理负载均衡器:前端监听端口设为25,后端直接指向你刚创建的Serverless NEG就行。
  • 第三步,配置防火墙规则,放开外部流量访问负载均衡器的25端口,确保外部请求能进来。
  • 最后,调整你的SMTP服务配置,让容器内部监听25端口,同时在Cloud Run服务的端口设置里指定这个容器端口。

额外要注意的点

  • 谷歌云对端口25的出站流量(也就是你的SMTP服务往外发邮件)是有限制的,如果需要对外发送邮件,建议用谷歌的Cloud Email Service或者第三方邮件中继服务来处理,别直接走Cloud Run的出站流量。
  • 一定要确保你的SMTP服务符合谷歌云的服务条款,避免被标记为垃圾邮件源,不然可能会被限流甚至封禁。
  • 配置负载均衡器的时候,尽量和Cloud Run服务选同一个区域,减少跨区域的延迟问题。

备注:内容来源于stack exchange,提问作者Eric Uldall

火山引擎 最新活动