无需公网也可访问的ChatGPT WebUI服务

95 阅读3分钟

背景

阿里云计算巢是一站式软件云化平台,服务商可以在计算巢将三方软件做成SaaS或PaaS服务。ChatGPT Next WEB是一个平台 ChatGPT WebUI应用。我们将ChatGPT Next WEB社区版本在发布成了一个私有化部署服务,用户可以在自己的阿里云账号下部署ChatGPT Next WEB网站。

在最初的几个版本里,部署完服务后,服务实例会输出一个公网访问地址,点击后在浏览器打开WebUI网站。

image.png

开启公网带来的问题

ChatGPT Next WEB是需要配置OpenAI API Key来访问的。每次问答访问OpenAI会产生费用。部署此服务的人大部分是个人用户,开启公网访问后任何人都可以访问网站,带来了以下问题:

  • 网站的安全性靠ChatGPT Next WEB的Web访问密码来保证。如果此软件发现安全漏洞,可能会被公网恶意使用,产生大量费用
  • 如果网站被DDoS,可能会产生流量费用
  • ChatGPT Next WEB默认部署是没有HTTPS保护的,部署域名、SSL证书比较麻烦还费钱,个人开发者也不想弄

如何解决

在最新版本的服务里,我们借助计算巢的WEB安全代理功能解决了这个问题。只需两个步骤就将此服务转变为无公网WEB服务:

  1. 将服务的输出有公网地址改成VPC私网地址,计算巢控制台自动展示了“安全代理直接访问”的入口
  2. 将安全组里ChatGPT Next WEB监听的3000端口,只对100.104.0.0/16私网网段(计算巢WEB安全代理使用的网段)开放。因此阻断了所有来自公网的访问。

image.png

现在,用户部署完成后看到的WebUI地址是一个VPC私网地址。无法在浏览器直接访问,只有在计算巢控制台,点击”安全代理直接访问“,才会打开一个新浏览器窗口访问。

image.png

可以看到,除了访问的地址变成了计算巢安全代理的地址,页面浏览体验和公网访问是完全一致的。

总结

我们比较一下公网WEB服务和无公网WEB服务的差异

类别公网WEB服务无公网WEB服务
访问入口公网地址,任何用户都可以访问计算巢控制台上的Web安全代理入口
安全性由于服务暴露面广,安全性靠服务本身来保证。容易受攻击由于无公网访问,不会遭到公网攻击。Web安全代理需要登录阿里云账号使用,安全性由阿里云来保证
费用产生公网流量费用,有DDos风险无公网费用
网站体验原生体验和原生体验一致
面向场景适合面向大众的公共Web服务适合个人使用和团队内部使用的Web服务、软件安全性较弱或者无安全防护的场景

您可以参照《使用计算巢安全代理功能消除公网依赖》来做一个无公网WEB服务,非常简单。