Loading... # 借助 cpolar 加速 Penpot 团队协作(内网直出·一键公网访问) > 目标:让内网 Penpot 服务通过 **cpolar** 提供 稳定 https 公网地址,实现多人远程实时协作,且不暴露整机。🧩 ## 一、总体流程(vditor/Markdown) ```mermaid flowchart LR A[设计师浏览器] -- https --> B[cpolar 固定子域名] B --> C[cpolar 云中继] C --> D[cpolar 本机客户端隧道] D --> E[127.0.0.1:9001 本地 Penpot] ``` --- ## 二、准备与端口绑定(仅本机可见) ```yaml # docker compose 片段(重点是只绑定到回环地址) services: penpot: image: penpotapp/penpot:latest ports: - "127.0.0.1:9001:9001" # 仅本机可访问,避免直连暴露 # volumes、env 等按需添加 ``` **解释:** 将 Penpot 前端端口映射为 `127.0.0.1:9001`,确保外网无法直连,后续仅通过 cpolar 暴露。 ```bash ss -tnlp | grep 9001 ``` **解释:** 验证端口监听在 `127.0.0.1:9001`,确保“内网可见、外网不可见”。 --- ## 三、安装与登录 cpolar(本机) ```bash # 安装方式任选:deb/rpm/压缩包均可 sudo dpkg -i cpolar_xxx.deb # 或 rpm -ivh cpolar_xxx.rpm cpolar -v ``` **解释:** 使用系统包安装更易于后续服务化;`cpolar -v` 检查版本。 ```bash cpolar authtoken <你的TOKEN> ``` **解释:** 绑定账号,启用 固定子域名、长期隧道等能力;TOKEN 在本地 cpolar 控制台复制。 --- ## 四、启动临时隧道(快速验证) ```bash cpolar http 9001 ``` **解释:** 将本机 `127.0.0.1:9001` 暴露为一个临时公网地址;终端会显示一个 https 访问域名,用浏览器打开即可联通 Penpot。 ```bash # 需要简单访问保护时 cpolar http -auth "team:pass" 9001 ``` **解释:** 为隧道加 Basic 认证,先验“团队/口令”,避免地址泄漏即被访问。 --- ## 五、配置长期隧道(固定子域名) ```yaml # ~/.cpolar/cpolar.yml (示例) tunnels: penpot: proto: http addr: 127.0.0.1:9001 subdomain: penpot-team-xyz # 申请到的固定前缀 region: cn inspect: false # auth: team:pass # 可选:继续启用Basic认证 ``` **解释:** * `addr` 指向本机回环端口; * `subdomain` 申请的固定前缀,得到长期公网地址(https); * `inspect:false` 关闭流量检查页面,减少暴露面。 ```bash # 以用户态启动所有隧道 cpolar start all # 或服务化(视系统版而定) sudo systemctl enable --now cpolar ``` **解释:** 启动后即可长期维持隧道;服务化便于机器重启后自动恢复。 --- ## 六、Penpot 协作细节与稳定性建议 * 将团队分享入口统一指向 固定子域名,避免因临时域名切换导致外部协作者“进不来”。 * Penpot 仅监听 127.0.0.1,所有外部访问都走 cpolar; * 打开 cpolar 带宽/并发配额更高的套餐可提升多人实时协作流畅度; * 若需要“只读预览”,可在 Penpot 内新建只读协作角色,并配合 `<span style="color:red">Basic 认证</span>` 将编辑与预览分离。 --- ## 七、常见问题速解(对照表) | 症状 | 可能原因 | 处理 | | -------------- | ---------------------- | ------------------------------------------------ | | 打开慢/断流 | 带宽不足或网络抖动 | 升级隧道配额、就近区域、开启长隧道 | | 外部可直连本机 | 端口未绑定到 127.0.0.1 | 修正 compose 端口映射,仅回环 | | 链接里地址混乱 | 公网地址与本地不一致 | 在团队约定文档中统一使用固定子域名 | | 访问需登录保护 | 缺少认证 | 启用 `-auth user:pass`或在 yml 中开启 `auth` | --- ## 八、工作流程(一步到位) ```mermaid sequenceDiagram participant U as 团队成员 participant P as 浏览器 participant C as cpolar(https) participant L as 本机隧道 participant S as Penpot(127.0.0.1:9001) U->>P: 打开固定子域名 P->>C: TLS 请求 C->>L: 转发到本机 L->>S: 本地HTTP S-->>U: 返回设计协作页面 ✅ ``` --- ## 九、收尾清单 ✅ 1. Penpot 端口仅暴露 `127.0.0.1:9001`; 2. cpolar 绑定账号、开通 固定子域名; 3. 临时隧道验证无误后,改为 yml 长期隧道并服务化; 4. 按需启用 Basic 认证,并在团队文档统一对外地址与权限。 > 这样即可在不改动网络架构的前提下,为 Penpot 提供 安全、稳定、可控 的公网协作入口,远程评审与实时编辑体验显著提升。🚀 最后修改:2025 年 10 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏