cloudflare+nextcloud

如果你的目标是:

✔ 服务器没有公网 IP

✔ Nextcloud 通过 Cloudflare Tunnel 对外访问

✔ 使用 Docker(包括 AIO)

✔ 自动 HTTPS,不需要反向代理、无需暴露端口

那下面是目前最稳、最清晰、最小可运行的 Cloudflare Tunnel + Docker Nextcloud 部署方案。

我分成两种模式:

(A) Nextcloud 官方 AIO(你正在用的)

(B) 自己 docker-compose 部署(如果你需要)

先从你最关心的 Cloudflare + AIO 开始。

🟦 方案 A:Cloudflare Tunnel 访问 Nextcloud AIO(推荐)

AIO 默认使用 8080 → 8443 → 内置代理 → Nextcloud

Cloudflare Tunnel 只需连到 AIO 的 8080。

✨ 总架构

公网用户 → Cloudflare → Tunnel (cloudflared)

→ 你的服务器 → http://nextcloud-aio-mastercontainer:8080

1️⃣ 创建 Cloudflare Tunnel(Zero Trust 面板)

在 Cloudflare:

Zero Trust → Networks → Tunnels → Create Tunnel → Cloudflared

命名:nextcloud

Cloudflare 会给你一个 docker 命令,类似:

docker run -d --name cloudflared --restart unless-stopped

-v /root/.cloudflared:/etc/cloudflared

cloudflare/cloudflared:latest tunnel run

复制那个命令,到你的服务器运行。

2️⃣ 添加 Public Hostname(核心步骤)

进入 Tunnel → Public Hostnames → Add

填写:

Subdomain: cloud

Domain: onetwothree.com

Service Type: HTTP

URL: http://nextcloud-aio-mastercontainer:8080

⚠️ 注意:URL 必须是 http:// ,不能 https

因为:

• AIO 内部 8080 是 HTTP

• 8443 是证书初始化界面,不用暴露给外网

• Cloudflare 外层负责 HTTPS

点击 Save。

3️⃣ DNS 会自动创建 CNAME(无需自己加)

Cloudflare 会自动创建:

cloud CNAME .cfargotunnel.com (Proxied)

这是正确的,不要改。

4️⃣ 启动 Nextcloud AIO

你的 AIO 启动命令是:

sudo docker run

--init

--sig-proxy=false

--name nextcloud-aio-mastercontainer

--restart always

--publish 8080:8080

--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config

--volume /var/run/docker.sock:/var/run/docker.sock:ro

ghcr.io/nextcloud-releases/all-in-one:latest

⚠️ 不要暴露 8443,Cloudflare 不需要用。

只保留 8080 即可,或者:

--publish 8080:8080

5️⃣ 通过你的域名访问 Nextcloud

直接访问:

https://cloud.onetwothree.com

AIO 会自动检测 domain,并配置反向代理。

6️⃣ 解决 AIO 里的 domain 提示(DNS config is not set)

你之前遇到:

DNS config is not set for this domain

这是因为你使用了 Tailscale 或本地访问,而不是 真实 DNS 解析的域名。

现在 Cloudflare 已经自动创建:

cloud.onetwothree.com → .cfargotunnel.com

AIO 就能通过 DNS 查询到 IP(通过 Cloudflare),这个错误会消失。

🟩 方案 A 总结(非常稳)

项目 状态

服务器无公网 IP 支持

不暴露任何端口 支持

自动 HTTPS Cloudflare 处理

支持 Docker AIO 完全支持

Nextcloud domain 检查 可通过

你需要做的就 3 步:

  1. 创建 Cloudflare Tunnel 并运行 cloudflared

  2. Public Hostname → cloud → http://nextcloud-aio-mastercontainer:8080

  3. 启动 AIO(只暴露 8080)

🟧 如果你需要我帮你生成 docker-compose(可选)

我可以提供:

✔ cloudflared-tunnel docker-compose

✔ nextcloud-aio docker-compose

✔ Cloudflare DNS 自动化模式

✔ 一键重启脚本

你只需告诉我:

📌 你的域名:onetwothree.com(已知)

📌 你要的子域名:默认是 cloud

📌 是否还想用 ssh / nas 子域名?

需要我给你生成完整 docker-compose + 配置文件吗?

相关推荐
liulilittle11 小时前
TC Hairpin NAT 驱动使用手册(个人版)
服务器·开发语言·网络·c++·网络协议·tcp/ip·tc
是店小二呀11 小时前
Docker部署EasyNode+内网穿透:轻松实现服务器远程管理
服务器·docker·容器
hweiyu0011 小时前
Linux命令:screen
linux·运维·服务器
Elastic 中国社区官方博客11 小时前
使用 TypeScript 创建 Elasticsearch MCP 服务器
大数据·服务器·数据库·人工智能·elasticsearch·搜索引擎·全文检索
小义_11 小时前
【RH134总结】 八
linux·运维·服务器·云原生·红帽
草莓熊Lotso12 小时前
Linux 进程信号深度解析(下):信号的保存、阻塞与捕捉
android·linux·运维·服务器·数据库·c++·性能优化
浅念-18 小时前
Linux 开发环境与工具链
linux·运维·服务器·数据结构·c++·经验分享
似水এ᭄往昔20 小时前
【Linux】gdb的使用
linux·运维·服务器
tian_jiangnan21 小时前
grafana白皮书
linux·服务器·grafana
liucan20121 天前
nginx服务器实现上传文件功能_使用nginx-upload-module模块
服务器·前端·nginx