本地部署大模型时,许多开发者会选择 OpenClaw 作为轻量级聊天界面,它简单高效,能快速把 Qwen3-32B 等本地模型能力暴露为 Web 可访问的服务。然而,当你把服务从本地 localhost 迁移到内网或公网环境时,普通的 WS(WebSocket)连接会面临严重的安全风险:数据明文传输、易被中间人劫持、浏览器同源策略限制等。这时,升级到 WSS(WebSocket Secure)就成了必然选择。
WSS 本质上是 WebSocket 协议在 TLS 加密通道上的实现,它能提供端到端加密、身份认证和防篡改保护。本文将以 Qwen3-32B + OpenClaw 为例,手把手演示如何从零实现 WSS 安全通信——全程直连、无需第三方云服务、不改 OpenClaw 源码,只通过成熟的反向代理工具完成 TLS 终止和协议升级。整个方案已在生产环境验证稳定运行,支持高并发流式响应,适用于企业内网 AI 助手、知识库问答、代码辅助等场景。
普通的 WebSocket(ws://)在传输时是明文,任何网络节点都能直接嗅探到你的对话内容、系统提示词甚至模型参数。在企业环境中,这往往无法通过安全审计。而在公网暴露时,更容易遭受中间人攻击(MITM)或会话劫持。
WSS(wss://)通过 TLS 加密解决了这些问题,其优势一目了然:
对于 Qwen3-32B 这类高价值本地模型,启用 WSS 不仅是技术**实践,更是数据安全的基本要求。
我们采用“前端直连网关 → 网关 TLS 终止 → 内部 HTTP/WS 转发”的经典架构:
整个链路只有网关暴露在公网,前端与模型之间全程加密,数据永不离开你的服务器。
在开始配置 WSS 前,先确保 Qwen3-32B 和 OpenClaw 已在本地正常运行。
# 安装 Ollama(若未安装) curl -fsSL https://ollama.com/install.sh | sh # 拉取并运行 Qwen3-32B(社区适配版) ollama pull qwen3:32b ollama run qwen3:32b &
测试本地 API:
curl http://localhost:11434/api/chat -d '{ "model": "qwen3:32b", "messages": [{"role": "user", "content": "你好"}] }'
git clone https://github.com/openclaw/openclaw.git cd openclaw npm install # 修改 config/default.json 中的 backend 配置 { "backend": { "type": "ollama", "host": "http://localhost:11434", "model": "qwen3:32b" } } npm start # 默认监听 8080
此时访问 http://localhost:8080 已能正常对话,但仍是 HTTP + WS。
Caddy 是目前最简洁的反向代理工具,自动申请和管理 Let’s Encrypt 证书,配置仅需几行。
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy
创建或编辑 /etc/caddy/Caddyfile:
your-domain.com { # 替换为你的域名 # 自动申请并续期 Let's Encrypt 证书 tls # WebSocket 代理(关键!) reverse_proxy /ws* localhost:8080 { header_up Host {http.request.host} header_up X-Real-IP {http.request.remote.host} } # 静态文件服务(Clawdbot 前端) reverse_proxy / localhost:8080 # 可选:强制 HTTPS 重定向 @http { protocol http } redir @http https://{host}{uri} }
sudo systemctl restart caddy sudo systemctl status caddy # 确认 active (running)
打开 OpenClaw 的 index.html(或 build 后的静态文件),找到 WebSocket 初始化代码:
// 原代码可能是 const ws = new WebSocket(`ws://${window.location.host}/ws`); // 修改为 WSS(生产环境) const ws = new WebSocket(`wss://${window.location.host}/ws`);
如果你使用的是 OpenClaw 最新版,支持环境变量配置:
const protocol = window.location.protocol === 'https:' ? 'wss' : 'ws'; const ws = new WebSocket(`${protocol}://${window.location.host}/ws`);
这样能自动适配 HTTP/HTTPS 环境。
配置完成后,打开浏览器访问 https://your-domain.com
你会看到:
实测效果(基于 RTX 4090 + 64GB 内存环境):
全程通过 WSS 加密传输,安全性与本地直连完全一致。
如果暂无公网域名,或仅用于内网,可使用自签名证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/caddy/tls/key.pem -out /etc/caddy/tls/cert.pem -subj "/CN=your-internal-domain.com"
your-internal-domain.com { tls /etc/caddy/tls/cert.pem /etc/caddy/tls/key.pem reverse_proxy /ws* localhost:8080 reverse_proxy / localhost:8080 }
将 cert.pem 导入操作系统或浏览器信任列表,即可消除“不安全”警告。
通过以上步骤,你已经成功为 Qwen3-32B + OpenClaw 搭建了完整的 WSS 安全通信链路。不仅满足了企业级安全要求,还保持了本地部署的低延迟和高可控性。这套方案可无缝扩展到其他本地模型(如 DeepSeek、GLM-4 等),只需修改 OpenClaw 的 backend 配置即可。
现在,你的 AI 助手终于可以在安全的加密通道中自由对话,而你再也不用担心数据泄露的风险。
立即尝试,将本地大模型能力安全地推向生产环境吧!
延展阅读:
人工智能 (AI) 基本概念?入门篇【C#】版。
大模型驱动客服最硬核对比:智谱GLM-4 vs Qwen-Max vs Doubao
个人淘宝店铺转给别人,安全担保平台怎么选?筛选4 大核心要点 + 靠谱平台推荐
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/257001.html